ffmpeg经验分享第一课 - 对于x264以及ffmpeg的源码下载,PC端以及ARM端的编译,以及在Qt中引用

来源:互联网 发布:路歌管车宝软件下载 编辑:程序博客网 时间:2024/05/04 13:35

最近要做一个小项目,有这么几个内容

1、可以连接摄像头

2、可以实时显示摄像头内容到LCD上面

3、可以在实时显示摄像头内容的时候,进行录像保存到SD卡里面

4、可以通过WIFI传输摄像头内容,在PC端上面同样实现以上三点内容


思来想去,只能上linux操作系统了,于是选定了我之前使用的A20开发板,双核的,做起来应该轻松点。软件的话,使用Qt,外加ffmpeg来实现。由于对ffmpeg不熟悉,查阅了很多资料,发现对于ffmpeg的介绍好像只有1篇国外的教程,加一份国内的教程。于是,诞生了自己写一份相关教程的想法,如果我能坚持下去的话。所以就是这篇课程的诞生了。废话不多说,下面开始第一个内容,ffmpeg的PC端编译、ARM端的交叉编译,以及在Qt里面的导入


X264的编译

1、X264的PC端编译

我暂时还不知道为什么要编译X264,但是因为看到的各个文档里面都提到这个,应该是ffmpeg内部没有X264的编解码的方法吧,所以需要先单独的编译这个外部的库。

X264的最新下载地址是ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2

你在自己的ubuntu里面下载解压缩之后,进到对应的目录里面,然后新建一个build-pc文件,内容填入如下

./configure --disable-asm --enable-shared --prefix=/opt/x264-2245

特别注意:--prefix=/xxx这个等于号后面得是make install的安装路径,你可以根据自己的需要来。如果像我这样是根目录的话,就需要先sudo su成root,之后才能安装。有的时候切换成root后,你的arm-linux-gcc就会消失,请注意。

那么,配置完成之后,先make,然后再make install就可以成功了。


2、X264的ARM端编译

新建一个build-arm,然后再里面填入如下内容

./configure --disable-asm --enable-shared --prefix=/opt/x264-2245-arm --host=arm-linux

注意:这里增加了一个--host表示这个是ARM平台,然后--prefix指定的是一个新的路径

在./build-arm执行完成之后,我们需要修改config.mak这么一个文件,要把里面的gcc对应的内容改成arm-linux-gcc,然后一些其他的工具也要修改成arm-linux-开头的,截图如下


这样修改完成之后,就可以按照之前的顺序来make 和make install了。之后,会在你指定的目录下面生成所需要的PC端和ARM端所需要的库文件和头文件以及可执行文件



ffmpeg的编译

1、ffmpeg的下载

我编译过多个版本的,是为了使用一些之前的能找到的例子,因为ffmpeg的代码API更新太快,总有不兼容。后来,还是回到使用当前的最新版本2.6.2版本,下载链接如下

http://ffmpeg.org/releases/ffmpeg-2.6.2.tar.bz2

自行解压缩到对应的ubuntu目录里面,具体操作指令是tar xjvf  xxxxx


2、ffmpeg的pc端的编译脚本

./configure --prefix=/opt/ffmpeg2.6.2-pc --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --enable-ffplay --enable-ffserver --enable-swscale --enable-pthreads  --disable-yasm --disable-stripping --enable-libx264 --extra-cflags=-I/opt/x264-2245/include --extra-ldflags=-L/opt/x264-2245/lib

讲解: --prefix是指定我们的pc版本的ffmpeg安装路径

-extra-cflags和-extra-ldflags是指定之前安装的pc版本的x264的库头文件路径

之后执行这个脚本,然后再make, make install就可以了。记得,在make install之前先sudo su成root用户才能完成安装


3、ffmpeg的arm端的编译脚本

在装完pc之后,先把ffmpeg源代码make clean一下,保证干净,然后新建个arm的脚本,填入如下内容

./configure --cross-prefix=arm-linux- --enable-cross-compile --target-os=linux --cc=arm-linux-gcc --arch=arm --prefix=/opt/ffmpeg2.6.2-arm --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads  --disable-yasm --disable-stripping --enable-libx264 --extra-cflags=-I/opt/x264-2245-arm/include --extra-ldflags=-L/opt/x264-2245-arm/lib

这里就是加入之前的一些arm对应的x264的库路径,然后执行这个脚本,再make 和make install


总结:这篇编译流程,我是花了好久,写了很多测试的ffmpeg例子之后,才完结掉的,就是为了保证正确性。

补充:如果有的朋友发现编译不正常,那么,最好是选择我文中的这2份源代码,再去编译,应该就能成功的。希望能够帮到你!




0 0
原创粉丝点击