Mplayer 移植步骤
系统芯片为atsam9g45
一 下载 libmad-0.15.1b.tar.gz 和 MPlayer-1.0rc2.tar.bz2
二 安装libmad
解压 libmad-0.15.1b.tar.gz 在任意文件夹,
1 cd libmad-0.15.1b
2 ./configure --prefix=/tmp/mplayer --enable-fpm=arm --host=arm-linux --disable-debugging --enable-shared --enable-static CC=arm-none-linux-gnueabi-gcc
3 make
4 make install
5 将生成的lib下的文件拷贝到/opt/arm-2014.05/arm-none-linux-gnueabi/libc/usr文件夹下,
准备编译mplayer
6 将生成的lib下的文件拷贝到设备/usr/lib下。以便mplayer运行时调用
三 移植alsa
1 下载 alsa-lib-1.0.22.tar.bz2
2 ./configure --host=arm-none-linux-gnueabi --enable-shared --disable-python --prefix=/usr/
3 make、make install
4 将生成三alsa-lib include alsa-share 文件夹下的文件拷贝到
/opt/arm-2014.05/arm-none-linux-gnueabi/libc/usr对应的文件夹下,准备编译mplayer
5 将 amixer 拷贝到设备 /usr/bin
6 设置声卡,在启动初始化文件/etc/init.d/S60self中添加:
amixer cset numid=89,iface=MIXER,name=‘Master Left Inv Switch‘ on
amixer -c 0 sset ‘Master‘,0 100%,100% unmute
amixer cset numid=15,iface=MIXER,name=‘PCM Playback Switch‘ on
amixer cset numid=16,iface=MIXER,name=‘PCM Playback Volume‘ 60 unmute
7 设备已经有生成的各个库文件,所以不用拷贝。如果没有则需拷贝到对应的目录:
/usr/share /usr/lib /usr/include等
四 安装 mplayer
解压 MPlayer-1.0rc2.tar.bz2 在任意文件夹
1 cd MPlayer-1.0rc2
2 ./configure --prefix=/usr --cc=arm-none-linux-gnueabi-gcc --target=arm-linux --disable-win32dll --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --disable-mencoder --disable-mp3lib --disable-armv5te --disable-armv6 --enable-fbdev --enable-mad --enable-libavcodec_a --enable-libavcodec_mpegaudio_hp --disable-iconv --enable-linux-devfs --disable-ivtv --language=zh_CN --enable-cross-compile --enable-real --enable-alsa --disable-ossaudio --host-cc=gcc --disable-live --with-extraincdir=/usr/include --with-extralibdir=/usr/lib 2>&1|tee logfile
注意:不要静态编译--enable-static
3 make
4 make install 会提示一个错误,不用管
5 将/tmp/mplayer/bin下的mplayer 拷贝到设备 /usr/bin 目录下
五 运行
将视频压缩成 .avi格式,这种格式播放会快一些,不容易卡顿,执行以下命令播放
mplayer -fs -zoom -x 640 -y 480 -cache 81920 -framedrop -nosound xyq2.swf
-x –y 指播放窗口大小,需要跟视频压缩时保持一致,这样不容易卡顿。
问题:
1 图像红色和蓝色相反
解决方法:打开文件:MPlayer-1.0rc2\libswscale\swscale.c
在2054行加入 dstFormat = PIX_FMT_RGB24; 强制将bgr24替换成rgb24 就可解决这个问题
2 avi格式视频不要压高清的,每秒帧数可以压缩到8,不然播放会卡
3 播放缓冲区需要开大点,播放不卡,但是,开大了,加载视频就变慢了