发新话题
打印

mplayer, mencoder 一个简单使用的HOWTO

mplayer, mencoder 一个简单使用的HOWTO

如何用mplayer播放dvd以及用mencoder压缩DVD。(v0.1)

mplayer是linux下的好软件就不用我说了。不过,因为纯属命令行
方式,所以用起来真的不是很方便。但是也不是难到上青天的地步,
这里分享一下偶使用的一点点体会,(换句话说是在man page里爬
上爬下的体会)希望能帮到大家。

1,编译mplayer的注意事项

我用mplayer主要看常用的格式,所以,没有特别去下载特殊的codec,
但是,我最喜欢用mencoder压缩DVD,所以,编译的时候,一定注意要
先编译 lame,在sourcefourge里有,编译lame很简单,就是:

tar zxvf ...
./configure
make
make install

不过完了别忘了:

ldconfig

一下,好让稍后的mplayer编译找得到。

编译mplayer也很简单:

tar jxvf ...
./configure
make
make install

我所有东西都用缺省,不过倒是想做一个slackware的包,偷懒了,以后吧。:P

2,用mplayer看DVD

如果是 1.0 (per版本),一般要用下面的命令:

mplayer <a href="dvd://N" target="_blank">dvd://N</a>

这里的N是你的DVD的标题号,一般是 1,不过有时候有些DVD前面有好多广告,
后面有片断,这个时候,正文标题号可能就不是 1 了,那你就用 1,2,3,4 试试,
看看哪个是。

2.1快进

mplayer没有快放(我没玩出来),但是有快进,就是:
page up,每次进1000秒,
上箭头,每次进100秒,
右箭头,每次进10秒,

结合快进,我们可以找哪个DVD标题是正片,;-)

2.2全屏

f键,用于切换全屏。

2.3暂停

空格键

2.4字幕

这个复杂点,我搞了好久(可能笨吧,没仔细看man page :P)。
其实一点都不难,最简单的中文字幕(如果有)可以这么看:

mplayer <a href="dvd://N" target="_blank">dvd://N</a> -slang zh

这里的 N 是你的正片的DVD标题号,上面我介绍了找法了。

-slang 是字幕的意思,zh 就是中文啦。缺省编译安装的mplayer
可以直接出来中文字幕,条件是系统里一定要有中文ttf字体。
(这个属于 X 的汉化问题,到其它地方找解法吧,将来我的这个怎么办
也许会写进来。)

2.5语言

mplayer还可以选语言呢!不知道吧(嘿嘿,也许就我不知道),其实也很简单
-alang 选项:

mplayer <a href="dvd://N" target="_blank">dvd://N</a> -alang en -slang zh

上面这个意思就是用英文对白,中文字幕。

mplayer <a href="dvd://N" target="_blank">dvd://N</a> -alang zh slang en

就是中文对白,英文字幕

那位说了,要我不知道这个碟里面有啥语言,啥字幕怎么办。好办:

mplayer <a href="dvd://N" target="_blank">dvd://N</a> -vo null -ao null -frames 0 -v 2>&1 |grep sid

这样会列出DVD里字幕的列表,你会看到什么zh,fr,en,ja等字样。
像我看的肖申克的救赎D9,列出来就是这样:

mplayer <a href="dvd://1" target="_blank">dvd://1</a> -ao null -vo null -frames 0 -v 2>&1|grep sid
[open] subtitle ( sid ): 0 language: en
[open] subtitle ( sid ): 1 language: zh
[open] subtitle ( sid ): 2 language: zh
[open] subtitle ( sid ): 3 language: zh
[open] subtitle ( sid ): 4 language: ja
[open] subtitle ( sid ): 5 language: ja


mplayer <a href="dvd://N" target="_blank">dvd://N</a> -vo null -ao -null -frames 0 -v 2>&1 | grep aid

会列出所有支持的语言,还是上面那张碟:

mplayer <a href="dvd://1" target="_blank">dvd://1</a> -ao null -vo null -frames 0 -v 2>&1|grep aid
[open] audio stream: 0 audio format: ac3 (5.1) language: en aid: 128
[open] audio stream: 1 audio format: dts (5.1) language: en aid: 137
[open] audio stream: 2 audio format: ac3 (5.1) language: zh aid: 130

这里我们感兴趣的就是language:后面的以及叫xid的东西。(后面说怎么用
mencoder的时候要用到  )

这样,我要想看我这张肖申克救赎的英文对白,中文字幕,可以:

mplayer <a href="dvd://1" target="_blank">dvd://1</a> -alang en -slang zh

那位又说了,你上面字幕叫zh的好几个,啥意思啊?
其实我也不知道,那就看看呗:除了-slang选项,mplayer还支持-sid选项,
-slang是用国家代码表示字幕的方式,而-sid是用字幕标号(就是上面的sid 0, 1, ...)
这样,我们要选第二种中文字幕,可以:

mplayer <a href="dvd://1" target="_blank">dvd://1</a> -alang en -sid 2

结果一看,是中英文双字幕,英文在上,中文在下。这样,用快进和上面那条
命令结合,你就可以选合适的东西来看了。

我这里都是缺省啦,有配置文件我也没仔细看。总是我写的都是大陆货啦。:D

3,怎么用mencoder压缩

有时候想和朋友分享DVD,但是没DVD驱动器,怎么办,没问题,可以用mencoder
把4.5G的DVD压缩成700M左右,刻成光盘,或者是放在网上下载。mencoder压缩
DVD的方法有两种,一种是dvd-to-divx脚本的三遍法。不过这种方法比较慢,而且
有好多东西无法配置,于是就找了一种单遍法,用一条命令搞定:

mencoder -alang en -slang zh -aspect 16:9 <a href="dvd://N" target="_blank">dvd://N</a> -ovc -lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=694 -vop scale -zoom -xy -640 -oac mp3lame -lameopts abr:br=128:vol=9 -o Outfile.avi

上面这里的

-alang
-slang

你可以用前面介绍的方法找出你自己需要的,也可以相应替换成

-aid
-sid

上面的

<a href="dvd://N" target="_blank">dvd://N</a>

里面的 N 就是前面用方法找出来的DVD正片的标题号,
这里面最难的是 vbitrate 的计算,不过还好有个现成的脚本可以计算这个数值,
我从linuxmedia找到的,贴在后面,稍微修改了一点最后输出的命令(因为发现
几乎所有的DVD的声音都偏小,于是,用vol参数放大了。)

这个脚本要求你输入DVD正片播放时间的总秒数,这个不难,我们可以用mplayer
来测:

mplayer <a href="dvd://1" target="_blank">dvd://1</a> -vo null -ao null

这个时候,mplayer在其控制台上会输出很多信息,类似:

A:7182.0 V:7187.0 A-V: ....

这个样子,这个就是已经播放的秒数,你可以用前面说的快进将DVD播放到接近最后
的位置,然后让DVD自然播放完毕,这样最后留下的数字就是正片总秒数。比如,我
这里压缩的兄弟连第一集,用这个方法最后得出的秒数是:

7512.5 秒

然后我们就用 dvd-ripping.sh 算一下这个 vbitrate:

dvd-ripping.sh 7513 (四舍五入)

脚本就会给你一条命令的建议,像这样:

mencoder <a href="dvd://1" target="_blank">dvd://1</a> -slang zh -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=617 -vop scale -zoom -xy 640 -oac mp3lame -lameopts abr:br=128:vol=9 -o file.avi

适当修改这条命令,比如把file.avi改成对应的文件名(我的BandOfBrother-1.avi),
再运行它,你就可以开始压缩啦。不过压缩速度因机器速度而异,我在P3 500 5速DVD
上压缩肖申克的救赎,用了8小时。:P

还有一些其它技巧,比如crop掉电影两边的黑边等等,因为比较烦琐,以后的版本再
聊吧。

引用材料:

http://dvdripping-guid.berlios.de/


dvd-ripping 脚本:

#!/bin/sh

if [ $# != 1 ]; then
echo "Use: dvd-ripping <movie size in seconds>"
echo ""
exit 1
fi

MAXSIZE=700000

SEGUNDOS=$1
MINUTOS=$(($SEGUNDOS/60))

AUDIOSIZE=$((16*$SEGUNDOS))
LIBRE=$((MAXSIZE - $AUDIOSIZE))
RATE=$((($LIBRAE*8) / $SEGUNDOS))

echo "Calculating rate for movie which lasts $MINUTOS minutes.."

echo "Estimated rate $RATE"

echo "The command is: "
echo "mencoder <a href="dvd://1" target="_blank">dvd://1</a> -aspect 16:9 -slang zh -ovc lavc \
-lavcopts vcodec=mpeg4:vhq:vbitrate=$RATE \
-vop scale -zoom -xy 640 -oac -mp3lame \
-lameopts abr:br=128:vol=9 -o file.avi"

对于用mplayer 0.9x 的用户,把 <a href="dvd://N" target="_blank">dvd://N</a> 改成:-dvd N。


http://www.pgsqldb.org

本文由hew 发布于Linuxsky 论坛,网址:http://bbs.linuxsky.org/thread-65-1-1.html

TOP

呵呵,mplayer偶现在用gmplayer,不用记那么多的命令。
mencoder偶现在用konverter,也不用记那么多的命令....[img]http://www.mnbvc.com/new/face/190.gif[/img:6b3938a2f7]

TOP

-_-||

TOP

有一次在console下黑客帝国,嘿嘿,感觉真的不错,只是只有2色,而且屏幕上都是字符在跳动,要站的远点的地方才能看的比较清楚
[b:109db82aef][url=http://www.ourlinux.net][color=red:109db82aef]碧轩[/color:109db82aef][/url][/b:109db82aef] [url=http://www.ourlinux.net]http://www.ourlinux.net[/url]

TOP

[quote="bixuan"]有一次在console下黑客帝国,嘿嘿,感觉真的不错,只是只有2色,而且屏幕上都是字符在跳动,要站的远点的地方才能看的比较清楚[/quote7]

那不就和第一集里监测屏幕以及最后Neo眼中的映像一样了? PFPF.
卖什么好呢? www.y-channel.com 博客啊~~~ www.linuxer.us

TOP

哈哈,那就差多了哦!
[b:109db82aef][url=http://www.ourlinux.net][color=red:109db82aef]碧轩[/color:109db82aef][/url][/b:109db82aef] [url=http://www.ourlinux.net]http://www.ourlinux.net[/url]

TOP

发新话题