私はUbuntu16.04.3LTSシステムを持っています
私たちの教会では、サービスをブロードキャストしたり、WAVファイルとして記録したりできるようにしたいと考えています。これを実現するために、サウンドボードからの3.5mmオーディオ出力ケーブルをスプリッターに接続し、各サウンドカードの「ライン入力」コネクタに接続するケーブルが2本あるようにします。
次に、「arecord」を使用して一方のカードにオーディオを録音し、「darkice」を使用してもう一方のカードにMP3ストリームを作成します。
理想的には、1枚のサウンドカードで録音とストリーミングの両方を同時に処理できるようにしたいと思います。そのようなことは可能ですか?または、2つのアプリケーションで2つのサウンドカードを使用して立ち往生していますか?
はい、それは簡単に可能です。あなたは本当にALSAだけを実行していますか、それともPulseaudio(基本的に何年もの間すべてのディストリビューションのデフォルト)も実行していますか?
Pulseaudioを使えば、箱から出してすぐに動作するはずです。
ALSAでは、plughw
デバイス名の代わりにdsnoop
デバイス名(内部でhw
プラグを追加します)を使用していることを確認してください。 dsnoopプラグイン は、入力ストリームをさまざまなアプリケーションの複数のストリームに分割します。
編集
私が言ったように、-D hw:0
など(ハードウェアアドレスに合わせて変更)の代わりに、arecord
には-D plughw:0
を使用し、darkice
のデバイス名にも同様に使用します。
条件は、他のプログラムがhw:0
を直接使用しないことです。それらはすべてplughw:0
を使用する必要があります。
dsnoop
の詳細を実際に知る必要はありません。ALSAがこれを自動的に行います。 (しかし、私がリンクしたプラグインページで詳細を読むことができます)。
独自の~/.asoundrc
を設定する必要はなく、構成ファイルを変更する必要もありません。
私はdirktの答えを受け入れたので、ほとんどの方法でそこにたどり着きました。 dsnoop
インターフェースを作成する必要があることがわかりました。
/etc/asound.conf
pcm.custom_snoop_card {
type dsnoop
ipc_key 420042
ipc_key_add_uid 1
slave {
pcm "hw:0,0" # the actual device
format S16_LE
channels 2
rate 44100
}
}
これで、darkice
設定でdevice = custom_snoop_card
を指定し、同時にarecord -D custom_snoop_card -f S16_LE -c2 -r 44100 -vv myfile.wav
でWAV録音を行うことができます。