Page Actions
Wiki Actions
User Actions
Submit This Story

Mplayer和Mencoder对DVD的播放与抓取

老婆又下达任务了,这次是要把同事借给她的港剧DVD抓到iPodTouch里. 因为是土制港剧集成DVD,声道选择应该可以无视.基本步骤是这样滴…

播放

mplayer 播放dvd基本是这样的:

mplayer dvd://

用下来发觉我电脑里这样找不到碟,原来要指定以下设备:

mplayer -dvd-device /dev/sr0  dvd://

字幕要看一下… 用mplayer 的 -identify参数可以获得一些基本信息. 包括有几个章节,哪些字幕可选.

#!/bin/bash
mplayer -dvd-device /dev/sr0  dvd:// -identify -frames 0 -vc null -vo null -ao null

播放一段试试看,指定开始和结束章节和字幕1:

#!/bin/bash
mplayer -dvd-device /dev/sr0  dvd://$1-$2 -sid 1

好了,可以正常播放了, 接下来的事情就交给mencoder/ffmpeg了.

抓取和转码

mencoder和mplayer共享很多参数,基本就是这样的

#!/bin/bash
mencoder -dvd-device /dev/sr0 dvd://$c -o $c.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4 -quiet

根据参数转某个章节

这里没有直接转码成iPhone/iPodTouch需要的h264.因为我实在对自己的mencoder解码参数没有信心, 以前blog过,效果不怎么好,写出来因该是这样的:

#!/bin/bash
mencoder -dvd-device /dev/sr0 dvd://$c -o $c.mp4 -vf scale=480:320,harddup -of lavf -lavfopts format=ipod -alang en -sws 2 -oac faac -faacopts br=128:mpeg=4:object=2:raw -srate 44100 -ovc x264 -x264encopts bitrate=800:nocabac:level_idc=30:bframes=0:global_header:threads=2:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh

还是ffmpeg顺手些,先弄成avi再用ffmpeg转吧,最近用的比较多的参数:

#!/bin/bash
ffmpeg -i "$1" -acodec libfaac -ab 192k -ar 48000 -vcodec libx264 -b 768k -s 480x320 -aspect 3:2 -r 26 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method dia -subq 1 -trellis 0 -refs 1 -bf 16 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 500k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -threads 0 -f mp4 -y $1_iphone.mp4

这里没有考虑DVD的切割,音轨等问题,网上有好多高人说的详细的多…

Windows的话,ffmpeg,mplayer,mencoder的参数是没区别的,就是DVD设备路径不同而已. Windows的上述软件的binary也是很好找的…

Discussion

Enter your comment
 
 
blog/2010/03/mplayencoder_dvd.txt · Last modified: 2010/03/11 02:41 by MeaCulpa     Back to top
Recent changes RSS feed Creative Commons License Powered by PHP Driven by DokuWiki