成功在mini2440上移植ffmpeg
2015-05-07 16:44
405 查看
2013-03-14 16:22 2218人阅读 评论(3) 收藏 举报
/article/2707916.html
在mini2440上,整个移植过程分三个步骤:(1)编译x264;(2)编译ffmpeg;(3)移植成功后,进行测试,即使用ffmpeg录像。
(1)编译x264
官网上下了个最新的x264,地址http://www.videolan.org/developers/x264.html。我下载的文件是last_x264.tar.bz2。
120版本地址
http://pan.baidu.com/s/1jG81TSq
解压命令为#tar -jxv -f last_x264.tar.bz2,解压后的目录为x264-snapshot-20130313-2245。
进入解压后的目录,执行命令./configure --disable-asm,则会生成config.mak。之后就需要修改这个config.mak文件了,改写ARCH=ARM SYS=LINUX CC=arm-linux-gcc,其中CC写成你自己的交叉编译环境位置,相应的AR、RANLIB也是,具体如下图所示。
(注意:如果不进行如下面所示的修改,编译的就是x86的264环境
/article/10839934.html
)
我记得第10行和第11好像删除了-m32这个选项,如果后面执行make没有出错的话,可以不用管这个了。
然后执行make
再执行make install,因此x264已经编译成功了。在/usr/local/include/目录下会有个x264.h头文件,在/usr/local/lib/目录下会有个libx264.a的库文件。
(2)编译ffmpeg
官网上下载FFmpeg 0.8.14,地址:http://ffmpeg.org/download.html,解压之后tar xzvf
1.0版本下载地址
http://pan.baidu.com/s/1nt8vNfz
配置编译
(2.1) for x86
#./configure --prefix=/usr/local/ffmpeg/
它会依懒于yasm 一些模块,可以下载yasm-1.2.0.tar.gz,下载地址
http://pan.baidu.com/s/1hqmlu7q
解压后直接./configure make和make install
(2.2)for arm
执行下面命令:
./configure --cross-prefix=arm-linux- --enable-cross-compile --target-os=linux --cc=arm-linux-gcc --arch=arm --prefix=/usr/local/arm_ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver
--enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-yasm --disable-stripping
这里没有使用ffplay,需要的可以自己加上,参考/article/8793918.html中说要用到SDL库,可以试试。在--cc --prefix根据自己的目录修改,然后就是make
和 make install ,之后在--prefix下找到自己要用到的lib include文件夹。
注意:【1】在上面这条很长的configure命令执行后,会有一个警告warning,说找不到一个arm-linux-ptkconfig,什么faile之类的提示信息。我没有截图,大概是这样的警告信息,这个可以不用管它。我换了好几个文件,重新上面的步骤,都会出现这个警告,在这里浪费了很多时间。
【2】执行make这个过程耗时很久,这个需要耐心。
【3】执行make install后,在/usr/local/下会生成一个ffmpeg文件夹,如下图所示。
(3)移植成功后,进行测试,即使用ffmpeg录像
注:因为我的mini2440开发板剩余空间不够,所示我是用nfs启动开发板,如果空间够用的话,直接把库文件放到板子里也是一样的。
将上图/usr/local/ffmpeg/lib文件下后缀名为.so和.so.*这两种库文件复制到开发板中(如果缺某个库的话,在后面执行./ffmpeg是会报错,说找不到)
上图红框中只是一部分库文件,他们都是成对出现,只是后缀名不一样。
因为开发板里面没有ffmpeg这条命令,需要把/usr/local/ffmpeg/bin/目录下的ffmp可执行文件拷贝到开发板上,然后增加其可执行权限(chmod +x ffmpeg)
然后再执行命令:#./ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 /mnt/test.avi,执行过程如下图所示:
这个录像过程输入q,即可停止录像。生成的test.avi文件在/mnt/目录下。这个我们用普通的播放器就可以观看。
ffmpeg编译x86环境
./configure --target-os=linux --cc=gcc --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2
--disable-yasm --disable-stripping
/article/2707916.html
在mini2440上,整个移植过程分三个步骤:(1)编译x264;(2)编译ffmpeg;(3)移植成功后,进行测试,即使用ffmpeg录像。
(1)编译x264
官网上下了个最新的x264,地址http://www.videolan.org/developers/x264.html。我下载的文件是last_x264.tar.bz2。
120版本地址
http://pan.baidu.com/s/1jG81TSq
解压命令为#tar -jxv -f last_x264.tar.bz2,解压后的目录为x264-snapshot-20130313-2245。
进入解压后的目录,执行命令./configure --disable-asm,则会生成config.mak。之后就需要修改这个config.mak文件了,改写ARCH=ARM SYS=LINUX CC=arm-linux-gcc,其中CC写成你自己的交叉编译环境位置,相应的AR、RANLIB也是,具体如下图所示。
(注意:如果不进行如下面所示的修改,编译的就是x86的264环境
/article/10839934.html
)
我记得第10行和第11好像删除了-m32这个选项,如果后面执行make没有出错的话,可以不用管这个了。
然后执行make
再执行make install,因此x264已经编译成功了。在/usr/local/include/目录下会有个x264.h头文件,在/usr/local/lib/目录下会有个libx264.a的库文件。
(2)编译ffmpeg
官网上下载FFmpeg 0.8.14,地址:http://ffmpeg.org/download.html,解压之后tar xzvf
1.0版本下载地址
http://pan.baidu.com/s/1nt8vNfz
配置编译
(2.1) for x86
#./configure --prefix=/usr/local/ffmpeg/
它会依懒于yasm 一些模块,可以下载yasm-1.2.0.tar.gz,下载地址
http://pan.baidu.com/s/1hqmlu7q
解压后直接./configure make和make install
(2.2)for arm
执行下面命令:
./configure --cross-prefix=arm-linux- --enable-cross-compile --target-os=linux --cc=arm-linux-gcc --arch=arm --prefix=/usr/local/arm_ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver
--enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-yasm --disable-stripping
这里没有使用ffplay,需要的可以自己加上,参考/article/8793918.html中说要用到SDL库,可以试试。在--cc --prefix根据自己的目录修改,然后就是make
和 make install ,之后在--prefix下找到自己要用到的lib include文件夹。
注意:【1】在上面这条很长的configure命令执行后,会有一个警告warning,说找不到一个arm-linux-ptkconfig,什么faile之类的提示信息。我没有截图,大概是这样的警告信息,这个可以不用管它。我换了好几个文件,重新上面的步骤,都会出现这个警告,在这里浪费了很多时间。
【2】执行make这个过程耗时很久,这个需要耐心。
【3】执行make install后,在/usr/local/下会生成一个ffmpeg文件夹,如下图所示。
(3)移植成功后,进行测试,即使用ffmpeg录像
注:因为我的mini2440开发板剩余空间不够,所示我是用nfs启动开发板,如果空间够用的话,直接把库文件放到板子里也是一样的。
将上图/usr/local/ffmpeg/lib文件下后缀名为.so和.so.*这两种库文件复制到开发板中(如果缺某个库的话,在后面执行./ffmpeg是会报错,说找不到)
上图红框中只是一部分库文件,他们都是成对出现,只是后缀名不一样。
因为开发板里面没有ffmpeg这条命令,需要把/usr/local/ffmpeg/bin/目录下的ffmp可执行文件拷贝到开发板上,然后增加其可执行权限(chmod +x ffmpeg)
然后再执行命令:#./ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 /mnt/test.avi,执行过程如下图所示:
这个录像过程输入q,即可停止录像。生成的test.avi文件在/mnt/目录下。这个我们用普通的播放器就可以观看。
ffmpeg编译x86环境
./configure --target-os=linux --cc=gcc --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-armv5te --disable-armv6 --disable-armv6t2
--disable-yasm --disable-stripping
相关文章推荐
- 成功在mini2440上移植ffmpeg
- 成功在mini2440上移植ffmpeg
- 成功在mini2440上移植ffmpeg ----fwqlzz love is for ever
- MAC系统下编译FFmpeg-Android (从编译到移植Androidstudio成功)(一)
- uboot-2009.03成功移植到mini2440
- uboot-2009.03成功移植到mini2440
- 成功在Tiny 4412 开发板上 移植 ffmpeg,搞定了手册上USB摄像头不能摄像录制功能!!!
- Linux-world-2012-January->16(mini2440 uboot201103 系统移植)->3(成功修正 machine ID problem!)-3
- uboot-2009.03成功移植到mini2440
- ffmpeg移植到mini2440
- 在mini2440上的移植sqlite3(成功)
- FFmpeg移植到mini2440
- 交叉移植tesseract过程记述以及总结(在mini2440开发板上运行成功)
- 成功在Tiny6410上移植ffmpeg
- 成功移植mplayer到mini2440
- opencv3.2(with ffmpeg) 交叉编译移植到arm板(imx6),成功跑起来。
- 成功移植DHCP客户端到mini2440,已OK!
- 编译支持x264 编码的ffmpeg并成功移植到docker
- 成功移植DHCP客户端到mini2440,终于可以上网了
- mini2440下移植USB Wi-Fi模块成功