成功在mini2440上移植ffmpeg

2020-05-14来源: eefocus关键字:mini2440  移植  ffmpeg

在mini2440上,整个移植过程分三个步骤:(1)编译x264;(2)编译ffmpeg;(3)移植成功后,进行测试,即使用ffmpeg录像。


(1)编译x264

官网上下了个最新的x264,地址http://www.videolan.org/developers/x264.html。我下载的文件是last_x264.tar.bz2。


解压命令为#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也是,具体如下图所示。

我记得第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,解压之后执行下面命令:

./configure --cross-prefix=arm-linux- --enable-cross-compile --target-os=linux --cc=arm-linux-gcc --arch=arm --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
这里没有使用ffplay,需要的可以自己加上,参考http://blog.csdn.net/liaozc/article/details/6025610中说要用到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/目录下。这个我们用普通的播放器就可以观看。

关键字:mini2440  移植  ffmpeg 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic497150.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
下一篇:一起学mini2440裸机开发(三)--S3C2440时钟学习

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

mini2440裸机试炼之——Uart与pc端实现文件、字符传输
:rULCON0|=0x03;              //设置UART0数据发送8个数据位赵老师的一段话(关于中断的,作为笔记):最后还要强调几点关于非FIFO模式下UART中断的一些注意事项:1.对于s3c2440来说,接收数据是被动的,发送数据是主动的,因此一般来说,接收数据用中断方式,发送数据用查询方式较好;2. 在中断方式下,当接收到数据时,尽管可能该数据无用,但也一定要读取它,否则下次再接收数据时,不会再引起中断,因为接收数据缓存器被上次接收到的数据所霸占,只要没有读取它,它就永远在那里;3. 由于UART中断涉及到SUBSRCPND寄存器,因此在
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——Uart与pc端实现文件、字符传输
mini2440裸机试炼之IIS——音乐播放器
; Port_Init();    MMU_Init(); //地址映射初始化    Beep(2000, 100);       music_player();}music_player.c/*********************************** 实现功能     music播放器  ***********************************/ #include "2440lib.h"#include "2440
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之IIS——音乐播放器
mini2440裸机试炼之——IIC控制EEPROM数据传输
,AT24C02A会再返回一个从设备地址信息或从设备内存地址信息作为应答,所以一定要把该字节读取后抛弃,因为它不是我们所要读取的信息;4、按照AT24C02A的时序,在发送从设备地址字节时,它的最低位是0表示写,1表示读。但对于s3c2440来说,不用人为设置这一位,即是0是1都无所谓,因为这一位是由s3c2440根据是主设备发送模式还是主设备接收模式来自动设置。(所以都默认使用0xa0);EEPROM介绍AT24CXX系列是带有iic总线接口的EEPROM,其中主要包括AT24C01/02/08/16等,其容量(bits x页)分别为128 x 8/256x 8/1024 x 8/2048 x 8/;对于AT24C02A的三位地址线都是
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——IIC控制EEPROM数据传输
mini2440裸机试炼之——看门狗中断和复位操作
结果:AXD调试执行到看门狗计数器rWTCNT为零时,进入复位,CPU停止工作,也就不产生中断。复位关闭axd后,u-boot串口初始化提示(没能及时在第一次蜂鸣器响按下按键停止autoboot):复位关闭axd后,u-boot串口初始化提示(及时在第一次蜂鸣器响按下按键停止autoboot):这里就是复位到用uboot初始化开发板的时候,可是不明确为什么必需要在第一次蜂鸣器就按下按键才干进到uboot附:硬件环境:J-link v8、mini2440、J-link转接板、串口转USB线软件环境:windows7(32位)、开发板uboot(NandFlash)、J-link驱动(J-Link ARM V4.10i)、SecureCRT
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——看门狗中断和复位操作
arm-linux-gcc 裸机程序开发(一)
以前开发arm裸机程序都是在ADS1.2开发环境下编译和调试的。刚开始时初学嵌入式好多东西不懂,选择这个开发环境的理由,一是资料多的,mini2440开发板上提供了很多例程可以参考,网上几乎所有arm裸机程序都是基于ADS1.2开发的。二是开发环境友善,虽然后来感觉ADS1.2有点难用,但毕竟是IDE的环境,对初学者来说总比命令行的方式更加直观与方便。随着学习的深入,感觉它就像傻瓜相机一样,虽然好用但屏蔽了很多内容,影响了我们深入理解代码编译以及链接的细节。而且ADS对于程序的开发没有GNU工具链灵活。这段时间因为需要,又要编写一些arm裸机程序。自己已经用Linux习惯了,不想再切回windows下工作了。所以,最近对linux
发表于 2020-07-04
mini2440开发板建立Keil MDK/Jlink开发调试环境
新建Keil工程,device选择三星的s3c2440。询问”是否将启动代码拷贝到工程目录”,选择是。在工程配置的Target标签页中做如下配置:确定后编写主函数并编译工程。假如没有错误,打开工程目录下的”工程名.sct”文件,就会发现ROM1的0×30000000就是程序的入口地址,对应启动代码中的”RESET”。安装Jlink驱动后,在Keil的debug标签中选择”J-link/J-Trace”作为调试工具。在Initialization File文本框中选择调试的初始化文件。打开初始化文件,将文件最后的”LOAD .XXX.axf”,中的XXX替换为自己工程目录下的axf文件名。在Utilities标签页中,选择J
发表于 2020-07-02
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved