Alpine Linuxを実行しているDockerがあります。ハードウェアオーディオデバイスはまったくありません。
ユーザーの下で、pulseaudioを正常に動作させることができました。
私は、ffmpegを使用してDockerからオーディオをストリーミングすることを目的として、PAを仮想サウンドカードとして機能させることを試みています。しかし、今のところ運がなければ。また、オーディオハードウェアが不足しているマシンが関係していない例はまだありません。
私の主な懸念は、VICE(x64、The Commodore 64 emulator)が 'Pulse'「ダミー」の代わりに。 '--with-Pulse'を使用してVICEをコンパイルしましたが、 'Pulse'は実際に設定メニューに表示されます。
ただし、「ダミー」ではなく「パルス」に切り替えると、x64は初期化できないと警告し、それ自体のサウンド出力を無効にします。
pactlとpacmdは、pulseaudioサーバーの制御に問題がないようです。
私は以下を試しました(そしてモジュールパイプも)
$ pacmd load-module module-null-sink sink_name=VirtSoundCard sink_properties=device.description=Virtual-Sound-Card
$ pacmd set-default-sink VirtSoundCard
今のところ運が無いのに。それで、私が残りの夜を過ごす間、それがどのように行われるかを知っているかもしれない人から連絡をもらいたいと思っています。
Atmを使用している「default.pa」: https://bitbucket.org/duckhuntpr0/pyvice/src/pyvice_base/src/fs/home/pyvice/default.pa
Pulseaudioはさまざまなシンク(「仮想サウンドカード」と呼ばれるもの)を作成できますが、sinksは出力用、ソースは入力用であり、実際のサウンドハードウェアにも関連付けられます)。
シンクと構文例を含む モジュールリスト をご覧ください。 RTP/SDP 、 [〜#〜] roap [〜#〜] のいずれかを選択できます。
ホスト上のpulseaudioサーバーにネイティブprocotol経由でアクセスすることもできます。その場合、dockerクライアントでpulseaudioサーバーを実行する必要はありません。
これまでのところ、ffmpeg
を使用する必要はありませんでした。 ffmpeg
を本当に使用したい場合は、 null sink を作成し、そのモニターソースをffmpeg
まで接続することもできます。これは、「仮想サウンドカード」のアイデアに最も近いものになりますが、最も効率の悪い代替手段でもあります。
最後に、Dockerイメージ内でVICE(エミュレーター)を実行する必要がある理由がよくわかりません。これはすでにエミュレーターであるため、ホスト上で実行するだけです。エミュレートされたC64プログラムが何か悪いことをする危険はありません。