我想重新编码音频流从mp2到aac从一个udp组播MPEG TS流上另一个。
我有一个udp多播mpeg ts streram与一个视频,3个音频,和一个字幕流在里面。我想将音频流的协议从mp2更改为aac。如果忽略字幕流,一切正常。
ffmpeg -re -i udp://224.2.2.42:1234 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -c:v copy -c:a:0 libfdk_aac -c:a:1 libfdk_aac -c:a:2 libfdk_aac -f mpegts "udp://224.4.0.1:1234?pkt_size=1316"Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (mp2 (native) -> aac (libfdk_aac))
Stream #0:2 -> #0:2 (mp2 (native) -> aac (libfdk_aac))
Stream #0:3 -> #0:3 (mp2 (native) -> aac (libfdk_aac))用阿斯特拉分析,一切都是OK
astra --analyze udp://224.4.0.1:1234
Jan 13 20:07:42: INFO: Bitrate: 6434 Kbit/s
Jan 13 20:07:43: INFO: Bitrate: 5821 Kbit/s
Jan 13 20:07:44: INFO: Bitrate: 3011 Kbit/s
Jan 13 20:07:45: INFO: Bitrate: 3536 Kbit/s
Jan 13 20:07:46: INFO: Bitrate: 1742 Kbit/s
Jan 13 20:07:47: INFO: Bitrate: 4460 Kbit/s
Jan 13 20:07:48: INFO: Bitrate: 3819 Kbit/s
Jan 13 20:07:49: INFO: Bitrate: 5915 Kbit/s
Jan 13 20:07:50: INFO: Bitrate: 4183 Kbit/s但是,如果我包括和字幕流与以下:
/ffmpeg -re -i udp://224.2.2.42:1234 -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 -c:v copy -c:s copy -c:a:0 libfdk_aac -c:a:1 libfdk_aac -c:a:2 libfdk_aac -f mpegts "udp://224.4.0.1:1234?pkt_size=1316"Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (mp2 (native) -> aac (libfdk_aac))
Stream #0:2 -> #0:2 (mp2 (native) -> aac (libfdk_aac))
Stream #0:3 -> #0:3 (mp2 (native) -> aac (libfdk_aac))
Stream #0:4 -> #0:4 (copy)我用阿斯特拉得到了这个--分析udp://224.4.0.1:1234
Jan 13 20:10:36: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:37: INFO: Bitrate: 11763 Kbit/s
Jan 13 20:10:38: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:39: INFO: Bitrate: 9198 Kbit/s
Jan 13 20:10:40: INFO: Bitrate: 1686 Kbit/s
Jan 13 20:10:41: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:42: INFO: Bitrate: 14344 Kbit/s
Jan 13 20:10:43: INFO: Bitrate: 1273 Kbit/s
Jan 13 20:10:44: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:45: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:46: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:47: INFO: Bitrate: 20570 Kbit/s
Jan 13 20:10:48: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:49: INFO: Bitrate: 11492 Kbit/s
Jan 13 20:10:50: INFO: Bitrate: 4231 Kbit/s
Jan 13 20:10:51: INFO: Bitrate: 0 Kbit/s
Jan 13 20:10:52: INFO: Bitrate: 0 Kbit/s有人能解释一下并给我解决办法吗?
我只想将音频流的协议从UDP MPEG TS多播流从mp2更改为aac,并将其流到另一个多播地址,如上面的示例所示。就这样
伊万
发布于 2022-01-18 08:08:25
我找到了解决办法。这对于ffmpeg来说是个严重的问题,一位来自ffmpeg聊天室的好人告诉了我解决方案。众所周知,libavformat等待字幕的时间可能太长了。
这里有一个修补程序:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200311213635.51736-1-rcombs@rcombs.me/
如果没有此修补程序,ffmpeg将在输入流包含的时间段内“吐出”数据包,并在视频/音频轨道中播放字幕跟踪。
这个补丁在中,而不是中,包含在Debian/Ubuntu的ffmpeg预编译包中。您应该应用它并从源代码编译ffmpeg!
https://stackoverflow.com/questions/70701367
复制相似问题