调用avformat_write_header函数后如何添加新的流?

时间:2019-02-26 12:05:25

标签: c++ ffmpeg video-streaming libav libavformat

我有几个产生视频帧的视频源。每个视频源应表示为输出视频文件(mp4或mpegts)中的单独视频流。 问题是我应该指定流的确切数目并在调用avformat_write_header函数之前创建它们。如果以后尝试添加流,我将在av_interleaved_write_frame内崩溃。有什么办法可以即时添加流?也许我应该指定一些混合器选项?预先感谢您的回答。

1 个答案:

答案 0 :(得分:2)

否,写入标头后无法添加新的流。 libavformat检查要写入的传入数据包是否具有[0,nb_streams-1]以外的流索引,如果存在则失败。

可以制作类似MPEG-TS的容器来合并新的流,但是ffmpeg不支持。