Pertanyaan Singkirkan latensi 0,5 detik saat memutar audio melalui Bluetooth dengan A2DP


Seperti yang dijelaskan dalam judul, saya mengalami penundaan setengah detik saat memutar audio melalui Bluetooth dengan A2DP.
Ini membuat menonton film tidak dimungkinkan karena suara tidak disinkronkan dengan video.

Saya tidak yakin apakah penundaan ini disebabkan oleh standar Bluetooth, protokol A2PD, penerapan A2DP pada Ubuntu 12.04, atau Penerima Bluetooth Belkin Z73.

Anyways, apakah ini lag normal? Apakah ada cara untuk memutar audio melalui Bluetooth tanpa latensi yang nyata?


41
2018-06-03 14:26


asal


Bukan solusi nyata untuk masalah Anda, tetapi solusi: Jika hanya tentang memutar film, Anda dapat menyesuaikan pengimbangan audio / video, yang juga akan menunda video. Menggunakan mplayer, Anda melakukannya dengan menekan tombol + dan - kunci. Di VLC, saya tidak tahu cara mengatur penundaan, tetapi saya akan terkejut jika VLC tidak memiliki opsi seperti itu. - leemes
Saya memikirkan itu tetapi saya kehilangan solusi untuk YouTube. Ketika video diputar dengan HTML5, solusinya adalah dengan memasang ekstensi browser yang mengatur offset video. Tetapi untuk kasus video diputar dengan flash saya tidak yakin bagaimana cara mencapai itu. - brillout
Kebetulan, opsi VLC berada di Tools->Track Synchronisation, atau bermain dengan --audio-desync pilihan. Saya takut saya tidak yakin apa unitnya, dan arah mana yang positif, dan bantuannya tidak akan datang mengenai masalah ini, tetapi di sanalah Anda ingin melihatnya. - Darael
Q yang relevan Saya bertanya: Bagaimana cara men-debug lag menggunakan mouse yang terhubung Bluetooth dan headset A2DP? - gertvdijk
Sudahkah Anda menemukan solusi permanen untuk masalah ini? Saat ini saya menggunakan solusi untuk beralih antara A2DP / HSP / A2DP, tetapi tidak praktis untuk tetap melakukan itu setiap kali masalah sinkronisasi. - Fred Wuerges


Jawaban:


Tidak, ini tidak normal tetapi saya memiliki masalah yang sama kadang-kadang dengan Altec Lansing iMT525 Bluetooth Speakers saya. Sesuatu yang mirip dalam konsep untuk jawaban Sri hampir selalu berhasil untuk saya, dan saya harus melakukannya hanya sekali per koneksi.

Auto-switching profil Bluetooth untuk menginisialisasi ulang PulseAudio

Jika Anda mencari pelakunya, saya akan melihat sistem suara Ubuntu, PulseAudio pertama, dan kemudian penerima bluetooth Anda. Coba ini:

  • Pertama, hapus dan pasang kembali perangkat Bluetooth Anda.

  • Kemudian, salin dan tempel bawah ini ke dalam .sh file di direktori home Anda, katakan /home/brillout/pabluezswitch.sh:

    #! / bin / bash
    BLUEZCARD = `kartu daftar pakta pendek | egrep -o bluez. * [[: space:]] ` pactl set-card-profile $ BLUEZCARD a2dp pactl set-card-profile $ BLUEZCARD hsp pactl set-card-profile $ BLUEZCARD a2dp
  • Buat file dieksekusi dengan membuka terminal dan mengetik chmod +x ~/pabluezswitch.sh

  • Pergi ke Pengaturan ... Keyboard ... Pintasan, dan buat pintasan khusus; beri nama apa pun yang Anda inginkan, dengan perintah sebagai /home/brillout/pabluezswitch.sh (gantikan nama pengguna yang sesuai di jalur!). Klik Menerapkan, dan kemudian klik di sebelah kanan di mana dikatakan Cacat untuk mengatur pintasan keyboard untuk menjalankan skrip.

Apa yang dilakukan adalah memaksa sistem PulseAudio untuk mensinkronisasi ulang audio yang dikirim ke headset / speaker Anda dengan mengubah profil dari ad2p -> hsp -> a2dp, jadi mudah-mudahan menyingkirkan latensi.


Setiap kali Anda menghubungkan dan melihat lag, Anda harus menekan pintasan keyboard yang dipilih di atas untuk mencoba memperbaiki latensi - semoga ini bekerja untuk Anda!


30
2017-08-02 13:24



Saya telah menggunakan ini selama beberapa hari sekarang, dan itu bekerja dengan baik. - 14.04 - dpb
Jawaban yang bagus dan sangat nyaman juga! Kerja bagus! - Zzzach...
Perhatikan bahwa pactl memiliki pesan kesalahan yang mengerikan, dan banyak peralatan audio tidak memiliki ini ad2p dan hsp. Bose saya hanya punya ad2p_sink, bukan dua lainnya. - odinho - Velmont
Saya pikir Anda perlu tanda kutip di sekitar pola egrep tersebut - naught101
@ odinho-Velmont berpindah antara ad2p_sink dan off bekerja untukku. Saya baru saja mengaitkan ini dengan saya Script kontrol audio / volume pulsa yang mungkin bermanfaat bagi seseorang - Sam Mason


Di pavucontrol Saya pergi ke tab perangkat output, lalu pilih advanced opsi di bawah perangkat bluetooth. Di sana Anda dapat mengatur offset latensi menjadi 600ms. Masalah dipecahkan.


13
2018-04-22 15:17



Dihapus sass tidak perlu dari jawaban - tidak perlu kasar. Juga, ini terdengar seperti seharusnya bekerja, tetapi tampaknya tidak benar-benar melakukan apa pun untukku ... - naught101
Bagi saya ini bekerja untuk pemutaran youtube dengan speaker bluetooth. Terima kasih. Ketika saya pertama kali membuka pavucontrol, opsi lanjutan disembunyikan. Harus memperluas jendela secara vertikal. - user75505


Terkadang saya mendapatkan masalah serupa, terlepas dari pemain yang digunakan. Milik saya adalah Nokia BH-503 Bluetooth Stereo Headphone dengan laptop MSI CR400 dan Ubuntu 11.10. Saya kebetulan menemukan solusi yang dapat Anda coba.

  • Mulai pemutaran video.
  • Buka Pengaturan Suara> Perangkat Keras.
  • Pilih perangkat Bluetooth.
  • Kemudian pada Pengaturan untuk drop-down Perangkat yang Dipilih, pindah ke profil Telephony Duplex (HSP / HFP), kemudian kembali ke High Fidelity Playback (A2DP).

8
2018-06-06 05:42





Modulasi kode pulsa diferensial adaptif melibatkan jenis algoritma pengepresan di mana informasi tidak dapat ditransmisikan sebelum encoder memiliki kesempatan untuk memeriksa beberapa byte info yang akan datang. Oleh karena itu, data harus menumpuk di encoder, dan ada pergeseran waktu yang melekat antara aliran yang masuk dan meninggalkan encoder. Dulu, saya melakukan studi penundaan jaringan data untuk menentukan kelayakan suara-over-data telephony (apa yang sekarang VoIP). Saya pikir saya menyimpulkan bahwa kompresi / encoding gaya ADPCM akan memperkenalkan terlalu banyak penundaan. Saya pikir untuk mengatasi masalah Bluetooth-delay ini, seseorang mungkin memerlukan jenis pengkodean audio non-kompresi yang seharusnya memiliki latensi yang lebih rendah.


5
2018-01-07 15:02



Masalah kompresi akan menyebabkan beberapa puluh milidetik, bukan setengah detik, tentu saja? - naught101


Saya mencoba banyak pendekatan untuk masalah ini, tetapi tidak ada yang bisa memperbaikinya. Lalu aku tersandung set-port-latency-offset

Jika Anda menggunakan pulseaudio, lakukan:

pactl list cards short | egrep -o bluez.*[[:space:]]

Ini akan memberi Anda antarmuka bluetooth. Sekarang atur latensi yang sesuai:

pactl set-port-latency-offset <INTERFACE> speaker-output 100000

Saya menggunakan 100000 mikrodetik yang berfungsi dengan baik untuk saya.


4
2017-12-21 09:14



Bagi siapa pun yang tersandung di pos lama ini mencari jawaban, jawaban Arindam Mani Das bekerja dengan sempurna. Jika Anda menerima kesalahan "tidak seperti entitas", jalankan 'kartu daftar pakta' dan periksa port mana yang tersedia untuk perangkat Anda. Saya harus mengubah "speaker-output" menjadi "headset-output" di perintah kedua karena perangkat saya tidak memiliki port speaker-output. - Billy Farrington


Balasan teratas di sini berfungsi, tetapi tidak untuk setiap perangkat audio bluetooth. Beberapa perangkat memiliki nama profil yang berbeda dari apa yang dimiliki poster itu dengan speaker bluetooth-nya. Misalnya, dalam kode berikut, yang pada awalnya diposkan oleh orang itu, tampaknya nama profilnya a2dp dan hsp. Tak satu pun dari ini tersedia dengan Nada LG saya, misalnya, tetapi mereka dengan perangkat lain seperti headset Sony saya.

#!/bin/bash

BLUEZCARD=`pactl list cards short | egrep -o bluez.*[[:space:]]`
pactl set-card-profile $BLUEZCARD a2dp
pactl set-card-profile $BLUEZCARD hsp
pactl set-card-profile $BLUEZCARD a2dp

Kode itu akan berfungsi untuk sebagian besar perangkat bluetooth yang muncul, tetapi untuk membuatnya bekerja dengan benar untuk perangkat yang tidak memiliki profil a2dp atau profil hsp, ketikkan:

pactl list | grep -Pzo '.*bluez_card(.*\n)*'

Ini akan mengembalikan semuanya setelah menemukan perangkat bluetooth. Misalnya, dengan headset LG Tone Ultra, saya mendapatkan ini:

Name: bluez_card.B8_AD_3E_**_**_**
    Driver: module-bluez5-device.c
    Owner Module: 36
    Properties:
        device.description = "LG HBS810"
        device.string = "B8:AD:3E:**:**:**"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_B8_AD_3E_**_**_**"
        bluez.class = "0x240404"
        bluez.alias = "LG HBS810"
        device.icon_name = "audio-headset-bluetooth"
        device.intended_roles = "phone"
    Profiles:
        a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes)
        headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, available: yes)
        off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
    Active Profile: a2dp_sink
    Ports:
        headset-output: Headset (priority: 0, latency offset: 0 usec)
            Part of profile(s): a2dp_sink, headset_head_unit
        headset-input: Headset (priority: 0, latency offset: 0 usec)
            Part of profile(s): headset_head_unit

Kami tertarik dengan profiles bagian. Di bagian ini, kita melihat tiga profil, yang mana a2dp_sink, headset_head_unit, dan off. Kedua profil yang kita perlukan harus ada di dalamnya (A2DP Sink) dan (HSP / HFP). Dalam hal ini, mereka a2dp_sink untuk profil a2dp, dan headsethead_unit untuk profil hsp. Perhatikan ini berbeda dari poster aslinya a2dp dan hsp.

Sekarang, dengan kode di atas, kita akan memodifikasinya dan memasukkannya ke dalam file. Saya menelepon file tersebut bluezswitch.sh.

Ubah ke direktori tempat Anda ingin meletakkan file. Itu bisa di mana saja.

touch bluezswitch.sh

Kemudian

nano bluezswitch.sh

Salin dan tempelkan kode di bagian paling atas komentar ini dan ganti a2dp dan hsp dengan nilai yang Anda dapatkan saat menjalankan perintah di atas, dan menempelkannya di file itu. Sebagai contoh, ini adalah apa yang tampak seperti file saya untuk Nada LG saya.

#!/bin/bash

BLUEZCARD=`pactl list cards short | egrep -o bluez.*[[:space:]]`
pactl set-card-profile $BLUEZCARD a2dp_sink
pactl set-card-profile $BLUEZCARD headset_head_unit
pactl set-card-profile $BLUEZCARD a2dp_sink

Sekarang, ctrl-x kemudian y untuk menyimpan file dan keluar dari nano, dan kemudian membuat file dieksekusi:

chmod +x bluezswitch.sh

Kemudian tindak lanjuti dengan mengatur pintas keyboard seperti yang telah dijelaskan.

Buka Pengaturan ... Keyboard ... Pintasan, dan buat a   pintasan khusus; beri nama apa pun yang Anda inginkan, dengan perintah sebagai   /home/brillout/bluezswitch.sh (ganti nama pengguna yang sesuai di   jalan!). Klik Apply, dan kemudian klik di sebelah kanan di mana dikatakan   Dinonaktifkan untuk mengatur pintasan keyboard untuk menjalankan skrip.

Itu semua harus ada untuk itu. Ini harus bekerja untuk semua yang tidak berfungsi sebelumnya.


4
2017-09-02 06:38



Bagi saya, mematikan a2dp_sink, off, a2dp_sink secara berurutan bekerja sangat baik untuk saya. Pengaturan ke headset_head_unit I / O error. - Mohd Shahril


Inilah yang memecahkannya untuk saya: $ sudo apt-get install phonon-backend-vlc dan pastikan itu adalah backend yang disukai, di KDE masuk ke [Pengaturan Sistem] [Multimedia] [Pengaturan audio dan video] [Backend] dan gunakan tombol [Prefer]


1
2017-07-24 16:29



@dargaud Saya sarankan untuk memperluas ini untuk menjelaskan cara menjadikannya backend yang disukai. - Eliah Kagan


individu yang mengalami masalah ini Silakan lihat situs web ini: http://projectzeorymer.wordpress.com/2011/09/01/ubuntu-how-to-connect-nokia-bh-503-bluetooth-headset-to-your-pc/ untuk melihat pic dari apa yang perlu Anda unduh.

Unduh pengelola bluetooth dan gunakan untuk memanipulasi pengaturan headset. Setel pengaturan suara ke High Fidelity Playback (A2DP) dan kemudian masuk ke pengaturan suara.


0
2017-08-18 22:22



Pergi ke bluetooth mengelola dan pergi ke Profil Audio dan kemudian pilih High Fedelity Playback .. thats itu - Alex Force


Pada pemutar media VLC, Pergi ke E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E mereka Lacak sinkronisasi Sinkronisasi tab Pada sinkronisasi audio / video, gunakan nilai negatif seperti -0.67 dan lag akan dikompensasi sepenuhnya. Anda harus melakukan ini secara manual setiap kali Anda membuka file baru. Chris


0
2017-12-02 14:18