Переключение потока аудиозаписи импульсов для конвейера gstreamer - PullRequest
0 голосов
/ 03 июня 2018

В настоящее время я пытаюсь захватить воспроизведение звука с моего компьютера и переслать его на сервер icecast2, так что я могу прослушивать воспроизведение компьютера на своих интернет-радио.

Поэтому сначала я подбираю правильную звуковую карту с помощью:

pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2

и открываю линию gstreamer с помощью:

gst-launch-1.0 pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor ! audioconvert ! lamemp3enc target=1 bitrate=128 cbr=true ! shout2send ip=127.0.0.1 port=8000 password=XXXXX mount=mystream.mp3

После выполнения вышеупомянутых команд я могу перейти кpavucontrol-> запись и переключение потока записи на «Монитор внутреннего аналогового звука».

Пока все работает, и я могу слушать поток на моем интернет-радио.

Теперь я хотел бынравится выполнять шаги в сценарии для автоматического запуска потока при загрузке.К сожалению, я не смог выяснить, как я могу переключить поток записи (что я делал раньше с pavucontrol) в сценарии.

BR webbolle

1 Ответ

0 голосов
/ 09 июня 2018

Можно создать сценарий, который изменяет аудиоустройство для вкладки pavucontrol-> record, используя следующие команды:

#get the id of the Record device
ID=`pactl list | grep -E "(Source\sOutput|media\.name)" | grep Record\ Stream -B1 | grep -o -E -m1 "[0-9]+"`

#switch the record device to analog-stereo.monitor
pactl move-source-output $ID alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

Я думаю, что регулярное выражение, которое я использую, чтобы получить идентификатор источника записиструя очень некрасиваяЕсли у кого-то есть лучший способ, пожалуйста, дайте мне знать: -).

BR webbolle

...