2014-12-24 5 views
3

ffmpeg가있는 도커 컨테이너 안에 Firefox와 같은 응용 프로그램의 오디오를 녹음하려면 어떻게해야합니까? pulseaudio를 호스트에 전달하는 방법을 찾았습니다 (netflix, skype).도커 컨테이너에 로컬 오디오 녹음

pactl list sources 

또는

docker exec -it <container-id> bash 
apt-get install pulseaudio 
pactl load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/.pulse-socket 

내가 오류를 받고 있어요 : 나는 pactl를 사용하려고 해요 때

Connection failure: Connection refused 
pa_context_connect() failed: Connection refused 

이 또한 실패

ffmpeg -f pulse -i default /tmp/pulse.wav 

답변

0

기본적으로 컨테이너 내부의 사운드 카드에 액세스 할 수는 없습니다. 도커 실행에 --privileged 플래그를 전달하면 정상적으로 작동합니다. 이것은 컨테이너에 호스트에 대한 모든 권한을 부여합니다.이 권한을 기능 집합으로 제한하고자 할 수 있습니다. - 당신을 위해 널 싱크/소스를 만듭니다 펄스 오디오, 경우에 당신이뿐만 아니라처럼 당신을 루프백 디바이스를 추가 할 수 있습니다 https://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration

+0

호스트는 VPS이므로 사운드 카드도 없습니다. 저는 가상 프레임 버퍼를 사용하는 것과 비슷한 가상 사운드 카드로 오디오를 녹음하는 것에 관심이 있습니다. – pablo

+0

그게 사물을 변화시킵니다. 가상 사운드 카드에 대한 생각은 없지만, 여전히 권한 문제라고 생각됩니다. –

+0

이렇게하면 도움이 될 수 있습니다. http://stackoverflow.com/questions/21688115/pactl-called-from-systemd-service-always-reports-pa-context-connect-failed-co 도커. 성공하면 좋은 블로그가 될 것입니다. –

1

당신은 고정 표시기 컨테이너에 사운드 카드가 필요하지 않습니다 : 자세한 내용은

.

그러나! X가 필요한 펄스 오디오 라이브러리를 사용하는 경우 연결 오류가 발생했습니다. Xvfb를 사용했습니다. 그리고이 같은 짓 : 난 그냥 가지 사운드를 재생했을 때 감지하는 데 필요한

Xvfb :0 -screen 0 1600x1200x24+32 -ac -fbdir /shared_volume& 
pulseaudio --start --disallow-exit -vvv --log-target=newfile:"$LOG_DIR/pulseaudio.log" --daemonize& 

,하지만 this guide 물건을 기록 루프백 장치를 사용하는 방법의 좋은 세부 범위를 보였다.