免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2836 | 回复: 0
打印 上一主题 下一主题

MPlayer 移植大全 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-23 21:27 |只看该作者 |倒序浏览
  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",则执行时可以,这样速度慢点,但可播放.

    • gmplayer -vo x11

这是运行效果图

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP