我正在尝试使用 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 个相同音频通道,每个通道都包含两种语言,我尝试了 pan 选项,这是唯一有效的选项之一,但没有音频:
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
我已更新我的命令以使用 | 分隔符,但没有进一步的效果。
这是使用适用于 Windows 64 位的 Zeranoe ffmpeg,版本 N-60386-g9c978f2,视频和音频由 Decklink SDI 采集卡提供,音频位于第 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)