0、为什么要在vs中编译ffmpeg.c
用ffmpeg有很多的用途,比如可以用来转码,也可以用来解码,光是通过上一章的博文,得到几个对应的dll,其实作用并不大,你可以通过在vs中编译ffmpeg.c来看看,是如何使用这些dll的,当然,也可以通过编译ffplay.c来看看一个播放器是如何做成的
1、先把ffmpeg.c加入在vs中
2、修改ffmpeg.c
注释掉40行,然后把对应的头文件拷过来
因为我是通过mingw来编译的,所以在当时生成出来dll的时候,也顺便把头文件给拷贝出来了,所以这里可以直接放到vs的这个工程中:
然后在工程设置中,给他包含进来
还缺少的头文件,可以去ffmpeg的源代码里面搜索:
3、解决一些别的问题
提示“error C2054: 在“inline”之后应输入“(””这个错误的,全都去掉incline即可
在刚才加入的config.h文件的最前面加入:
这样就解决了下面的问题
100行的HAVE_STRUCT_POLLFD修改成POLLIN
4、在继续添加需要的文件
其实是这个错:
把所有用到这个宏的地方都修改成:
AVRationalr= {1,AV_TIME_BASE };
用r这个变量来替代这个宏
使用_read,凡是提示这样的错误,都是这么解决
遇到这个错误:
用以下语句替换:
char error_[1024];
av_make_error_string(error_,1024,ret);
error_
这个语句
用以下语句替换:
AVRationalr2= {1,1000 };
还需要改这里:
1874行还需要修改这里:
3226添加下面几行
第一个if(debug_ts){}应该这么样修改:
最后一个if(debug_ts){}应该这么样修改: