基于FFMPEG API开发RTMP推流器(二)

本文详细介绍了如何将基于FFMPEG 2.3.6的RTMP推流器更新到4.0.2版本,包括解决av_register_all(), AVStream::codec, avcodec_copy_context和av_free_packet等被声明为已否决的问题,并提供了修改后的代码运行情况。" 132931396,20015610,分布式令牌桶限流与兜底策略实战,"['分布式系统', '限流算法', '系统架构', '稳定性设计', '流量控制']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文将在《基于FFMPEG API开发RTMP推流器》的基础上介绍如何将StreamPusher的FFMPEG版本如何从2.3.6升级到4.0.2

  • 添加命名空间
using namespace std;

防止编译可以通过,但IDE总是报有些变量找不到(红色波浪线那种)。

正题

上节我们为了能正常编译运行,暂时先把sdl给关掉了,这次我们将它打开,再次编译,看都会报哪些错误:
如下图
图1
接下来我们一个个的分析修改

‘av_register_all’: 被声明为已否决

其实就是av_register_all()这个方法在FFMPEG 4.0以后将不再推荐使用,而且是非必需的,因此直接注释掉即可。

‘AVStream::codec’: 被声明为已否决

AVStream的codec成员从3.3版本及以后不再推荐使用,推荐使用codecpar,主要原因是解决编码与流封包数据结构耦合性太高。我们可以做如下处理:

for(i=0; i<ifmt_ctx->nb_streams; i++) 
    if(ifmt_ctx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO){
        videoindex=i;
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值