4、封装

    Muxers (封装器)以 AVPacket 的形式获取编码数据并将其写入到指定容器格式的文件或输出字节流中。

    muxing过程中最重要的API函数有:

        avformat_write_header() 用于写入文件header;

        av_write_frame() / av_interleaved_write_frame() 用于写入packets;

        av_write_trailer() 用于结束文件输出。

    muxing 流程的第一步:调用者必须调用 avformat_alloc_context() 来创建一个 muxing context。然后去设置 context 的各个字段,以便对输出做相关设置:

    AVFormatContext.oformat 必须被设置,它指定我们要使用的封装格式。

    除非指定的 format 是 AVFMT_NOFILE 类型,否则AVFormatContext.pb也必须设置,它是一个打开的 I/O context,可以由 avio_open2() 打开或者由用户自定义。

    除非指定的 format 是 AVFMT_NOSTREAMS 类型,否则至少要设置一个 stream。stream 由函数 avformat_new_stream() 创建。调用者应该填充 AVStream.codecpar(stream codec parameters)字段信息,用于指定 codec 相关的信息:AVCodecParameters.codec_type 指定编解码器类别ÿ

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。