本文介绍的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: -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 -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 -O - | mplayer -cache 8192 -vobsub movie -
注意,这里“-vobsub”指定sub格式的字幕,后面只需要字幕文件的前缀名,后缀名不要!!“-font”和“-subcp”参数都用不着,因为sub字幕是特殊位图格式,跟字体和编码都没有关系。
一般来说,流畅播放需要的带宽为130KB/s左右。关于加载字幕的问题,可以参见我的另外一篇文章
3、在线听歌
在线听歌也有几种方法,例如听某个ftp服务器某一目录的所有歌,那个格式就是:
wget -O - | mplayer -cache 1000 -
如果某首歌的文件名中有中文,那这首歌就播不了了。这跟wget如何获取列表有关。
有很多音乐网站,也提供在线听歌(比如music.trueice.net),点击播放后,会生成一个列表文件(假设报存在tmp/playlist.m3u),这样就可以让wget读取这个列表文件并下载,格式为:
wget -i tmp/playlist.m3u -O - | mplayer -cache 1000 -
如果这样的网站需要登录后才能播放,也就是需要Cookies(比如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左右。
***********************************************
2006年4月27日新增内容:
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没有试过。
转自:
***********************************************
常用操作:
f------------------------全屏与窗口模式转换,直接按f键 就可以
左光标键----------------快退
右光标键----------------快进
9------------------------音量减小
0------------------------音量增大
m------------------------静音开关
空格---------------------暂停/播放
下面是比较全的,从官方网站找的,有兴趣的可以看看
<− 和 −> (左右光标键)------------后退/ 快进 10 秒。
up 和 down(上下光标键)-----------快进/ 后退 1 分。
pgup 和 pgdown(翻页键)---------快进/ 后退 10 分。
[ 和 ]------------------------------------减少/增加当前回放速度 10%。
{ 和 }------------------------------------减半/加倍当前回放速度。
backspace(退格键)-----------------重置正常回放速度.
< 和 >----------------------------------在播放列表中后退/ 快进。
ENTER(回车键)---------------------在播放列表中快进, 甚至越过末尾。
HOME 和 END------------------------下一个/ 前一个父列表中的播放树项。
INS 和 DEL (仅用于 ASX 播放列表)----下一个/ 前一个供选择的源。
p / SPACE------------------------------暂停 (再按取消暂停)。
. --------------------------------步进。按一下暂停回放, 每按一下就播放一帧(直到按其它键取消步进)。
q / ESC----------------------------------停止播放和退出。
+ 和 - -----------------------------------调整音频延迟增加/减少 0.1 秒。
/ 和 * -----------------------------------降低/ 提高音量。
9 和 0 -----------------------------------降低/ 提高音量。
m -----------------------------------静音。
_ (仅用于 MPEG-TS)---------------------循环可用的像轨。
# (仅用于 MPEG 和 Matroska)----------循环可用的音轨。
TAB (仅用于 MPEG-TS)-------------------循环可用的节目。
f ----------------------------------------切换全屏 (也请参见 −fs)。
T ----------------------------------------切换顶置 (也请参见 −ontop)。
w 和 e--------------------------------------降低/ 提高摇移范围。
o ---------------------------------------循环 OSD 状态: 无 / 搜索条 / 搜索条 + 计时器 / 搜索条 + 计时器 + 总时间。
d ---------------------------------------循环丢帧状态: 无 / 跳过显示 / 跳过解码。 (请参见 −framedrop 和 −hardframedrop)。
v --------------------------------------切换显示字幕。
j -------------------------------------循环可用的字幕。
y 和 g-----------------------------------在字幕列表中步进/步退。
F -------------------------------------切换显示 "锁定的字幕"。
a -------------------------------------切换对齐字幕: 上 / 中 / 下。
x 和 z----------------------------------调整字幕延迟增加/减少 0.1 秒。
r 和 t----------------------------------上/下调整字幕位置。
i (仅用于 −edlout 模式)---------------设置 EDL 的开头或末尾并写入指定的文件。
s (仅用于 −vf 截屏)----------------------截屏。
S (仅用于 −vf 截屏)---------------------开始/停止截屏。
I ----------------------------------用 OSD 显示文件名。
! 和 @----------------------------------寻到前一章节/后一章节的开始处。
D (仅用于 −vo xvmc)------------------激活/撤销去交错。
(以下的按键仅适用于硬件加速视频输出(xv, (x)vidix, (x)mga, 等), 软件均衡器(−vf eq or −vf eq2), 或者色调过滤器(−vf hue)。)
1 和 2----------------------------------调整对比度。
3 和 4----------------------------------调整亮度。
5 和 6----------------------------------调整色调。
7 和 8----------------------------------调整饱和度。
(以下的按键仅适用于 quartz or macosx 视频输出驱动。)
command + 0----------------------------------半尺寸。
command + 1----------------------------------原始尺寸。
command + 2----------------------------------双倍尺寸。
command + f----------------------------------切换全屏 (也请参见 −fs)。
command + [ 和 command + ]---------------设置窗口的 alpha。
(以下的按键仅适用于 sdl 视频输出驱动。)
c ----------------------------------切换可用的全屏模式。
n ----------------------------------原始尺寸。
(以下的按键仅适用于多媒体键盘。)
PAUSE----------------------------------暂停。
STOP----------------------------------停止并退出。
PREVIOUS 和 NEXT-------------------后退/ 快进 1 分。
(以下的按键仅适用于已编译支持 GUI 并优先于以前的定义。)
ENTER----------------------------------开始播放。
ESC----------------------------------停止播放。
l ----------------------------------加载文件。
t ----------------------------------加载字幕。
c ----------------------------------打开皮肤浏览器。
p ----------------------------------打开播放列表。
r ----------------------------------打开首选项。
(以下的按键仅适用于已编译支持 TV 或 DVB 的输入并优先于以前的定义。)
h 和 k----------------------------------选择上一个/ 下一个频道。
n ----------------------------------改变制式。
u ----------------------------------改变频道列表。
(以下的按键仅适用于已编译支持 dvdnav: 用于导航菜单)
keypad 8----------------------------------选择上。
keypad 2----------------------------------选择下。
keypad 4----------------------------------选择左。
keypad 6----------------------------------选择右。
keypad 5----------------------------------返回主菜单。
keypad 7----------------------------------返回最近的菜单(先后次序是: 章节->标题->根)。
keypad ENTER----------------------------确定。
鼠标控制
button 3 和 button 4----------------------------------后退/ 快进 1 分。
button 5 和 button 6----------------------------------降低/ 提高音量。
操纵杆
left 和 right----------------------------------后退/ 快进 10 秒。
up 和 down----------------------------------快进/ 后退 1 分。
button 1----------------------------------暂停。
button 2----------------------------------循环 OSD 状态: 无 / 搜索条 / 搜索条 + 计时器 / 搜索条 + 计时器 + 总时间。
button 3 和 button 4----------------------------------降低/ 提高音量。
修改关联:
有时会遇到想默认用mplayer打开某种格式的影音文件,可以在该文件上点右键,选择”属性“->"打开方式”,点选“Mplayer movie player"(前面有黑点就是选上了),然后关闭”属性“对话框就可以了。
相关配置文件及位置:
FILES (文件)
/usr/local/etc/mplayer/mplayer.conf
MPlayer 范围的设置
/usr/local/etc/mplayer/mencoder.conf
MEncoder 范围的设置
~/.mplayer/config
MPlayer 用户设置
~/.mplayer/mencoder.conf
MEncoder 用户设置
~/.mplayer/input.conf
输入绑定 (按键的完整列表请参见 "−input keylist" 的输出)
~/.mplayer/gui.conf
GUI 配置文件
~/.mplayer/gui.pl
GUI 播放列表
~/.mplayer/font/
字体目录 (里面必须有一个 font.desc 文件和带 .RAW 后缀的文件。)
~/.mplayer/DVDkeys/
缓存的 CSS 钥匙
假如播放文件是 /path/to/movie.avi, MPlayer 按以下顺序搜索字幕文件:
/path/to/movie.sub
~/.mplayer/sub/movie.sub
阅读(928) | 评论(0) | 转发(0) |