Ubuntu에서 여러 응용 프로그램의 오디오 출력을 여러 파일로 병렬로 리디렉션하고 싶습니다. 예를 들어, 백그라운드에서 동시에 두 개의 Chrome 인스턴스가 실행 중인 경우 해당 오디오 출력을 두 개의 개별 파일로 리디렉션할 수 있도록 하고 싶습니다.이것한 번에 하나의 인스턴스를 기록할 수 있었기 때문에 대답을 듣고 가까워졌습니다(인스턴스 A라고 부름). 그러나 두 번째 인스턴스(인스턴스 B)에서 녹음을 시작하면 두 번째 인스턴스가 해당 오디오 스트림과 첫 번째 인스턴스의 오디오 스트림을 모두 가져오는 것 같습니다. 결과는 두 개의 오디오 파일이지만 instance_a_output.ogg
인스턴스 B를 시작한 명령을 실행하는 시점에 파일이 음소거됩니다. 또한 instance_b_output.ogg
A 및 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)
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?