動画ファイルの詳細な情報を調べてくれるMediaInfoを導入してHandBrakeでわかりにくい設定のprogressive/interlace, decomb, detelecine等の指定を行ってみるメモ。
detelecine, decomb, detelecine関係で参考にしたのは某巨大掲示板の情報
ここには
- 60i -- deinterlace, fps = 29.97
- 30p -- fps = 29.97
- 24p pullldown 60i (ハードテレシネ) -- detelecine+decomb, fps = same as source
- 24p pulldown 2:3 (ソフトテレシネ) -- fps = 23.976
- 混合 -- detetecine + decomb (or deinterlace), fps = same as source
- 再エンコード -- fps = same as source
Ubuntuでは"sudo add-apt-repository ppa:shiki/mediainfo"してapt-get update && apt-get install mediainfoで。MacではGUI, CLIが別々なので両方インストール。
これに動画ファイルやVOBファイルを処理させると詳細な情報がわかります。個人的にCLIな人なので以下の様な感じで調査。
> mediainfo <path to vob>/VTS_01_*.VOB |egrep '^(Scan|Frame|Complete)'
Complete Name : ....
Frame rate : 23.976 fps
Scan type : Progressive
Scan order : 2:3 Pulldown
他のものでは
> mediainfo <path to vob>/VTS_01_2.VOB |egrep '^(Scan|Frame|Complete)'
Complete Name : ....
Frame rate : 29.970 fps
Scan type : Interlaced
Scan order : Top Field First
等と表示されます。VTS_01_2.VOBあたりが妥当でしょうか。Scan typeなどがでない場合は他のものを処理。他にも各種動画ファイル、VIDEO_TSを含むフォルダなども処理出来ます。手持ちにHDのソースがないのでほとんどが上の2つのパターンでした。
一番多いパターンは1つめの23.976+Progressive+2:3 Pulldownでdecomb,detelecine等の処理無しで大丈夫、Interlacedの場合にはdecombやdeinterlaceを適用。ものによりdetelecine。面倒臭いのでfpsはsame as sourceで。2以降でfpsが混在しているようならdecomb+detelecineで。後は好みにより--denoise weak。
追記: 上と同じようなことをする超適当なスクリプトをちょろっとでっち上げ。dcheck.sh等として保存してchmod +xしてパスを通しておいて下さい。
#!/bin/sh
tmpfile=/dev/shm/dt$$.tmp
mediainfo `find $1 -type f -size +500M` | egrep '^(Scan|Frame)' > $tmpfile
fgrep -q 29.97 $tmpfile && echo -n --detelecine " "
if fgrep -q Interlaced $tmpfile; then
if fgrep -q Progressive $tmpfile; then
echo -n --decomb
else
echo -n --deinterlace slow
fi
fi
rm $tmpfile
使い方は
- HandBrake -i /hoge/foo `dcheck.sh /hoge/foo` ...etc...
500M以上のファイルを調べ、29.9fpsの場合detelecine、InterlaceとProgressive混在はdecomb, Interlaceの場合はdeinterlace, それ以外は何も無しというオプションを表示します。適当すぎて悲しいのと、調べるのに少し時間がかかります。いずれちゃんとしたものを作ろうと思いつつ。