参考官方说明文档:https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuideLucid--(1)和网友博客基于v4l2的webcam应用, 本地预监(编译过程)--(2),在ubuntu10.04上搭建ffmpeg开发环境并编译运行网友sunkwei的代码成功基于v4l2的webcam应用, 本地预监--(3)。
一.参照(1)依次安装Yasm,x.264,Lame,libvpx;
二.参照(2)安装ffmpeg,libavcodec-dev,libswscale-dev,libx264-dev;
三.参照(2)修改/usr/include/libavutil/common.h, 添加如下内容。
#ifndef UINT64_C
#define UINT64_C(value)__CONCAT(value,ULL)
#endif
四.修改sunkwei源码文件shower.cpp中大概67-70行,屏蔽掉原来的四行代码,再添加一行代码如下所示:
int got; //从此处往下修改
//屏蔽本行 AVPacket pkt;
//屏蔽本行 pkt.data = buf;
//屏蔽本行 pkt.size = rc;
//屏蔽本行 int ret = avcodec_decode_video2(dec, frame, &got, &pkt);
int ret = avcodec_decode_video(dec,frame,&got,buf,rc);
//修改到此行,下边代码不动
if (ret > 0 && got) {
修改的原因是因为ffmpeg版本不一样,我用apt-get install libavcodec-dev安装的库版本比源代码作者所用的低,我的库里没有这个函数avccodec_decode_video2,只有avccodec_decode_video。
另外,也可以按照ffmpeg官方说明安装最新的ffmpeg及其库,但是注意配置参数一定要加上--enable shared。
修改完成后进入源码目录,make一下,可以看到顺利编译出了结果。运行一下,看看效果。
下边开始研究源码及实现过程。