답변:
공식 지침을 대부분의 사람들이 네트워크에 "직접 연결"희망 단지 작품을 만들 수 있지만,이 펄스 오디오 보인다 내가 그 잘 따라하지 않습니다 : 그것은 나에게 갔다 시간 . [ "직접 연결"외에도 아래에서 자세히 설명하는 "터널"방법을 사용할 수도 있지만 먼저 읽어 보시기 바랍니다.]
이제 파이에 (fedora 17) 데스크톱 스트리밍 사운드가 있습니다. /etc/pulse
양쪽 에서 구성 파일을 최소화했습니다 . 데스크탑 측면에서 :
/etc/pulse/client.conf
# See man pulse-client.conf
default-server = tcp:192.168.2.13:4713
기본 펄스 오디오 포트가있는 내 파이의 LAN 주소. 그러나 여기에 서버가 지정된 상태에서 펄스 오디오가 시작되지 않는 동안 잠시 혼란스러워했던 부분이 있습니다.
> pulseaudio --start
N: [pulseaudio] main.c: User-configured server at tcp:192.168.2.13:4713, refusing to start/autospawn.
포 그라운드에서 실행됩니다 (아마도 pulse-client.conf?를 읽지 못하기 때문에). 그러나 밝혀진 것처럼 데스크탑 (송신) 측에서 전혀 실행할 필요 가 없습니다. 펄스 오디오 문서에서는 철자가 아닙니다. lsof -i -P
그것을 사용 하면 다양한 미디어 플레이어를위한 하위 레벨 플러그인이 작동하는 것으로 보입니다.
따라서 "client.conf"라는 한 줄은 실제로 데스크탑 / 클라이언트쪽에 필요한 모든 것입니다. 네트워크를 사용하기 만하면됩니다 (하지만 아래의 "아직 더 복잡한 문제"참조).
펄스 오디오 디먼 (수신 / 서버 측)을 시스템 서비스로 실행할 수 있지만, 펄스 개발자는이를 권장하지 않으며 실제로는 pi init 스크립트에서 경고가 발생합니다. 여전히 시작해야합니다. 너 자신. Fedora에는 시스템 부팅 서비스 항목도 포함되어 있지 않습니다.
따라서 pi 측에서 다음과 같이 구성된 pulseaudio 서버 프로세스를 명시 적으로 시작하고 중지해야합니다.
/etc/pulse/daemon.conf
# See man pulse-daemon.conf
log-level = info
exit-idle-time = 10800 # 3 hours
exit-idle-time
데몬을 무한정 실행하기 위해 -1을 사용할 수 있습니다 . 이 값은 초이며 기본값은 20입니다 (이 값을 설정하지 않으면 "신기하게"죽어가는 것을 의미합니다).
/etc/pulse/default.pa
# See man default.pa
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.2.0/24
load-module module-alsa-sink device=hw:0,0
이 앱은 네트워크 앱이므로 루트로 실행하는 것은 좋지 않습니다. 그러나에서 언급 한 바와 같이 man pulseaudio
프로세스에 우선 순위를 부여하기 위해 프로세스를 "우수"하는 것이 좋습니다. 를 사용하여 수동으로 수행 할 수 nice
있지만 실행 파일이 "setuid"인 경우 pulseaudio는 루트 또는 pulse-rt
그룹 구성원에 대해 자동으로 수행합니다 . 즉, 일부 루트 권한을 사용하고 올바른 권한이없는 uid ( 및 또한이 작업을 수행해야합니다). 따라서 (루트 또는 sudo로) :ping
passwd
chmod u+s /usr/bin/pulseaudio
pulse-rt
raspbian에 pulseaudio를 설치할 때 생성 된 그룹 이 없으므로 다음을 수행하십시오.
groupadd pulse-rt
이것은 당신에게 1003 같은 gid를 줄 것입니다. 그 그룹에 user pi를 추가하십시오 :
usermod -aG pulse-rt pi
그러나 라즈 비안에서는 여전히 파이처럼 부를 수 없습니다. 이를 위해 다음을 추가하십시오 /etc/security/limits.conf
.
@pulse-rt hard nice -20
@pulse-rt soft nice -20
이러한 변경이 이루어지기 전에 실제로 로그인을 실행해야합니다. pi와 함께 ssh를 사용하는 경우을 사용하십시오 login
. 이제 pulseaudio를 시작할 수 있으며 -11을 되 찾을 수 있습니다. 이는 대부분의 다른 프로세스보다 우선 순위가 높습니다 (의 NICE 값 참조 top
).
네트워크에서 스트리밍되는 사운드를 재생하는 동안 pi의 펄스 오디오는 약 10 %의 CPU와 사소한 양의 메모리를 사용합니다. :) 그것과 나의 데스크탑은 유선 LAN에 있습니다; 펄스는 원시 pcm 데이터를 스트리밍하므로 대역폭 사용량은 소스의 샘플 속도, 1 kB / s 이상에 해당합니다. 안타깝게도 비디오를보고있는 경우 소리가 눈에 띄게 지연됩니다.
불행히도 내 PC의 다양한 사운드 응용 프로그램 중 어느 것도 바로 작동하지 않았습니다. mpg123
전혀 실행되지 않습니다. 이를 위해 페도라에서는 mpg123-plugins-pulseaudio
패키지 가 필요합니다 . 브라우저의 플래시 콘텐츠 (예 : 유 튜드)alsa-plugins-pulseaudio
(실제로 원격 서버에 연결되는 것) 다른 배포판에는 비슷한 패키지가 있어야합니다. 이전에 펄스 오디오를 사용해 본 적이 없다면 이미 설치되어있을 수 있습니다.
KDE의 데스크톱 벨과 휘파람도 작동하지 않았습니다. 로컬 펄스 오디오 서버를 찾고 설명 된대로 직접 연결을 사용하면 서버를 로컬로 실행할 수 없으므로 이는 해결하기 어려운 문제입니다. 이를 해결하는 방법은 "터널"방법을 사용하는 것입니다.
이것은 pulseaudio 문서에서 언급 된 다른 방법입니다. 이 경우 서버가 양쪽에서 실행되고 한 쪽이 다른쪽으로 핸드 오프됩니다. 이렇게하려면 "default-server"를 주석 처리하고 다음을 포함 /etc/client.conf
하는 로컬 /etc/default.pa
을 추가하십시오 .
load-module module-tunnel-sink sink_name=rpi_tunnel server=tcp:192.168.2.13:4713 sink=bcm1
입력하지 않으면 sink_name
pulseaudio가 시작되지 않습니다. 이 sink
이름은 파이 측의 싱크 이름을 나타내며 이름도 필요합니다. 거기에 해당 sink_name
하는 module-alsa-sink
줄 을 추가하십시오 default.pa
:
load-module module-alsa-sink device=hw:0,0 sink_name=bcm1
서버를 양쪽에서 시작하고 미리 정렬하십시오. KDE 경고음을 포함한 모든 기능이 수행되었지만 브라우저 플래시 재생이 심하게 끊겼습니다. 그러나 다른 데스크톱 환경 (실제로는 창 관리자 인 fvwm)에서는 문제가 없었습니다.
나는 KDE를 좋아하지만 경고음없이 살 수 있으므로 지금은 직접 연결을 사용합니다.
문제가있는 경우 pulseaudio -vvvv --log-level=debug
pi를 사용 하면 많은 디버깅 메시지가 제공됩니다. 처음에 파이에서 소리를 낼 수 없었을 때, 이것은 "ALSA bcm2835 드라이버의 버그와 관련이있는"문제를보고했는데, 이것은 단지 alsa로 소리가 좋았 기 때문에 나에게 이상해 보였고, 그 주위에 파이 소프트웨어가 있다고 확신합니다. 펄스 오디오에서 – apt-get remove pulseaudio
그리고 다시 설치 apt-get install pulseaudio
하면이 문제를 해결하는 것 같았습니다 ... 내가보고 싶은 해결책은 아니지만, 적어도 지금은 모든 상자에 스피커를 꽂지 않아도 티쉬를들을 수 있습니다. 대개.