我有一个RTSP流与一个视频流和三个音频流作为来源。两个音频流用.mp2
编码,一个用.ac-3
编码。我想将.mp2
流转换为AAC。如果每次启动ffmpeg时,.mp2
流具有相同的流标识符,这将很容易,但不幸的是,流标识符会发生变化。这意味着有时两个.mp2
流是0:a:0和0:a:1,下一次它们是0:a:1和0:a:2。
是否有选项只重新编码.mp2
流并保持.ac-3
流不受影响?
我还应该提到,这种编码是用于直播电视的,因此不能选择生成中间文件或有几个ffmpeg命令。
发布于 2022-04-20 14:53:23
试一试
ffprobe -show_entries stream_tags -select_streams a INPUT_URL
并查看是否存在区分mp2流的流标记(元数据)。然后可以使用元数据流说明符选择性地设置重新编码:
ffmpeg ... -c copy -c:a:m:{name}:{value} ac3 ...
其中{name}
和{value}
分别是标记的名称和值。
关于流说明符的参考:https://ffmpeg.org/ffmpeg.html#Stream-specifiers-1
如果没有任何可用的标记,那么您唯一的解决方案可能是在运行ffprobe
之前先运行ffmpeg
来标识流#。
https://stackoverflow.com/questions/71937124
复制相似问题