Wie im Titel beschrieben, tritt bei der Wiedergabe von Audio über Bluetooth mit A2DP eine Verzögerung von einer halben Sekunde auf.
Dies macht das Ansehen von Filmen nicht möglich, da der Ton nicht mit dem Video synchronisiert ist.
Ich bin nicht sicher, ob die Verzögerung durch den Bluetooth-Standard, das A2PD-Protokoll, die A2DP-Implementierung unter Ubuntu 12.04 oder den Belkin Z73 Bluetooth-Empfänger verursacht wird.
Wie auch immer, ist das eine normale Verzögerung? Gibt es eine Möglichkeit, Audio über Bluetooth ohne merkliche Latenz abzuspielen?
pulseaudio
bluetooth
Brillout
quelle
quelle
mplayer
Sie dazu die Tasten+
und-
. In VLC weiß ich nicht, wie ich die Verzögerung einstellen soll, aber ich wäre überrascht, wenn VLC keine solche Option hat.Tools->Track Synchronisation
oder spielt mit der--audio-desync
Option. Ich fürchte, ich bin mir nicht sicher, was die Einheiten sind und welche Richtung positiv ist, und die Hilfe wird in dieser Angelegenheit nicht angeboten, aber das ist es, wonach Sie suchen möchten.Antworten:
Nein, das ist nicht normal, aber ich hatte gelegentlich ein ähnliches Problem mit meinen Altec Lansing iMT525 Bluetooth-Lautsprechern. Etwas ähnliches Konzept wie die Antwort von Sri funktioniert für mich fast immer, und ich muss es nur einmal pro Verbindung tun.
Automatische Umschaltung der Bluetooth-Profile zur Neuinitialisierung von PulseAudio
Wenn Sie nach einem Schuldigen suchen, würde ich mir zuerst Ubuntus Soundsystem, PulseAudio und dann Ihren Bluetooth-Empfänger ansehen. Versuche dies:
Löschen Sie zuerst Ihr Bluetooth-Gerät und koppeln Sie es erneut.
Kopieren Sie dann das Folgende und fügen Sie es in eine
.sh
Datei in Ihrem Home-Verzeichnis ein, sagen Sie/home/brillout/pabluezswitch.sh
:Machen Sie die Datei ausführbar, indem Sie ein Terminal öffnen und tippen
chmod +x ~/pabluezswitch.sh
Gehen Sie zu Einstellungen ... Tastatur ... Verknüpfungen und erstellen Sie eine benutzerdefinierte Verknüpfung. Benennen Sie es mit dem Befehl wie
/home/brillout/pabluezswitch.sh
folgt: (Ersetzen Sie den entsprechenden Benutzernamen im Pfad!). Klicken Sie auf Übernehmen und dann rechts auf Deaktiviert , um eine Tastenkombination zum Ausführen des Skripts einzurichten.ad2p -> hsp -> a2dp
Dadurch wird das PulseAudio-System gezwungen, die Audiodaten, die an Ihr Headset / Ihre Lautsprecher gesendet werden, neu zu synchronisieren, indem das Profil von umgeschaltet wird, wodurch hoffentlich jegliche Latenz beseitigt wird.Wann immer Sie eine Verbindung herstellen und die Verzögerung bemerken, sollten Sie die oben gewählte Tastenkombination drücken, um die Latenz zu beheben - hoffentlich funktioniert es für Sie!
quelle
ad2p
und nicht habenhsp
. Meine Bose hat nurad2p_sink
, nicht diese beiden anderen.pacmd info | grep "current latency"
undpacmd stat
scheinen die gleichen Latenzzahlen / Puffergröße zu liefern, egal wie groß die tatsächliche Latenz ist (z. B. wenn Sie das Headset aus der Reichweite nehmen und es zurückbringen). Ist also möglicherweise ein anderer Teil des Stapels für die Latenz verantwortlich?ad2p_sink
undoff
funktioniert bei mir. Ich habe dies kürzlich meinem Skript zur Audio- / Lautstärkeregelung von Pulse hinzugefügt , das für jemanden hilfreich sein könntesudo apt install pavucontrol
pavucontrol
aus dem Menüquelle
Ich bekomme gelegentlich ein ähnliches Problem, unabhängig vom verwendeten Player. Meins ist ein Nokia BH-503 Bluetooth-Stereo-Kopfhörer mit MSI CR400-Laptop und Ubuntu 11.10. Ich bin zufällig auf eine Problemumgehung gestoßen, die Sie ausprobieren können.
quelle
Die Top-Antwort hier funktioniert, aber nicht für jedes Bluetooth-Audiogerät. Einige Geräte haben andere Profilnamen als das Poster mit seinen Bluetooth-Lautsprechern. Im folgenden Code, der ursprünglich von dieser Person gepostet wurde, sind beispielsweise die Profile "
a2dp
und" angegebenhsp
. Beides ist zum Beispiel für meine LG Tones nicht verfügbar, aber für andere Geräte wie mein Sony-Headset.Dieser Code funktioniert für die meisten Bluetooth-Geräte, die angezeigt werden. Wenn Sie dies jedoch für Geräte ohne a2dp- oder hsp-Profil tun möchten, geben Sie Folgendes ein:
Dadurch wird alles zurückgegeben, nachdem ein Bluetooth-Gerät gefunden wurde. Mit dem LG Tone Ultra-Headset erhalte ich beispielsweise Folgendes:
Wir sind an der
profiles
Sektion interessiert . In diesem Abschnitt sehen wir drei Profile, die sinda2dp_sink
,headset_head_unit
undoff
. Die beiden Profile, die wir benötigen, sollten (A2DP Sink) und (HSP / HFP) enthalten. In diesem Fall gelten siea2dp_sink
für das a2dp-Profil undheadsethead_unit
für das hsp-Profil. Beachten Sie, dass dies anders ist als der ursprüngliche Postera2dp
undhsp
.Mit dem obigen Code werden wir ihn nun ändern und in eine Datei einfügen. Ich habe die Datei angerufen
bluezswitch.sh
.Wechseln Sie in das Verzeichnis, in das Sie die Datei einfügen möchten. Es kann überall sein.
Dann
Kopieren Sie den Code und fügen Sie ihn ganz oben in diesen Kommentar ein. Ersetzen Sie den Code
a2dp
undhsp
durch die Werte, die Sie beim Ausführen des obigen Befehls erhalten haben, und fügen Sie sie in diese Datei ein. So sah zum Beispiel meine Datei für meine LG Tones aus.Nun,
ctrl-x
danny
, um die Datei zu speichern und nano zu beenden und dann die Datei ausführbar zu machen:Setzen Sie anschließend eine Tastenkombination, wie bereits erläutert.
Das sollte alles sein, was es zu tun gibt. Dies sollte für alle funktionieren, für die es vorher nicht funktioniert hat.
quelle
a2dp_sink
,off
,a2dp_sink
in Folge arbeitet sehr gut für mich. Einstellung aufheadset_head_unit
E / A-Fehler.Die adaptive differentielle Pulscodemodulation beinhaltet einen Komprimierungsalgorithmus vom Look-Ahead-Typ, bei dem Informationen nicht übertragen werden können, bevor der Codierer die Möglichkeit hatte, mehrere Bytes anstehender Informationen zu untersuchen. Daher müssen sich Daten im Codierer stapeln, und es gibt eine inhärente Zeitverschiebung zwischen den Strömen, die in den Codierer eintreten und diesen verlassen. Vor langer Zeit habe ich mich mit Verzögerungen im Datennetz befasst, um die Machbarkeit von Voice-over-Data-Telefonie (was jetzt VoIP ist) zu ermitteln. Ich denke, ich bin zu dem Schluss gekommen, dass die ADPCM-artige Komprimierung / Codierung zu viel Verzögerung mit sich bringen würde. Ich denke, um dieses Problem der Bluetooth-Verzögerung zu überwinden, ist möglicherweise eine nicht komprimierende Audiocodierung erforderlich, die eine geringere Latenz aufweisen sollte.
quelle
Ich habe viele Ansätze für dieses Problem ausprobiert, aber nichts konnte es beheben. Dann bin ich auf Set-Port-Latenz-Offset gestoßen
Wenn Sie pulseaudio verwenden, gehen Sie wie folgt vor:
Dadurch erhalten Sie die Bluetooth-Schnittstelle. Stellen Sie nun die Latenz entsprechend ein:
Ich verwende 100000 Mikrosekunden, was für mich gut funktioniert.
quelle
Hier ist, was es für mich gelöst hat:
$ sudo apt-get install phonon-backend-vlc
und stellen Sie sicher, dass es das bevorzugte Backend ist, gehen Sie in KDE zu [Systemeinstellungen] [Multimedia] [Audio- und Videoeinstellungen] [Backend] und verwenden Sie die Schaltfläche [Bevorzugen]quelle
Personen, die dieses Problem haben Bitte besuchen Sie diese Website: http://projectzeorymer.wordpress.com/2011/09/01/ubuntu-how-to-connect-nokia-bh-503-bluetooth-headset-to-your-pc / um ein Bild von dem zu sehen, was Sie herunterladen müssen.
Laden Sie den Bluetooth-Manager herunter und bearbeiten Sie damit die Einstellungen des Headsets. Stellen Sie die Toneinstellungen auf High Fidelity Playback (A2DP) und rufen Sie dann die Toneinstellungen auf.
quelle
Gehen Sie auf dem VLC Media Player zu Extras Registerkarte Synchronisieren von Spuren Verwenden Sie unter Synchronisieren von Audio- / Video-Audiospuren einen negativen Wert wie etwa -0,67, um die Verzögerung vollständig zu kompensieren. Sie müssen dies jedes Mal manuell tun, wenn Sie eine neue Datei öffnen. Chris
quelle
Ähnlich wie Timms Antwort hatte ich auch nicht die Profile der akzeptierten Antwort. Beim Einstellen des HSP wurde ein Fehlercode ausgegeben.
Am Ende habe ich das folgende, fast identische Skript verwendet.
quelle
Nach all den Jahren scheint dieses Problem immer noch aktuell zu sein.
Basierend auf der Antwort von Arindam Mani Das und dem Kommentar von Billy Farrington habe ich das folgende Shell-Skript erstellt:
Ich benutze 100000 Mikrosekunden, wie von Arindam empfohlen, und es funktioniert auch gut für mich.
quelle