Peramban flash di browser tidak memutar suara secara akurat menggunakan audio jaringan Pulse

18

Saya menggunakan PulseAudio untuk mengirim suara melalui LAN ke server audio.

Saat memutar media Flash apa pun di Firefox atau Chrome, suaranya bergetar ( contoh ), seolah-olah volume naik dan turun setiap detik.

Saya telah menemukan bahwa saya dapat menghentikan suara yang berkibar jika saya mengikuti langkah-langkah ini:

  • Mulai video Flash, seperti video di YouTube

  • Jalankan pulseaudio --killdi server

  • Tunggu sekitar 7 detik

Setelah ini, server PulseAudio secara otomatis muncul kembali, dan suara dalam video Flash baik-baik saja.

Masalahnya adalah saya harus melakukan ini setiap kali saya memulai video Flash. Ini jelas tidak diinginkan.

Bagaimana saya membuat apa pun yang membuat suara bekerja ketika saya melalui langkah-langkah ini menempel sehingga saya tidak harus melakukannya?

Saya ragu bahwa seseorang akan datang dengan perbaikan langsung dan sederhana (meskipun itu akan menyenangkan), sehingga hadiahnya bisa diberikan kepada siapa saja yang menyediakan setidaknya metode untuk menyelesaikan masalah.


Detail

Berikut adalah pengaturan output perangkat suara saya. Sejauh yang saya tahu, keempat perangkat menunjuk ke perangkat fisik yang sama persis.

pengaturan suara

Output log PulseAudio , diambil saat mencoba memutar video Flash.

Saya sudah mencoba mendapatkan detail pendataan dari Flash, tetapi meskipun menginstal dan mengaktifkan Flash untuk debugging, itu belum menghasilkan ouput sama sekali .

Masalahnya tidak menunjukkan dengan perangkat lunak lain, jadi saya cukup yakin itu khusus untuk bagaimana Flash berinteraksi dengan pengaturan suara saya.

Berikut adalah beberapa output kesalahan yang mungkin bermanfaat:

$ cat /var/log/syslog | grep pulseaudio
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module.c: Failed to open module "module-esound-protocol-tcp": file not found
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module-gconf.c: pa_module_load() failed
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module.c: module-combine is deprecated: Please use module-combine-sink instead of module-combine!
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module-combine.c: We will now load module-combine-sink. Please make sure to remove module-combine from your configuration.
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module.c: Failed to open module "module-esound-protocol-tcp": file not found
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module-gconf.c: pa_module_load() failed
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module.c: module-combine is deprecated: Please use module-combine-sink instead of module-combine!
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module-combine.c: We will now load module-combine-sink. Please make sure to remove module-combine from your configuration.
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module.c: Failed to open module "module-esound-protocol-tcp": file not found
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module-gconf.c: pa_module_load() failed
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module.c: module-combine is deprecated: Please use module-combine-sink instead of module-combine!
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module-combine.c: We will now load module-combine-sink. Please make sure to remove module-combine from your configuration.

Ini adalah output dari pactl listdari server (komputer dengan speaker) .

Berikut adalah output dari pactl listdari klien .

Penanya
sumber
Apa jenis koneksi jaringan antara sumber / wastafel?
ish
@izx: Saya tidak tahu apa yang Anda maksud dengan "source / sink". Jika itu adalah cara lain untuk mengatakan "server / klien", maka itu merupakan koneksi LAN ethernet. Jika itu sesuatu yang lain, Anda harus menjelaskan apa yang Anda maksud.
Penanya
Dave, bisakah kamu bergabung dengan ruang obrolan? Saya pikir saya mungkin punya solusi tetapi perlu bicara ...
ish
Jika tidak, saya hanya bermaksud kabel atau nirkabel dan beberapa detail, misalnya kabel = 100 MBps router, dll. Atau nirkabel = 802.11G, N, dll.
ish
@izx: Oh, begitu. Ini adalah LAN kabel dengan router di antara mereka. Saya percaya ini 100MBps. Saya pikir klien mampu 1GBps, tetapi kartu LAN server masih 100GBps. Jika itu penting dan ada perintah yang bisa saya jalankan untuk mendapatkan kecepatan yang tepat, tolong beri tahu saya.
Penanya

Jawaban:

10

Kata pengantar

Saya dapat mereplikasi masalah Dave dalam percobaan, dan mereka membuat saya percaya bahwa Flash entah bagaimana mengirimkan suara ke PulseAudio sedemikian rupa sehingga menciptakan banyak lalu lintas jaringan (pikirkan banyak paket kecil, bukan bandwidth); ini membanjiri "terowongan" jaringan yang telah dibuat PulseAudio, yaitu Anda miliki

Youtube => [PA-client => network => PA-server] => speakers

Saya dapat memecahkan masalah ini dengan menempatkan klien dan server di jaringan virtual mereka sendiri, memberi mereka konektivitas yang sangat cepat (10 Gbits / detik) di antara mereka; jelas, itu tidak berfungsi untuk jaringan dunia nyata :)

Jadi, sedikit googling dan posting ini dan yang satu ini memberi saya ide untuk menjatuhkan terowongan (tengkulak, seperti Dave tepat meletakkannya), dan meminta klien berbicara langsung ke server, yaitu

Youtube => network => PA-server => speakers

Dan itu berhasil bagi saya; Video flash / suara diputar dengan sempurna.

Ayo kita coba!

Ini mengasumsikan klien-server Anda berada di jaringan lokal (router, dll.)

  1. Pendahuluan: Pada mesin klien, jika Anda memiliki pengaturan yang ada, buka paprefsdan hapus centang semuanya ; kemudian bunuh PulseAudio untuk memastikan.

  2. Pada mesin server (yaitu, yang dengan speaker), mulai Preferensi PA ( paprefs) dan mengaturnya sebagai berikut:

    masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

    • Kemudian tutup, dan bunuh PulseAudio di terminal seperti yang ditunjukkan, tunggu, dan periksa apakah sekarang mendengarkan di port 4713:

    masukkan deskripsi gambar di sini

    • Jika Anda tidak melihatnya, buka paprefslagi dan centang kotak yang tersisa di tab Network Access dan Network Server (tidak ada salahnya)

    • Pastikan Anda tahu alamat IP server - gunakan ifconfig, dll. Kami akan menggunakan 192.168.0.4dalam contoh kami.

  3. Pada mesin klien, buka terminal, dan uji koneksi langsung kami terlebih dahulu, dengan WAV sampel ucapan (ganti 192.168 ... dengan IP server Anda !)

    wget http://www.signalogic.com/melp/EngSamples/Orig/female.wav
    paplay --server = 192.168.0.4: 4713 female.wav
    
    • Batalkan dengan Ctrl-C jika berhasil, itu bisa membosankan;)

Sekarang, tutup semua contoh browser yang sedang berjalan, dan kemudian mulai (anggap Firefox di sini dengan sintaks berikut):

PULSE_SERVER=192.168.0.4:4713 firefox &
  • Ganti 192...dengan IP yang sesuai untuk server Anda!

  • Dalam contoh Firefox itu, buka Youtube (atau situs video Flash mana saja), dan coba putar kembali video --- semoga saja, itu akan berfungsi tanpa gagap / berhenti!

Buat itu menempel

Jika Anda ingin membuat perbaikan ini berlaku untuk semua program alih-alih harus meletakkan PULSE_SERVER=192.168.0.4:4713di depan setiap perintah, edit /etc/environmentpada klien dan tambahkan PULSE_SERVER=192.168.0.4:4713pada baris baru di akhir file. Juga tambahkan jeda baris di akhir.

Ini akan membuat semua suara pada klien masuk ke server Pulseaudio, jadi pastikan itulah yang Anda inginkan sebelum melakukan pengeditan ini ke /etc/environmentfile Anda .

Nyalakan kembali, dan nikmati pengalaman audio smooooooth. ;)

izx
sumber
Ada firewall di jalan? dan Anda menempatkan 192.168.0.4 di mana-mana, bukan? Coba juga firefox walaupun female.wavtidak berhasil ...
ish
Argh, aku lupa satu langkah - silakan tambahkan baris ini ke akhir /etc/pulse/system.pa pada klien : load-module module-native-protocol-tcp auth-anonymous=1; simpan, bunuh pulseaudio, dan coba sekarang.
ish
Ya, klien - pengaturan paprefs di server seharusnya sudah mengaktifkan itu. Anda juga dapat menambahkannya ke server, tidak ada salahnya ...
ish
@DaveMG: Maaf, saya berasumsi Anda akan membatalkan komentar dua baris pada klien untuk saat ini. Maaf, sedang sibuk untuk hari terakhir atau lebih dan tidak aktif. Saya akan kembali sekitar jam 11:30 JST dan kami dapat melanjutkan. Sementara itu, Anda mungkin menemukan dua video ini dari konfigurasi terowongan default yang saya buat menarik: gagap , bekerja
ish
Asal tahu saja, saya mengedit jawaban dan saya mengkonsolidasikan komentar sehingga sedikit lebih jelas bagi siapa saja yang mungkin membaca jawaban ini (itu sebabnya komentar saya dihapus). Saya hanya ingin tahu apakah load-module module-native-protocol-tcp auth-anonymous=1;baris masuk /etc/pulse/system.paharus dimasukkan dalam jawaban, atau apakah itu merupakan bagian dari proses diagnostik yang dapat dibuang?
Penanya
3

Jika masalahnya Gnash di sini adalah cara memperbaikinya:

Tutup semua browser dan jalankan perintah ini:

sudo apt-get purge gnash mozilla-plugin-gnash adobe-flashplugin

maka ini sudo apt-get install adobe-flashplugin

ini memperbaiki masalah saya: pada dasarnya menghapus semua yang berhubungan dengan Gnash dan menginstal Flash.

zeitue
sumber
katakan padaku jika itu berhasil
zeitue
Terima kasih atas sarannya. Namun, sesuai pertanyaan saya yang diperbarui, mengubah steker Flash sepertinya tidak membantu masalah.
Penanya
2

Saya pikir masalah Anda mungkin terkait dengan flash player.

Ada plugin FireFox Flash-Aid yang menginstal versi appx flash sesuai dengan lingkungan Anda.

Searock
sumber
Terima kasih atas tipnya. Mengunduhnya, menginstalnya, mencoba beberapa variasi Flash yang berbeda. Sayangnya, masalah getaran suara tetap ada.
Penanya
2

Saya dapat memperbaiki masalah warna inversi video dengan menghapus centang (menonaktifkan) kotak centang Aktifkan akselerasi perangkat keras ketika Anda mengklik kanan flash player dan klik Pengaturan (Refresh untuk melihat efeknya).

Saya memiliki masalah gagap audio yang sama dengan Anda. Ini bekerja pada awalnya, kemudian setelah beberapa saat gagap masuk. Mudah-mudahan seseorang dapat memperbaikinya - walaupun saya ingin tahu bagaimana Anda dapat memotong server audio pulsa untuk mendapatkan suara (Saya hanya menggunakan laptop tanpa kebutuhan audio jaringan) .

(Saya punya Flash 11.2 r202 di Firefox Kubuntu 12.04 amd64)

pd12
sumber
Terima kasih untuk sarannya. Saya mencoba mengaktifkan dan menonaktifkan akselerasi perangkat keras, tetapi sepertinya tidak mengubah apa pun untuk saya. Juga, saya tidak tahu apa yang Anda maksud dengan "memotong audio pulsa".
Penanya
2

Apakah Anda sudah menginstal MIXX dj Player? Terkadang kacau dengan server suara. Atleast jika Anda menginstalnya itu akan mengubah tema suara default Anda "ubuntu" menjadi freedesktop.

Anda dapat mencoba menginstal "PulseAudio Preferences" dari pusat perangkat lunak Ubuntu.
Ada beberapa opsi konfigurasi yang terkait dengan jaringan.

Magang Penasaran
sumber
1

Saya memiliki masalah yang sama dan belum menemukan solusi sempurna untuk masalah tersebut. Saya perhatikan beberapa hal yang mungkin membantu Anda:

1) Ini terjadi pada saya dengan flash, tetapi juga terkadang dengan versi html5 dari youtube. Apakah ini juga terjadi pada Anda? ( http://www.youtube.com/html5/ Anda dapat mengaktifkan versi html5 dari youtube di sini). Ini menunjukkan bahwa masalahnya bukan eksklusif untuk flash (tapi mungkin browser entah bagaimana?)

2) Saya dapat membuat suara berfungsi dengan baik seperti Anda tanpa pergi ke server dengan menggunakan pavucontrol dengan mengatur perangkat output ke perangkat lokal dan kemudian kembali ke server jauh. Ini memecahkan gagap audio dan jeda dan lompatan video secara acak. Sayangnya ini hanya berfungsi sampai video berikutnya dimulai.

3) Saya cukup yakin bahwa ketika mencari masalah ini di Google, saya menemukan beberapa orang mengatakan bahwa masalahnya terkait dengan penghitung jam klien dan server tidak terhubung dengan benar dan itulah yang diatur ulang dengan memulai ulang server atau menghubungkan kembali dengan klien (mis. poin 2). Saya akan mencoba menggali itu untuk Anda.

Saya tidak dapat menemukan diskusi yang dijanjikan, tetapi saya memang menemukan beberapa informasi latar belakang tentang penjadwalan berbasis waktu: http://0pointer.de/blog/projects/pulse-glitch-free.html

HansHarhoff
sumber
+1 untuk memberi tahu saya bahwa saya tidak sendirian di alam semesta! Untuk poin 1, saya memang mencoba menggunakan versi html5 dari YouTube ketika mencoba menyelesaikan ini, tetapi video tidak diputar dengan benar, dan dengan cara yang sama sekali berbeda, jadi saya merasa itu agak tidak meyakinkan (mungkin ini masalah yang berbeda). Untuk poin 2, itu menarik, dan saya akan melihat apakah itu bekerja untuk saya juga. Tampaknya seperti solusi yang berbeda untuk masalah yang sama. Dan poin 3 adalah informasi yang paling menggembirakan, karena memiliki potensi untuk mulai mengarah ke penjelasan aktual tentang penyebabnya. Terima kasih telah merespons!
Penanya
Tidak masalah. Saya mencari informasi yang saya maksudkan, tetapi saya tidak dapat menemukannya lagi.
HansHarhoff
1
Saya memposting laporan bug ke launchpad di sini: bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1030559 Mari kita lihat apakah ini memberi kita beberapa petunjuk.
HansHarhoff
Bagus. Saya mengirim komentar pada bug sehingga saya berharap saya akan diberitahu tentang pembaruan. Saya belum memposting laporan bug saya sendiri karena saya tidak pernah tahu cara menggunakan Apport sedemikian rupa untuk dapat membuat laporan bug ketika tidak ada kerusakan perangkat lunak tertentu.
Penanya
1

Saya sangat senang akhirnya menemukan halaman ini.

Saya mengalami masalah ini sejak banyak versi Ubuntu (mulai tidak menyenangkan ketika padevchooser ditinggalkan) dan sekarang dengan Arch. Solusi untuk mengatur & mengekspor variabel lingkungan PULSE_SERVER sebelum memulai browser selalu bekerja baik untuk saya. Tidak perlu mengubah apa pun di server.

Tapi ada satu hal yang saya tidak mengerti: Ketika saya memulai browser saya (Chromium) dari terminal di dalam lingkungan desktop, suara bekerja. Ketika saya memulai browser dari peluncur (Xfce, Gnome, ...) seperti seharusnya, masalah yang dijelaskan di atas ada di sana. Saya pikir itu ada hubungannya dengan variabel lingkungan X11, tapi ini di luar kemampuan saya.

Bagi saya, saya memecahkan masalah sekarang dengan mengedit chromium.desktopfile saya dan menambahkan Pulse-Server di sana:

Exec=sh -c "PULSE_SERVER=mice.local chromium %U"

Armin Hahn
sumber
1

Anda harus memiliki plugin ini di firefox untuk menjalankan media apa pun dengan sempurna. Periksa mana yang Anda miliki dan yang tidak Anda miliki.

Profilnya harus seperti ini:

Magang Penasaran
sumber
0

Saya menemukan solusi untuk memperbaiki kegagapan saat menggunakan modul-tunnel-sink.

Yang harus Anda lakukan adalah mengunduh Flash Player versi 10.3 (yang juga memiliki dukungan akselerasi perangkat keras, Adobe menjatuhkannya di versi 11).

Inilah biner x86_64

Untuk menginstalnya ekstrak libflashplayer.soperpustakaan ke ~/.mozilla/pluginsdirektori atau ubah tautan saat ini menggunakan update-alternatives.

Perlu diketahui bahwa versi 10.3 memiliki banyak kerentanan keamanan, jadi Anda menggunakannya dengan risiko Anda sendiri.

patataj
sumber