Tôi đã cài đặt raspbian trên Pi của mình và định cấu hình chậu PulseAudio với ý định truyền tất cả âm thanh từ máy tính để bàn sang Pi, điều khiển loa.
Tôi đã làm theo mô tả hay này: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=38&t=11124
Lúc đầu, điều này dường như làm việc mà không có vấn đề. Tuy nhiên, âm thanh được gửi từ máy tính để bàn liên tục bị vấp trên Pi, như thể có bộ đệm liên tục bị tràn chỉ với một vài mẫu bị thiếu ở giữa.
Tôi đã dành cả ngày cố gắng để tìm ra nguyên nhân, nhưng vô ích. Các thiết lập cơ bản là:
- kết nối mạng LAN có dây
- raspbian pi mới nhất (26 tháng 9 năm 2013) với các bản cập nhật firmware mới nhất
- PulseAudio 2.0 ở cả hai bên (máy tính để bàn Ubuntu)
- Phát lại thông qua mplayer, totem, ffplay
- truyền mạng qua mô-đun-giao thức-tcp
Đây là những gì tôi đã cố gắng:
- Phát âm thanh trực tiếp trên Pi hoạt động hoàn hảo.
- Truyền phát đến các máy tính (máy tính để bàn) khác hoạt động tốt.
- Gửi âm thanh với kết nối trực tiếp (chỉ định $ PULSE_SERVER) hoạt động khá tốt với rất ít nói lắp, nhưng vẫn dễ xảy ra sự cố-2 (xem bên dưới)
- Gửi âm thanh qua đường hầm PulseAudio để bàn cho phép nói lắp liên tục
- Tăng mức độ ưu tiên / lập lịch thời gian thực ... không giúp được gì
- Sửa tốc độ lấy mẫu thành 48 kHz ... không giúp được gì
- Đặt thuật toán lấy mẫu lại thành "tầm thường" ... không giúp được gì
- Điều chỉnh các đoạn mặc định / kích thước mảnh ... không giúp được gì
Tôi không thể tìm thấy bất kỳ dấu hiệu nào của sự cố trong nhật ký PulseAudio (hiển thị từ khi tôi bắt đầu phát lại):
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 ...
Vấn đề 2: như đã nói ở trên, tôi có thể nhận được âm thanh khá ok với kết nối trực tiếp. Tuy nhiên, sau một vài lần bỏ qua trong luồng (sử dụng mplayer), máy chủ PulseAudio bị treo và hoàn toàn không phát bất kỳ âm thanh nào. Đôi khi nó có thể được hồi sinh bằng cách khởi động lại mplayer. Đôi khi nó bị treo rất tệ đến mức PulseAudio phải được khởi động lại. Đôi khi nó bị treo khi tôi chỉ thay đổi mức âm lượng.
Theo tài liệu của PulseAudio, lợi thế của kết nối trực tiếp so với kết nối được điều chỉnh là có khả năng kiểm soát bộ đệm tốt hơn, điều này cho thấy lý do tại sao tôi có được âm thanh tốt với kết nối trực tiếp: http://www.freedesktop.org/wiki/Software / PulseAudio / Tài liệu / Người dùng / Mạng /
Tôi hết ý tưởng bây giờ. Điều gì có thể gây ra nói lắp và vấn đề 2? Chỉ cần một ý tưởng làm thế nào để tiến hành gỡ lỗi cũng sẽ được đánh giá cao.