移植 ffmpeg 到 ARM 平台
2009-06-30 18:13
411 查看
一、下载yasm: 到 http://www.tortall.net/projects/yasm/wiki/Download 下载yasm0.7.2(x264需要用到的汇编编译器) for x86: ./configure --enable-shared --prefix=/usr/local make make install for arm: ./configure --enable-shared --prefix=/usr/local/ --host=arm-linux make make install 下载安装x264 到 ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ 下载x264库 for x86: ./configure --enable-shared --prefix=/usr/local make make install for arm: ./configure --enable-shared 修改config.mak文件,将其中的CC=gcc,AS=yasm修改成CC=arm-linux-gcc,AS=arm-linux-as。—>make。之后便生成了可执行文件X264。 这里会出错,解决办法:将解压文件夹下的common文件夹下的cpu.c中的#elif defined(SYS_LINUX) unsigned int bit; int np; cpu_set_t p_aff; memset( &p_aff, 0, sizeof(p_aff) );sched_getaffinity( 0, sizeof(p_aff), &p_aff );for( np = 0;bit = 0; bit < sizeof(p_aff); bit++ );np += (((uint8_t *)&p_aff)[bit / 8] >> (bit % 8)) & 1;return np; 改成了:#elif defined(SYS_LINUX) return 1 ; 二、下载安装xvid库 到 http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz 下载xvid for x86: cd build/generic ./configure --prefix=/usr/local make make install for arm: #./configure --prefix=/usr/local/ --host=arm-linux --target=arm-linux ./configure --prefix=/usr/local/ --host=arm-hismall-linux --target=arm-hismall-linux make make install 三、下载ffmpeg http://download.chinaunix.net/download.php?id=5532&ResourceID=2990在这个网址上下载了ffmpeg-0.4.9-p20051120.tar.bz2,然后解压。 (1)修改configure文件,要修改的如下 prefix="/usr/local/ffmpeg-arm" cross_prefix="/usr/local/arm/3.3.2/bin/" cc="arm-linux-gcc" ar="arm-linux-ar" ranlib="arm-linux-ranlib" strip="arm-linux-strip" cpu="armv41" 由于cc、ar、ranlib、strip都是交叉编译环境中的执行文件,也可以这样配置 prefix="/usr/local/ffmpeg-arm" cross_prefix="/usr/local/arm/3.3.2/bin/arm-linux-" cpu="armv41" (2)执行 ./configure --enable-shared --disable-strip 说明:如果不加--disable-strip,那么在编译之后,动态链接库会有问题。在运行程序链接该三个链接库的时候,会出现"skippingincompatible"错误。我猜想是在安装动态库之前,利用了strip对其进行了处理,而不是调用arm-linux-strip,所以造成了动态库的损坏。(比如gcc编译得到的动态库,利用arm-linux-gcc去链接该动态库,当然会出现"skippingincompatible"错误)。 (3)编译并安装 make make install 安装完成后,在/usr/local/ffmpeg-arm文件下有三个文件夹,分别为头文件夹include、动态库文件夹lib和执行文件夹bin。 由于是利用动态链接库,bin目录下的执行文件需要lib下的动态库的支持。在实验箱上运行ffmpeg,必须把lib下的动态库烧写到/usr/lib或者/lib目录下。 (4)测试 把include文件夹下的ffmpeg文件夹复制到/usr/local/arm/3.3.2/include目录下。那么在测试程序中的包含文件可以这样写#include<ffmpeg/avcodec.h>。 编译:arm-linux-gcc -o test test.c -L/usr/local/ffmpeg-arm/lib-lavformat -lavcodec -lavutil 在实验箱运行测试程序,必须把动态库文件烧写到/usr/lib或者/lib下。 (5)ffmpeg+ffserver构建视频服务器(摄像头作为视频采集端口,通过ffmpeg进行mpeg4编码,然后通过ffserver使用rtp协议传输视频!) 首先启动ffserver。启动ffserver之前必须先配置好ffserver。配置文件如下 Port 8090 # BindAddress 0.0.0.0 #最大链接数 MaxClients 1000 #带宽上限 MaxBandwidth 10000 CustomLog - NoDaemon #配置缓冲文件 <Feed feed1.ffm> #缓冲文件所在目录 File /tmp/feed1.ffm #缓冲大小 FileMaxSize 1M #允许链接的地址 ACL allow 127.0.0.1 </Feed> #配置视频文件的参数 <Stream test.asf> Feed feed1.ffm Format asf NoAudio VideoCodec mpeg4 VideoFrameRate 15 VideoSize 320x240 VideoBitRate 256 VideoBufferSize 40 VideoGopSize 30 #AudioBitRate 64 StartSendOnKey ACL allow 192.168.0.0 192.168.255.255 </Stream> 这样就可以启动ffserver了,使用格式如下:./ffserver -f test.conf 然后再启动ffmpeg,使用方法:ffmpeg -f video4linux -s 320*240 -r 15 -i /dev/video0 http://localhost:8090/feed1.ffm 这样服务器端就OK了,客户端不知道为什么怎么也不行! 郁闷!!!!!!!!!!!!!!!!!!!!!!11 二、ffmpeg在VC下使用 首先下载一个ffmpeg SDK,现在最新版本3.2,下载地址:http://www.bairuitech.com/html/ruanjianxiazai/ffmpeg/20080414/89.html,然后解压后,将库文件和头文件加到VC中去,将动态链接库文件拷贝到自己的工程目录下。如果出现各种找不到可以解析的外部函数名,一般都是由于没有将相应的头文件和库文件加入的原因!!!!!!!!!!! |
相关文章推荐
- arm Linux平台下FFmpeg的移植
- ubuntu和arm平台下的ffmpeg和x264相关库的移植
- OpenCV移植到ARM平台---Opencv with ffmpeg to ARM移植总结
- 成功移植ffmpeg 0.6到ARM平台 tq2440. 移植ffmpeg-0.6.3,SDL-1.2.10到tq2440
- 基于Hi3559A ARM64位嵌入式平台的OpenCV2.4.9+ffmpeg2.0.7移植及应用
- ARM硬件平台上基于UCOS移植Lwip网络协议栈 分类: 嵌入式开发学习 2015-06-14 10:33 55人阅读 评论(1) 收藏
- ARM平台移植GDB
- 关于qt移植后在ARM平台运行时 line 1: syntax error: unexpected"("
- FFmpeg的Android平台移植—编译篇
- qt5.3.2 源码向ARM平台移植的方法
- ARM平台下的嵌入式linux移植大纲(一)
- madplay在arm平台的移植
- ARM平台上蓝牙协议栈Bluez的移植使用和配置
- FFmpeg编译之后的Android平台移植---------阿冬
- FFmpeg 2.8.4 移植到android平台(二)
- 移动视频监控(2)---原型开发---(音视频编解码多平台移植(for window/wince))ffmpeg --自由之路即是曲折之路。
- OpenCV ffmpeg移植到ARM平台
- yaffs2在arm平台ucos2系统下的移植 2008-9-26 14:53:00 (21ic)
- 移植strace调试工具到arm平台
- FFmpeg 移植到 Android 平台(2)