4

ffmpeg を使用して docker コンテナー内で Firefox のようなアプリケーションのオーディオを録音するにはどうすればよいですか? pulseaudio をホストnetflixskypeに転送する方法の例を見つけました。

pactl を使用しようとしている場合:

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

エラーが発生します:

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

これも失敗

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

2 に答える 2

2

docker コンテナーにサウンド カードは必要ありません。pulse audio は null シンク/ソースを作成します。必要に応じてループバック デバイスを追加することもできます。

でも!X を必要とする Pulse オーディオ ライブラリを使用すると、接続エラーが発生します。Xvfb を使用しました。そして、次のようなことをしました:

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

サウンドが再生されているタイミングを検出する必要がありましたが、このガイドは、ループバック デバイスを使用して録音する方法を詳しく説明しているように思えました。

于 2015-07-17T00:37:13.923 に答える
0

デフォルトでは、コンテナ内のサウンド カードにはアクセスできません。--privilegedフラグを docker run に渡すと、機能するはずです。これにより、コンテナにホスト上の完全な権限が付与されることに注意してください。これを一連の機能に制限することをお勧めします。

詳細については、https ://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration を参照してください。

于 2014-12-24T14:44:22.257 に答える