本文将在《基于FFMPEG API开发RTMP推流器》的基础上介绍如何将StreamPusher的FFMPEG版本如何从2.3.6升级到4.0.2
- 添加命名空间
using namespace std;
防止编译可以通过,但IDE总是报有些变量找不到(红色波浪线那种)。
正题
上节我们为了能正常编译运行,暂时先把sdl给关掉了,这次我们将它打开,再次编译,看都会报哪些错误:
如下图
接下来我们一个个的分析修改
‘av_register_all’: 被声明为已否决
其实就是av_register_all()这个方法在FFMPEG 4.0以后将不再推荐使用,而且是非必需的,因此直接注释掉即可。
‘AVStream::codec’: 被声明为已否决
AVStream的codec成员从3.3版本及以后不再推荐使用,推荐使用codecpar,主要原因是解决编码与流封包数据结构耦合性太高。我们可以做如下处理:
for(i=0; i<ifmt_ctx->nb_stream