- 论坛徽章:
- 0
|
MPlayer 是相当有名的跨平台多媒体播放软件,并且支持软件较多格式.(官方网站
http://www.mplayerhq.hu/
)在嵌入式领域也应用使用较多.因为教学和项目关系.我分别移植了MPlayer 桌面版,MPlayer的ARM和MIPS版,并且在上面加入live555的rstp支持.下面将基汇总.
X86快速安装
为减少编译.除了MPlayer本身用源码编译外,其余都使用已经编译好的包.首先需要下载如下包
安装.
- 创解压解码库,(放入/usr/local/lib/codecs当中)
- tar xvjf essential-20071007.tar.bz2 -C /usr/local/lib/
- mv /usr/local/lib/essential-20071007 /usr/local/lib/codecs
- 解压MPlayer源码,编译
- tar xvjf MPlayer-1.0rc2.tar.bz2;cd MPlayer-1.0rc2
- ./configure --enable-gui --enable-x11 ; make ; make install
- 安装皮肤,将所选的包解压,拷入MPlayer的安装目录当中.将其改名为default,
- mkdir -p /usr/local/share/mplayer/skins
- tar xvjf PowerPlayer-1.1.tar.bz2 -C /usr/local/share/mplayer/skins
- cd /usr/local/share/mplayer/skins ;mv PowerPlayer/ default/
- 安装字体
- 从WINDOWS找一款TrueType 字体.改名为subfont.ttf,放在/usr/local/mplayer目录下.
运行MPlayer
- gmplayer
- 如果提示 "It seems there is no Xvideo support for your video card available",则执行时可以,这样速度慢点,但可播放.
这是运行效果图
![]()
ARM-Linux 移植.
ARM版本中,图形界面移植相对困难.需要先移植X11方面库,所以一般先移植命令行版本.采用libmad作为音频解码库.(默认音频效果很差)
最小版本
最开始可以移植一个最小.只需要libmad 和MPlayer 即可。
目录结构
|
+-- output--linux_arm
|
+-- MPlayer
|
+-- libs/libmad
libmad 的配置脚本
./configure --prefix=$PWD/../../output/linux_arm --host=arm-linux --enable-shared --enable-static --enable-fpm=arm
生成Makefile 后,如果用arm eabi版编译器(如arm-linux-gcc 4.3.2),去掉129的 -fforce-mem ,因为编译器不认识这一选项
Mplayer 的配置脚本如下
./configure --prefix=$PWD/../output/linux_arm --with-extraincdir="$PWD/../output/linux_arm/include " --with-extralibdir="$PWD/../output/linux_arm/lib " --cc=arm-linux-gcc --target=arm-armv4-linux --ar=arm-linux-ar --ranlib=arm-linux-ranlib --disable-gui --target=arm-linux --host-cc=gcc --disable-freetype --enable-fbdev --disable-mencoder --disable-sdl --disable-live --disable-dvdread --disable-libdvdcss-internal --disable-x11 --enable-cross-compile --disable-mp3lib --enable-mad --disable-dvdnav --disable-dvdread-internal --disable-jpeg --disable-tga --disable-dvbhead --disable-pnm --disable-tv --disable-ivtv --disable-fontconfig --disable-xanim --disable-win32dll --disable-armv5te --disable-armv6
修改两个汇编代码。
libavcodec/armv4l/dsputil_arm_s.S, libmpeg2/motion_comp_arm_s.S中加入
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
因为这是pld指令只在armv5te以上版本有效,在2440(armv4l)无效,因此用一个空宏来置换。
完整版本.
支持网络点播版本.
JZ47XX(MIPS)移植版本
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/105675/showart_2101453.html |
|