web-dev-qa-db-ja.com

オーディオハードウェアなしでLinuxで仮想PulseAudioサウンドカードを作成するにはどうすればよいですか?

Alpine Linuxを実行しているDockerがあります。ハードウェアオーディオデバイスはまったくありません。

ユーザーの下で、pulseaudioを正常に動作させることができました。

私は、ffmpegを使用してDockerからオーディオをストリーミングすることを目的として、PAを仮想サウンドカードとして機能させることを試みています。しかし、今のところ運がなければ。また、オーディオハードウェアが不足しているマシンが関係していない例はまだありません。

私の主な懸念は、VICE(x64、The Commodore 64 emulator) 'Pulse'「ダミー」の代わりに。 '--with-Pulse'を使用してVICEをコンパイルしましたが、 'Pulse'は実際に設定メニューに表示されます。

ただし、「ダミー」ではなく「パルス」に切り替えると、x64は初期化できないと警告し、それ自体のサウンド出力を無効にします。

pactlpacmdは、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

5
DhP

Pulseaudioはさまざまなシンク(「仮想サウンドカード」と呼ばれるもの)を作成できますが、sinksは出力用、ソースは入力用であり、実際のサウンドハードウェアにも関連付けられます)。

シンクと構文例を含む モジュールリスト をご覧ください。 RTP/SDP[〜#〜] roap [〜#〜] のいずれかを選択できます。

ホスト上のpulseaudioサーバーにネイティブprocotol経由でアクセスすることもできます。その場合、dockerクライアントでpulseaudioサーバーを実行する必要はありません。

これまでのところ、ffmpegを使用する必要はありませんでした。 ffmpegを本当に使用したい場合は、 null sink を作成し、そのモニターソースをffmpegまで接続することもできます。これは、「仮想サウンドカード」のアイデアに最も近いものになりますが、最も効率の悪い代替手段でもあります。

最後に、Dockerイメージ内でVICE(エミュレーター)を実行する必要がある理由がよくわかりません。これはすでにエミュレーターであるため、ホスト上で実行するだけです。エミュレートされたC64プログラムが何か悪いことをする危険はありません。

3
dirkt