Saya telah menginstal raspbian pada Pi saya dan mengkonfigurasi wastafel PulseAudio dengan maksud untuk mengalirkan semua audio dari desktop saya ke Pi, menggerakkan pengeras suara.
Saya mengikuti deskripsi yang bagus ini: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=38&t=11124
Pada awalnya, ini tampaknya berhasil tanpa masalah. Namun, audio yang dikirim dari desktop terus-menerus tergagap pada Pi, seolah-olah ada buffer underruns yang konstan dengan hanya beberapa sampel yang hilang di antaranya.
Saya menghabiskan sepanjang hari berusaha mencari penyebabnya, tetapi tidak berhasil. Pengaturan dasar adalah:
- koneksi LAN kabel
- pi raspbian terbaru (26 Sep 2013) dengan pembaruan firmware terbaru
- PulseAudio 2.0 di kedua sisi (desktop Ubuntu)
- Putar ulang melalui mplayer, totem, ffplay
- transmisi jaringan melalui module-native-protocol-tcp
Inilah yang saya coba:
- Memutar audio langsung di Pi berfungsi dengan sempurna.
- Streaming ke komputer lain (desktop) berfungsi dengan baik.
- Mengirim audio dengan koneksi langsung (menentukan $ PULSE_SERVER) berfungsi cukup baik dengan sedikit gagap, tetapi masih rentan terhadap Masalah-2 (lihat di bawah)
- Mengirim audio melalui desktop PulseAudio tunneling memberikan kegagapan konstan
- Meningkatkan prioritas / penjadwalan waktu nyata ... tidak membantu
- Memperbaiki laju pengambilan sampel hingga 48 kHz ... tidak membantu
- Mengatur algoritma resampling ke "trivial" ... tidak membantu
- Menyesuaikan ukuran fragmen / fragmen default ... tidak membantu
Saya tidak dapat menemukan indikasi masalah dalam log PulseAudio (ditunjukkan sejak saya mulai pemutaran):
D: [alsa-sink] protocol-native.c: Requesting rewind due to end of underrun. D: [alsa-sink] sink-input.c: Requesting rewind due to uncorking D: [pulseaudio] sink.c: Suspend cause of sink alsa_output.platform-bcm2835_AUD0.0.analog-stereo is 0x0000, resuming I: [alsa-sink] alsa-sink.c: Trying resume... I: [alsa-sink] alsa-util.c: cannot disable ALSA period wakeups D: [alsa-sink] alsa-util.c: Maximum hw buffer size is 341 ms D: [alsa-sink] alsa-util.c: Set buffer size first (to 16384 samples), period size second (to 16384 samples). I: [alsa-sink] alsa-util.c: ALSA period wakeups were not disabled D: [alsa-sink] alsa-sink.c: Latency set to 25.00ms D: [alsa-sink] alsa-sink.c: hwbuf_unused=60736 D: [alsa-sink] alsa-sink.c: setting avail_min=15665 I: [alsa-sink] alsa-sink.c: Time scheduling watermark is 15.00ms I: [alsa-sink] alsa-sink.c: Resumed successfully... I: [alsa-sink] alsa-sink.c: Starting playback. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.platform-bcm2835_AUD0.0.analog-stereo becomes busy. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] alsa-sink.c: Cutting sleep time for the initial iterations by half. D: [alsa-sink] ratelimit.c: 115 events suppressed D: [alsa-sink] alsa-sink.c: Wakeup from ALSA! ... no more output, but stuttering continues ...
Masalah 2: seperti yang dikatakan di atas, saya bisa mendapatkan audio yang cukup ok dengan koneksi langsung. Namun, setelah beberapa lompatan dalam aliran (menggunakan mplayer), server PulseAudio hang dan tidak memainkan audio sama sekali. Kadang-kadang dapat dihidupkan kembali dengan me-restart mplayer. Terkadang hang sangat buruk sehingga PulseAudio harus dihidupkan ulang. Kadang-kadang bahkan hang ketika saya hanya mengubah level volume.
Menurut dokumen PulseAudio, keuntungan dari koneksi langsung melalui koneksi tunnelled adalah memiliki kontrol buffering yang lebih baik, yang tampaknya menunjukkan mengapa saya mendapatkan audio yang bagus dengan koneksi langsung: http://www.freedesktop.org/wiki/Software / PulseAudio / Dokumentasi / Pengguna / Jaringan /
Saya kehabisan ide sekarang. Apa yang bisa menyebabkan gagap dan Masalah 2? Hanya sebuah ide bagaimana melanjutkan debugging juga akan dihargai.
sumber
Jawaban:
tsched_buffer_size
dantsched_buffer_watermark
pengaturan yang membuatnya bekerja untuk saya.Saya menjalankan PulseAudio saya sebagai contoh sistem, jadi konfigurasinya ada di
/etc/pulse/system.pa
. Jika Anda menggunakan contoh sesi sebagai gantinya, maka konfigurasi akan berada di/etc/pulse/default.pa
.Ini standarnya:
Saya menggantinya dengan ini: (yaitu, berkomentar)
Kemudian saya menambahkan baris berikut:
Lihat http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index6h3
sumber
Poin utama adalah bahwa Anda harus menggunakan
module-tunnel-sink-new
, tetapi Anda juga harus membuat beberapa perubahan lain untuk mendapatkan audio jaringan yang bebas gangguan pada raspberry pi 1.Mari kita gunakan istilah pengirim untuk menunjukkan komputer yang mengirimkan aliran ke raspberry pi Anda.
default-fragments
dandefault-fragment-size-msec
masukdaemon.conf
pada pengirim ke nilai-nilai ini:module-tunnel-sink-new
dengan mengeluarkan perintah ini di pengirim (dengan asumsi nama host raspberry pi Anda adalah RP1 dan Anda memiliki mDNS yang bekerja di jaringan lokal Anda. Jika tidak, gunakan saja alamat IP pi raspberry Anda).Dengan pengaturan ini saya mendapatkan audio bebas gagap dari raspberrypi 1 melalui jaringan nirkabel yang beroperasi pada 54 Mbps (Dalam pengaturan saya, pengirim menggunakan ethernet dan RP1 menggunakan wlan). Sebenarnya, ini berfungsi bahkan ketika pengirim dan raspberrypi menggunakan wlan, setidaknya jika tidak ada perangkat lain di jaringan nirkabel.
sumber
tsched=0
, lihat wiki.archlinux.org/index.php/PulseAudio/… )apakah Anda melihat halaman ini:
http://manpages.ubuntu.com/manpages/lucid/man5/pulse-daemon.conf.5.html
PENGATURAN FRAGMENT DEFAULT
sumber
Untuk menghilangkan masalah kegagapan atau batas waktu, cobalah downgrade FW:
sumber
rpi-update
bisa dilakukan oleh mode ini untuk sistem Anda.rpi-update
dapat dilakukan dengan cara ini untuk sistem kami ...Saya menyadari bahwa masalah ini mungkin terkait dengan versi kernel. Setelah memutakhirkan dari 3.6.11 ke 3.12.0 Saya selalu menerima underruns tersebut. Downgrade kembali ke 3.6.11 menyelesaikan masalah bagi saya.
sumber
Saya telah membaca halaman ini beberapa kali ... Saya juga merasa frustrasi dengan gagapnya kombinasi jaringan RaspberryPi-pulseaudio. Saya mencari sedikit lebih banyak dan menemukan halaman di mana saya menemukan bagian dari solusi:
=> Nonaktifkan module-suspend-on-idle di default.pa (atau system.pa).
Lihatlah, kegagapan telah hilang!
Sekarang satu-satunya masalah adalah bahwa setelah beberapa saat (10 hingga 20 detik) pemutaran hang: - /
Ada saran?
sumber