FFmpeg拉流推流时,各结构体创建、释放方式

1. 前言

在这里记录下FFmpeg各主要结构体创建、释放的方式

2. 取流参数AVDictionary

创建:

AVDictionary* opts = NULL;

配置:(官方参数列表

av_dict_set(&opts, "rtsp_transport", "tcp", 0);

释放:

av_dict_free(&opts);

3.  媒体流AVFormatContext

创建:

AVFormatContext* ictx = NULL;

释放:

avformat_close_input(&ictx);

4. 压缩视频帧AVPacket

创建:

AVPacket* pkt = av_packet_alloc();

释放:

av_packet_unref(pkt); // 不要忘记减少引用技术
av_packet_free(&pkt);

5. 编码器AVCodec

创建:

AVCodec* codec = avcodec_find_encoder(AV_CODEC_ID_H264);

释放:

编码器不需要单独释放,输出流结构体AVCodecContext释放的时候,会顺便释放编码器

6. 输出流结构体AVCodecContext

创建:

AVCodecContext* output = avcodec_alloc_context3(codec);

释放:

av_write_trailer(output);//写文件尾
avio_close(output->pb);
avformat_free_context(output);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值