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份源代码,再去编译,应该就能成功的。希望能够帮到你!
- ffmpeg经验分享第一课 - 对于x264以及ffmpeg的源码下载,PC端以及ARM端的编译,以及在Qt中引用
- ffmpeg在windows的编译以及测试
- android 下编译x264 以及ffmpeg
- 关于ffmpeg编译以及运行的问题
- FFmpeg编译以及学习
- FFMPEG编译使用以及FFMPEG在编码转换方面的应用
- ffmepg以及x264的编译
- Qt for IOS环境的搭建以及ffmpeg库的编译与移植
- vc2005编译ffmpeg以及ffplay
- vc2005编译ffmpeg以及ffplay
- Linux下安装FFMPEG 编译 以及基本的Demo开发
- 编译ffmpeg文件遇到的问题以及解决方法
- ffmpeg编译 (3.3版本) 以及 命令行工具的集成
- linux下编译ffmpeg ,以及x.264在linux下运行的配置
- ffmpeg在linux下编译时遇到的错误,以及修正方法
- ffmpeg 在arm下的移植编译
- FFMpeg 中比较重要的函数以及数据结构
- FFMpeg 中比较重要的函数以及数据结构
- Boost库简介
- 一种极快速去模糊效应图像细节增强及其应用
- 文章标题
- sqlyog导入导出数据库出错解决方案
- LeetCode 9 Palindrome Number
- ffmpeg经验分享第一课 - 对于x264以及ffmpeg的源码下载,PC端以及ARM端的编译,以及在Qt中引用
- imageview设置图片二边总有空白
- 利用GoogleEarth影像制作Skyline MPT案例
- openstack学习笔记 --- flavors && quotas
- 手机抓包工具Charles(花瓶)的用法
- Stanford机器学习---第一讲. Linear Regression with one variable
- 谈谈快速非局部去噪算法
- RST Methodology: “Responsible Tester”
- 关于c语言中的return问题