移植FFMPEG和FFPLAY到DM355

移植FFMPEG和FFPLAY到DM355  

2010-02-09 14:30:01|  分类: 嵌入式|字号 订阅

       我们公司现在研发的DVR用的是TI的DM355平台,这项目做得断断续续的,中间还暂停了半年,到现在快两年了,还没搞出来,首先老板决策失败,其次TI的这个平台本身也有很多缺陷。其中最大的缺陷的就是录像文件录制好以后音频和视频是分开的,而且在windows下面的一般的播放器还播放不了,实际出来的产品肯定不能是这样,所以要把音视频打包成AVI文件,这几天在DAVINCI的DM355平台上移植FFMPEG,FFPLAY,参考了大量资料,编译的错误一大堆。现在把编译的过程说一下,供参考。

 1、  解压ffmpeg-0.5.tar.bz2文件

2、  由于FFPLAY是利用SDL在解码文件,所以需要下载编译SDL。解压SDL-1.2.14。

3、  配置、编译SDL。

       ./configure --prefix=/usr/local --enable-shared --host=arm-linux CC=arm_v5t_le-gcc AR=arm_v5t_le-ar RANLIB=arm_v5t_le-ranlib --disable-arts --disable-nasm --disable-video-x11 --disable-nas --disable-joystick --disable-cdrom

     make

     make install

4、  配置编译ffmpeg

需要修改configure文件,向头文件和库文件搜索路径添加新的目录,将SDL那段代码改为:

SDL_CONFIG="/usr/local/bin/sdl-config"

sdl_cflags='-I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT'

temp_cflags $sdl_cflags

temp_extralibs '-L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread'

enable sdl

restore_flags

#end

echo "SDL_CFLAFS=-I/usr/lcoal/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT" >>config.mak

echo "SDL_LIBS=-L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread" >>config.mak

#end

改完以后,执行

./configure --prefix=/usr/local --enable-shared --enable-gpl --enable-nonfree --enable-pthreads --arch=armv5t --cross-prefix=arm_v5t_le- --enable-cross-compile --target-os=linux --disable-optimizations --cc=arm_v5t_le-gcc

make

make install

5、  查看ffmpeg和ffplay需要的库文件

arm_v5t_le-ldd ffmpeg

arm_v5t_le-ldd ffplay

执行结果如下:

bavdevice.so.52 => not found

        libavformat.so.52 => not found

        libavcodec.so.52 => not found

        libavutil.so.49 => not found

        libm.so.6 => /opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/target/lib/tls/libm.so.6 (0xdead1000)

        libSDL-1.2.so.0 => not found

        libpthread.so.0 => /opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/target/lib/tls/libpthread.so.0 (0xdead2000)

        libc.so.6 => /opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/target/lib/tls/libc.so.6 (0xdead3000)

        /lib/ld-linux.so.3 => /opt/mv_pro_4.0.1/montavista/pro/devkit/arm/v5t_le/target/lib/ld-linux.so.3 (0xdead4000)

将所需要的库文件拷贝到开发板的lib目录下。

libavformat.so.52  libavcodec.so.52  libavutil.so.49  libSDL-1.2.so.0在/usr/local/lib目录下。

6、  在开发板上运行ffplay以后,sdl会默认去找/dev/fb0的framebuffer设备,而mvlinux上的framebuffer设备是/dev/fb/0,可以建立一个符号链接,ln /dev/fb/0 /dev/fb0。这样ffplay就可以播放音视频文件了。

7、  ffmpeg、ffplay移植完成。

你可能感兴趣的:(移植FFMPEG和FFPLAY到DM355)