FFmpeg AVStream::codec被声明为已否决

简介:
场景说明
            当前使用FFmpeg3.4版本的开发库,编译过程中出现:'AVStream::codec': 被声明为已否决的异常错误,并且提示:Using AVStream.codec … deprecated, use AVStream.codecpar instead。从提示可以看出,需要使用AVStream.codecpar替代AVStream.codec,前者类型是AVCodecParameters,后者的类型是AVCodecContext.

历史说明
            旧版本使用AVStream.codec是因为在打开码流(avformat_open_input),探测视频数据(avformat_find_stream_info)的时候,很容易获取源视频的一些信息,然后在解码的时候直接打开解码器,开始解码

网上方案
    将VS的SDL检查关闭

原因分析
            新版本的FFmpeg中AVStream的codec成员不再推荐使用,而是要求使用codecpar。FFmpeg中所谓的“被声明为已否决”就是因为函数或者结构体属性被标示为attribute_deprecated,很有可能在未来的版本中就删除了。
所以我们最好的解决方案就是使用新的被推荐使用的函数、结构体等。在后续中因为要解决avformat_find_stream_info探测流慢的问题,会针对codecpar进行相应的赋值


FFmpeg3.x版本之前的代码
pAVCodecContext = pAVFormatContext->streams[videoIndex]->codec;

FFmpeg3.x最佳解决方案
    pAVCodecContext = avcodec_alloc_context3(NULL);  
    if (pAVCodecContext == NULL)  
    {  
        printf("Could not allocate AVCodecContext\n");  
        return -1;  
    }  
    avcodec_parameters_to_context(pAVCodecContext, pAVFormatContext->streams[videoIndex]->codecpar);  

 

参考

http://blog.csdn.net/luotuo44/article/details/54981809




     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1983001,如需转载请自行联系原作者


相关文章
VS使用FFmpeg被声明为已否决的解决方案
VS使用FFmpeg被声明为已否决的解决方案
|
3月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
72 0
|
7月前
|
C++ Windows
FFmpeg入门及编译 3
FFmpeg入门及编译
52 0
|
7月前
|
编解码 API 开发工具
FFmpeg入门及编译 1
FFmpeg入门及编译
97 0
|
15天前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)
12 0
|
7月前
|
API C语言 C++
FFmpeg入门及编译 2
FFmpeg入门及编译
80 0
|
3月前
|
编解码 Ubuntu C++
WebAssembly01--web 编译FFmpeg(WebAssembly版)库
WebAssembly01--web 编译FFmpeg(WebAssembly版)库
20 0
|
3月前
|
存储 Ubuntu 开发工具
ffmpeg笔记(二)windows下和ubuntu-16.04下ffmpeg编译
ffmpeg笔记(二)windows下和ubuntu-16.04下ffmpeg编译
|
4月前
ffmpeg的下载、编译与安装
ffmpeg的下载、编译与安装
97 0
|
6月前
|
编译器 计算机视觉
[笔记]OpenCV+FFmpeg+Qt实现视频编辑器之OpenCV vs2015编译
[笔记]OpenCV+FFmpeg+Qt实现视频编辑器之OpenCV vs2015编译