【问题标题】:How to add a new stream after avformat_write_header function is called?调用 avformat_write_header 函数后如何添加新流?
【发布时间】:2019-02-26 12:05:25
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 2012-06-26
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多