PulseAudioを使用して複数のアプリケーションのオーディオを並列に別々のファイルにストリーミング

PulseAudioを使用して複数のアプリケーションのオーディオを並列に別々のファイルにストリーミング

Ubuntuで複数のアプリケーションのオーディオ出力を複数のファイルに並列にリダイレクトしたいと思います。たとえば、バックグラウンドで2つのChromeインスタンスを同時に実行している場合は、そのオーディオ出力を2つの別々のファイルにリダイレクトできるようにしたいと思います。これ一度に1つのインスタンスを記録できたので、答えを聞いて近づきました(インスタンスAと呼ばれます)。ただし、2番目のインスタンス(インスタンスB)で録音を開始すると、2番目のインスタンスはそのオーディオストリームと最初のインスタンスのオーディオストリームの両方を取得するようです。結果は2つのオーディオファイルですが、instance_a_output.oggインスタンスBを起動したコマンドを実行するとファイルがミュートされます。また、instance_b_output.oggAとBストリームのオーディオもあります。

私の問題は、「ファイルに再生アプリケーションを接続する」セクションで述べた「デフォルトの受信機入力」である可能性があると思います。これウェブサイト。

私のラッパー関数は次のとおりです(上記の答えと同じ)。

#!/bin/bash

# Example invocation:
# ./wrapper.sh output_name mpg123 example.mp3

my_sink_name="sink-$(date +%s)"
module=`pactl load-module module-null-sink sink_name=$my_sink_name`
parec -d $my_sink_name.monitor | oggenc -Q -b 192 -o ~/audio/$1.ogg --raw - &
pid=$!
(export PULSE_SINK=$my_sink_name; ${@:2})
pactl unload-module $module
kill $pid

完成度を上げるためにラッパーを呼び出すために使用するPythonスクリプトがありますが、問題は存在しないようです。

import subprocess
import time

command1 = ["/home/myname/audio/wrapper.sh", "test{}".format(1), "mpg123", "-q", "example.mp3"]
command2 = ["/home/myname/audio/wrapper.sh", "test{}".format(2), "mpg123", "-q", "example.mp3"]

subprocess.Popen(command1)
time.sleep(3)
subprocess.Popen(command2)

この問題を解決する方法についてのアイデアはありますか?

ベストアンサー1

おすすめ記事