LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1064|回复: 4

(原创)从源码自动安装最新版MPlayer的Shell脚本,欢迎批评指正!

[复制链接]
发表于 2009-12-7 16:26:23 | 显示全部楼层 |阅读模式
[color="SeaGreen"]#!/bin/bash

#########################################################
#  安装MPlayer需要以下软件包,请确保它们处在同一个目录下:
#
#    all-20071007.tar.bz2
#    windows-all-20071007.zip
#    MPlayer-1.0rc2.tar.bz2
#    Blue-1.7.tar.bz2
#
#    不过我已尽力让脚本可以适用于其它的软件包,
#  包含以下两个方面:
#1.  例如你想安装的是MPlayer-1.0rc1.tar.bz2,
#  那么只需要修改MPlayerVer=1.0rc1即可,
#  其它如all-20071007.tar.bz2,windows-all-20071007.zip同理;
#
#2.  例如你想安装的皮肤压根就不是Blue,而是Abyss-1.7.tar.bz2,
#  那么只需要修改SkinPkg=Abyss-1.7.tar.bz2即可.
#
#  
#    注:
#    1.如果遇到编译错误,且是来自于/usr/include/netinet/in.h
#    那么反注释掉95-99行重新编译即可;
#    2.本版不安装字体包,例如gb2312-ming.tar.bz2,
#    而是直接从系统拷贝字体来修复字体的错误;
#    3.如若gmplayer不能显示中文字幕,在窗口点鼠标右键,
#    选择首选项,字幕和osd选项-→编码选择—>简体中文(CP936).
#    字体—>编码: Unicode!
#    这样打开带字幕的文件,就可以播放中文字幕了;
#    4.如若gmplayer打开后只有声音没有图像,可以在首选项的
#    视频选项的可用驱动中选择其它驱动试试.
#
#    Good Luck!
#                                             Safirst C. Ke
#                                      zhongjizhuyi@163.com
#                                   一 12月  7 16:17:40 CST 2009
##########################################################
export Prefix=/usr/local
export MPlayerRoot=`pwd`

#Codecs
export CodecsVer=20071007
export CodecsName=all-$CodecsVer
export CodecsPkg=$CodecsName.tar.bz2
export CodecsDir=$Prefix/lib/codecs

export WinCodecsVer=20071007
export WinCodecsName=windows-all-$WinCodecsVer
export WinCodecsPkg=$WinCodecsName.zip
export WinCodecsDir=$Prefix/lib/wincodecs

#MPlayer and its skin
export MPlayerVer=1.0rc2
export MPlayerName=MPlayer-$MPlayerVer
export MPlayerPkg=$MPlayerName.tar.bz2
export MPlayerDir=$Prefix/share/mplayer

export SkinPkg=Blue-1.7.tar.bz2
export SkinName=${Skin%%-*}
export SkinDir=$MPlayerDir/share/mplayer/skins

#export Font=gb2312-ming.tar.bz2
#export FontDir=$MPlayerDir/share/mplayer/font


################################################
#Install codecs and wincodecs                  #
################################################
echo  拷贝解码包至$CodecsDir and $WinCodecsDir
mkdir -p $CodecsDir
mkdir -p $WinCodecsDir
cp $CodecsPkg $CodecsDir
cp $WinCodecsPkg $WinCodecsDir

echo 解压allcodecs...
cd $CodecsDir
tar jxvf $CodecsPkg
mv $CodecsName/* .
rmdir $CodecsName
rm -f $CodecsPkg

echo 解压wincodecs...
cd $WinCodecsDir
unzip $WinCodecsPkg
mv $WinCodecsName/* .
rmdir $WinCodecsName
rm -f $WinCodecsPkg


#################################################
#Install MPlayer                                #
#################################################
echo 解压MPlayer源码
mkdir -p $MPlayerDir
cd $MPlayerRoot
tar jxvf $MPlayerPkg

echo 正在配置MPlayer
cd $MPlayerRoot/$MPlayerName
./configure --prefix=$MPlayerDir --enable-gui --enable-freetype --enable-dynamic-plugins --enable-menu --codecsdir=$CodecsDir --win32codecsdir=$WinCodecsDir --language=zh_CN
#--with-freetype-config=/usr/bin/freetype-config


#Fix Compile Error
#sed -i '/__BEGIN_DECLS/a\
##undef ntohl\
##undef ntohs\
##undef htonl\
##undef htons' /usr/include/netinet/in.h

echo 开始编译MPlayer
make
make install


###################################################
#Install skin                                     #
###################################################
echo 正在安装皮肤
mkdir -p $SkinDir
cp $MPlayerRoot/$SkinPkg $SkinDir
cd $SkinDir
tar jxvf $SkinPkg
ln -s $SkinName default
rm -f $SkinPkg

###################################################
#Install Font (Not necessary)                     #
###################################################
#Fix Font Problem Directly
echo 正在安装字体
mkdir -p ~/.mplayer
cp /usr/share/fonts/zh_CN/TrueType/zysong.ttf ~/.mplayer/subfont.ttf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-12-8 19:47:37 | 显示全部楼层
支持原创, 支持楼主
回复 支持 反对

使用道具 举报

发表于 2009-12-8 20:05:55 | 显示全部楼层
据了解,mplayer 这个软件并非每版 gcc 都能顺利编译,楼主请说明一下系统的编译环境
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-9 13:07:46 | 显示全部楼层
Post by d00m3d;2053922
据了解,mplayer 这个软件并非每版 gcc 都能顺利编译,楼主请说明一下系统的编译环境


OK,我是在RedHat9上做编译以及交叉编译测试的,
这里是它们的版本信息:
[root@VMLinux root]# gcc --version
gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
Copyright (C) 2002 Free Software Foundation, Inc.
...
[root@VMLinux root]# arm-linux-gcc --version
arm-linux-gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
...

另外,如果怀疑是gcc版本的问题,
那么--disable-gcc-check选项可能有帮助。
回复 支持 反对

使用道具 举报

发表于 2009-12-9 19:34:37 | 显示全部楼层
不用怀疑,Mplayer 挺挑的,1.0rc 以前的版本基本上不能用 gcc-3.3.x 以上的版本来编译,1.0rc 以後的,也最多只能用 gcc-4.1.x,以上都不一定行,视乎打了什麽补丁

说得不好听,其实就是它的 C 语法不够严格,未能通过新版 gcc 的审查!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表