1

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

Я искал пару дней, пробуя всевозможные комбинации, но не могу найти ту, которая работает.

Моя основная потоковая команда:

ffmpeg -f dshow -video_size 720x576 -rtbufsize 702000k -framerate 25 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -threads 4 -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map 0:a:0 -map 0:a:0 http://192.168.1.1/live/channel1/channel1.isml/Streams(video)

Таким образом, -map 0:a:0 -map 0:a:0 дает мне 2 канала одинакового аудио, оба с двумя языками на каждом, я попробовал опцию панорамирования, которая является одной из немногих, которая работает, но не дает мне аудио:

ffmpeg -f dshow -video_size 720x576 -rtbufsize 702000k -framerate 25 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -filter_complex "[0:1]pan=1:c0=c0[left]; [0:1]pan=1:c0=c1[right]" -threads 4 -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map "[left]" -map "[right]" http://192.168.101.10:82/live/channel1/channel1.isml/Streams(video)

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

[Parsed_pan_0 @ 0000000002772ee0] This syntax is deprecated. Use '|' to separate the list items.
Single channel layout '1' is interpreted as a number of channels, switch to the syntax '1c' otherwise it will be interpreted as a channel layout number in a later version

Я обновил свою команду, чтобы использовать | разделитель, без дальнейшего эффекта.

При этом используется Zeranoe ffmpeg для Windows 64bit, версия N-60386-g9c978f2. Видео и аудио предоставляются картой захвата SDI Decklink, а звук находится на канале 1 группы 1.

Любая помощь очень ценится, так как я думаю, что я иду по кругу!

1 ответ1

1

Решил это, разделив аудио-команды -map. Кажется, что ffmpeg не может обработать более одной команды -map для аудио в isml.

ffmpeg -f dshow -video_size 720x576 -rtbufsize 702000k -framerate 25 -i video="Decklink Video Capture":audio="Decklink Audio Capture" -threads 4 -filter_complex "[0:1]pan=1:c0=c0[left]" -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map "[left]" http://192.168.101.10:82/live/channel1/channel1.isml/Streams(video) -threads 4 -filter_complex "[0:1]pan=1:c0=c1[right]" -movflags isml+frag_keyframe -f ismv -map 0:v -b:v:0 1300k -s:v:0 720x576 -map 0:v -b:v:1 900k -s:v:1 640x480 -map 0:v -b:v:2 500k -s:v:2 480x360 -map "[right]" http://192.168.101.10:82/live/channel1/channel1.isml/Streams(video)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .