avformat_new_stream函数用法如下:
int n = ofmt_ctx_v->nb_streams; // 1
out_stream=avformat_new_stream(ofmt_ctx_v, in_stream->codec->codec);
n = ofmt_ctx_v->nb_streams; // 2
out_stream=avformat_new_stream(ofmt_ctx_v, in_stream->codec->codec);
n = ofmt_ctx_v->nb_streams; // 2
out_stream1=avformat_new_stream(ofmt_ctx_v, in_stream->codec->codec);
n = ofmt_ctx_v->nb_streams; // 3
n = ofmt_ctx_v->nb_streams; // 3
其中ofmt_ctx_v是通过avformat_open_input或者avformat_alloc_output_context2函数生成的指向AVFormatContext类型的对象,in_stream->codec->codec为指向AVCodec类型的对象。
avformat_new_stream函数是构造一个AVStream对象,如果构造成功,则构造成的AVStream对象也是参数1即AVFormatContext对象中的stream成员(该成员是一个指向指针的数组)中的一个元素。在上面代码中,在未调用avformat_new_stream函数之前,即1处n值为0;调用一次avformat_new_stream函数函数后,即2处n值为1,此时ofmt_ctx_v->streams[0]即为out_stream; 第二次调用avformat_new_stream函数后,即3处n值为2,此时ofmt_ctx_v->streams[1]即为out_stream1
本文详细介绍了FFmpeg库中avformat_new_stream函数的使用方法,通过实例展示了如何创建AVStream对象,并解释了在调用该函数前后AVFormatContext对象的stream数组变化,帮助理解多媒体处理中的流管理。

1145

被折叠的 条评论
为什么被折叠?



