LINUX.ORG.RU

Передавать звук с локального плеера на другой хост через ffmpeg и loopback device (Remote sound server?)

 , , ,


3

3

Не хочу всяких PulseAudio и т.п.

Хотелось бы c использованием только ALSA, snd-aloop и ffmpeg.

В принципе понятно, что нужно что-то похожее на:

Workstation: Player -> ALSA -> snd-aloop -> ffmpeg_N1 -> network

Remote Server (with Hardware Sound Card): network -> ffmpeg_N2 -> sound_card

Вопрос только в следующем, умеет ли ffmpeg работать в режиме подключения ffmpeg_N1 к ffmpeg_N2 в качестве клиента в терминологии TCP/IP ? Т.е. чтобы НЕ открывать порт stream сервера звука на workstation? Впрочем я все равно собираюсь потом использовать канал SSH для связи хостов, поэтому будет ли redirect через ssh -L или ssh -R не очень принципиально.

Т.е. меня интересует совет по ману:

https://manpages.ubuntu.com/manpages/kinetic/en/man1/ffmpeg-protocols.1.html



Последнее исправление: sanyo1234 (всего исправлений: 1)

Работает такой простой пример:

ffmpeg -i k3b_success1.wav -f opus pipe: | ssh sound_card_host ffmpeg -i pipe: -f alsa default; 

Далее пробуем через ALSA Loopback Device. Запускаем передачу звука через ssh pipe:

Dev="plughw:Loopback";
CaptureDev=$Dev,0,1;
modprobe snd-aloop;
ffmpeg -f alsa -i $CaptureDev -f opus pipe: | ssh sound_card_host ffmpeg -i pipe: -f alsa default;

Тестируем в другом терминале:

PlayDev=$Dev,1,1;
aplay -vvv -D $PlayDev k3b_success1.wav; # Works!

Удалось проигрывать тестовый файл на удаленном хосте, но начинает играть только после окончания передачи его с клиента :(

Как добиться real-time проигрывания с плеера?

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 3)