みるくとはちみつの予定調和: 11/11

2011-11-30

とあるiOS用の動画圧縮(エンコード)

前々から、HandBrakeの設定で備忘録を兼ねてエントリーをしようと思っていたのだが、勉強不足もあってなかなか書くことができなかったのだが、なんとなく納得いったので書いてみる。
 目的としては、iOS機器(iPhone4、iPad、AppleTV2)での再生ですのでデータ容量と画質で自分のバランスにあった所に落ち着いております。

 この記載されている設定にたどり着くまで、インターネットで検索して他のサイト様や2ちゃんねるのHandBrakeスレを参考(という名のそのまま流用)したりしてます。ほんと、皆様ありがとうございます。


【注意】
・これから説明する設定はあくまで自分自身で視聴するための設定なので真似をして何か不具合があっても当方は関知いたしません。
・説明が間違っている場合があるとおもいますが、こちらもおぼろげに把握しれいるものなのでご了承ください。
・Blu-rayや地デジをHandBrakeで読み込み出来るようにする方法はここでは紹介しません。
・以降説明はすべてMacOSXを対象にしています。

以上注意でした。

【共通設定】
 Video Codec:H.264(x264)
 Large file size:オン
 Framerate(FPS):Same as source
 2-pass encoding:オン
 Turbo first pass:オン
 Keep Aspect Ratio:オフ
 Anamorphic:None

 Large file sizeは仕上がりファイルが2GBを超える時にチェックを入れるものらしいが、とりあえず2GB以下でもチェックが入ってて再生に問題ないので常時入れっぱなし。
 Framerate(FPS):Same as sourceにしているのは手抜きです。ソースのFPS調べるのが面倒なので。
 Qualityに関してConstant Qualityを選択してVBRにした方が仕上がりとファイルサイズの効率はいいのだろうがモバイルデバイスの為にファイルサイズを押さえる必要があるので固定ビットレートを使用しています。(VBRでの設定を追い込んでいないといる理由もある)
 VBRではないので2-passを使用して出来るだけ高画質に。Turbo first passに関してはおまじないレベルで使ってます。
 Keep Aspect RatioとAnamorphicは解除してオプションで指定。



【Blu-rayの場合】
 Average bitrate(kbps):2000
 Output:1280×720
 Current x264 Advanced Option String:
  ref=2:bframes=2:subq=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0

 ビットレートの2000はソースによってはビットレートは足りずにブロックノイズを発生させますが、アニメの圧縮なら問題ありませんでした。(ブロックノイズ発生も、苦手なグラデーション部分とか)
 ソースの解像度は1920×1080。アスペクト比の問題がないのでそのままスルーっとスルー。
 出力の解像度は1280×720のHDTVサイズ。



【DVD 16:9の場合】
 Average bitrate(kbps):1600
 Output:720×480
 Current x264 Advanced Option String:
  ref=2:bframes=2:subq=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0:sar=40/33

【DVD 4:3の場合】
 Average bitrate(kbps):1500
 Output:720×480
 Current x264 Advanced Option String:
  ref=2:bframes=2:subq=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0:sar=10/11
 
※DVDの場合はソースによってDeinterlaceをON/OFFしてください。

 さて、DVDは面倒くさいアスペクト比の問題があります。
 通常DVDは720×480という解像度に「16:9で再生しろ」「4:3で再生しろ」などと指示がありDVD再生ソフトがその指示通りにアスペクト比を変更して再生しているそうです。
 上記の設定だと、DVDの再生と同じようにDVDのソースをそのまま圧縮してアスペクト比の指示を追加してあげています。アスペクト比の指示部分がOptionのsar=**/**と言う所です。だもので、再生ソフトによってはこの指示が無視されて720×480で表示するって事もあるそうです。(iOSとMac、VLCではちゃんと指示通りで再生することを確認しています)



 以上、簡単ではありますが備忘録を兼ねたHandBrakeの設定でした。