Mplayer另类在线播放影音文件技巧

Mplayer另类在线播放影音文件技巧

本文介绍的Mplayer在线播放的方法,不是指在浏览器中安装Mplayer插件这种方 法,而是在命令行中操作,利用Mplayer的可以从Stdin 中播放的原理实现的。其原理是利用支持Stdout的下载软件(如Wget和Curl),将文件下载到Stdout中;再用Mplayer从Stdin读 取数据并播放。由于所有数据都只临时存在于Stdin/Out中,从而可以做到不用在本地硬盘保存,在线播放影音文件。这个方法可以通用于各种发行版。关 于Stdin/Out的更多信息,请在网上查阅,我并不是很清楚。

下面,以使用Wget和Mplayer为例,介绍几种比较常见的在线播放的例子。

1、在线播放rmvb文件

这个是最简单的,因为rmvb文件不牵涉到字幕问题。请先确定你已经安装realcodecs。假设我想看某一电影ftp里的某个rmvb电影,那么命令行格式为:
wget ftp://username:password@ftpserver/directory/movie.rmvb -O - | mplayer -cache 8192 -

解释一下,wget的参数“-O”是指另存为,后面的“-”就是指输出到StdOut;“|”是管道符,-cache 8192设置mplayer的缓冲区大小为8192K,最后的“-”告诉Mplayer从StdIn读数据。一般来说,流畅播放需要的带宽为60KB/s 左右。如果网速飞快的话,Mplayer会自动控制wget降速,以保持缓冲区在49%左右。

2、在线播放avi文件

这种文件一般都有单独的字幕文件。字幕文件是需要下载到本地硬盘的,把字幕文件放到StdIn中是不可以的。字幕一般有两个格式,srt和sub。对于srt字幕,假设存放位置为tmp/movie.srt,则总的命令行格式为
wget ftp://username:password@ftpserver/directory/movie.avi -O - | mplayer -cache 8192 -sub tmp/movie.srt -font /usr/share/fonts/simsun.ttf -subcp cp936 -

解释一下,Mplayer的“-sub”指定字幕文件,“-font”指定字幕文件的字体,这里的simsun.ttf对应简体宋体,繁体字幕就换繁体字体文件。“-subcp”指定字幕文件的编码,简体就是cp936,繁体就是big5。

对于sub格式字幕,需要下载movie.sub和movie.idx文件,总的命令行格式为
wget ftp://username:password@ftpserver/directory/movie.avi -O - | mplayer -cache 8192 -vobsub movie -

注意,这里“-vobsub”指定sub格式的字幕,后面只需要字幕文件的前缀名,后缀名不要!!“-font”和“-subcp”参数都用不着,因为sub字幕是特殊位图格式,跟字体和编码都没有关系。

一般来说,流畅播放需要的带宽为130KB/s左右。关于加载字幕的问题,可以参见我的另外一篇文章
http://www.linuxsir.org/bbs/showthread.php?t=249835

3、在线听歌

在线听歌也有几种方法,例如听某个ftp服务器某一目录的所有歌,那个格式就是:
wget ftp://username:password@ftpserver/directory/*.mp3 -O - | mplayer -cache 1000 -
如果某首歌的文件名中有中文,那这首歌就播不了了。这跟wget如何获取列表有关。

有很多音乐网站,也提供在线听歌(比如 http://music.trueice.net),点击播放后,会生成一个列表文件(假设报存在tmp/playlist.m3u),这样就可以让wget读取这个列表文件并下载,格式为:
wget -i tmp/playlist.m3u -O - | mplayer -cache 1000 -

如果这样的网站需要登录后才能播放,也就是需要Cookies(比如 http://music.xjtust.com),那也没关系,命令格式如下:
wget -i tmp/playlist.m3u --load-cookies .mozilla/firefox/default/cookies.txt - O | mplayer -cache 1000 -
这里,“--load-cookies”后面跟的就是Firefox存放Cookies的文件。

还有些网站,必须用Winamp才能播放,XMMS都不行,那也没有问题,命令格式如下:
wget -i tmp/playlist.m3u --load-cookies .mozilla/firefox/default/cookies.txt --user-agent="WinampMPEG/5.0" - O | mplayer -cache 1000 -
这样就会向服务器发送Winamp的播放器标识。

一般来说,流畅播放的带宽为20KB/s左右。

4、其它

wget 还有一个参数在连接ftp服务器的时候也很有用,就是“--no-passive-ftp”。顾名思义,不加这个参数就是Passive模式,加上就是Port模式。如果在播放过程中,wget速度变为0了,可以试试加上或者去掉这个参数。

在播放mp3文件列表时,有可能出现wget在下载其中的一个文件,但是mplayer就是不播放它。这是因为由于mplayer默认从文件的扩展名判断 其音频解码类型,而可能由于文件名编码的问题,在stdin中找不到相关信息。这样mplayer就可能不知道如何解码而拒绝播放。可以在mplayer 后面增加这样一个参数“-demuxer 17”,强制它按音频格式处理。

使用curl播放的基本命令为:
curl url -o - | mplayer -cache -

注意是curl另存的参数为小写o,但是curl是否支持Cookies以及是否可以设定user-agent没有试过
 
from:
http://bbs.linuxsky.net/thread-3241-1-1.html
STEP 1. 下载必要的文件:   下载主程序:   MPlayer-1.0pre8.tar.bz2(最新的即可)   官方解码器:   essential-20071007.tar.bz2(最新即可)   官方win32_CODES-all:   windows-essential-20071007.zip(最新即可)   皮肤:   Orange-1.3.tar.bz2(选一个自己喜欢的就可以)   上面的那几样东西都在官方网站找到并顺利下载   下载网址: http://www.mplayerhq.hu/   STEP2. 安装codecs:   tar vjxf essential-20071007.tar.bz2   mv essential-20071007 /usr/lib/codecs(or /usr/lib/codecs,this is used for.   /configure --with-codecsdir=/usr/lib/codecs/,   you must make the direct is correct,or you cant install the codes.)   chmod 644 /usr/lib/codes/*(or 777)   chown root.root /usr/lib/codes/*   unzip windows-essential-20071007.zip   mv windows-essential-20071007 /usr/lib/wincodecs   (or /usr/lib/wincodecs,   this is usedfor ./configure --with-win32libdir=/usr/lib/wincodecs/,   you must make thedirect is correct,or you cant install the codes.)   chmod 644 /usr/lib/wincodes/*(or 777)   chown root.root /usr/lib/wincodes/*   STEP 3.安装MPlayer:   tar vjxf MPlayer-1.0pre8.tar.bz2   cd MPlayer-1.0pre8   ./configure --prefix=/usr/local/mplayer/   --enable-gui--enable-freetype --codecsdir=/usr/lib/codecs/--win32codecsdir=   /usr/lib/wincodecs/ --language=zh_CN   回车后,它会让你确认是否真的愿意disable-gcc-checking ,回车就行了。   make   make的时间可能比较长.建议你可以先去干别的事。接下来我们就可以make install了。   make install   cd etc   cp example.conf /usr/local/mplayer/etc/config   cp codecs.conf /usr/local/mplayer/etc/ 注意:make是可能会提示错误,libass/ass_fontconfig.c中有未定义,可以下载最新的fontconfig编译安装即可解决。   STEP 4.安装字体   把你想用的字体(如 simsun.ttf ,windows系统的字体目录下就有c:\windows\font\)放到/home//.mplayer 下(root用户放到/root/.mplayer下)并且改名为subfont.ttf .   拷贝(这里假设您的simsun字体临时放在 /root/ 目录下,用户为root):   cp /root/simsun.ttf /root/.mplayer/   改名:   mv /root/.mplayer/simsun.ttf /root/.mplayer/subfont.ttf   (如 果不做这一步运行时会报错:New_Face failed. Maybe the font path is wrong.please supply teh text font ~/.mplayer/subfont.ttf。如果没有~/.mplayer,只需要点菜单栏的查看,选择,显示隐藏文件即可。)   STEP 5.安装皮肤   tar vjxf Orange-1.3.tar.bz2   mv Orange /usr/local/share/mplayer/skins/   cd /usr/local/share/mplayer/skins/   ln -s Orange default   官方网站有很多皮肤,下载以后,解压,然后放到/usr/local/share/mplayer/skins/ 下,然后右击mplayer,选皮肤浏览,就可以看到你刚放进去的皮肤了。   STEP 6.运行   /usr/local/mplayer/bin/gmplayer   就可以运行程序了。你就可以在linux下听歌看电影了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值