TV番組(主にアニメ)を長期間保管するとき、tsファイルのままでは大きすぎるのでエンコードを行います。その設定は様々ありますが、どのフォーマットに統一するのがいいのか見直しました。
いきなり結論
ぐだぐだ書く前に手っ取り早く結論を書きます。
- 1280×720ドット
- 23.98fps
- 1400kbps
- Video:x264コーデック
- Audio:AACコーデック
をこれからの自分フォーマットに決めました。
決定理由
まず大前提として自分はそれほど映像についての画質、音質にコダワリがありません。手をかけずにエンコードでき、なおかつ気にならない品質で見れる事が一番重要です。
元映像フォーマット
TV放送をそのまま(TSファイル)で録画すると、おおよそ
- 1440×1080ドット
- 30fps
- 約15Mbps
というフォーマットのファイルができます。30分番組だとサイズにして約3.5GB。ただし、これは通常の実写番組の値であり、テレビ放映アニメに関しては約24fpsというのが通説の様です。
アニメは24fpsでエンコードすべきですか?それとも23.98fpsでエンコードすべきです… – Yahoo!知恵袋
これを見ると「23.98fps」が良いみたい?
思い切ってサイズを切り詰める
これを今までの方法(iPhone用動画に使うFFmpegにはキマリがある | 徒労日記)にあるH.264高画質プロファイルでエンコードすると上記ファイルは約700~800MBになります。あまり小さくなっていない上に、動きの激しい場面で何かインタレースの様な横すじが入る様な気もする。
そこでどんなファイルフォーマットがネットに流通(笑)しているかググってみた。すると多くのファイルは「1280×720、1500kbps」である事が判明。これにすれば大体30分番組で200MB~300MBほどに収まるみたい。
BonTsDemuxへ設定する
「みんなが使っているから」というなんら根拠のない値に決まりましたが、使ってみるとフル画面拡大時の悪化も気にならず好感触。これをTVRockのバッチ処理で実行するため、BonTsDemuxを変更します。
■ファイル”cap_sts-sea”
anime_X264_HIGH_HD720 =-s 1280x720 -aspect 16:9 -threads 0 -r 23.98 -vcodec libx264 -flags +ilme+ildct -top -1 -deinterlace -vpre "c:\bon\BonTsDemux\libx264-hq.ffpreset" -b 1400k -acodec libfaac -ab 128k -ar 48000 -f mp4 -y anime_X264_HIGH_HD720_EXT =mp4
2012/08/25 追記
インターレース対応の為、” -flags +ilme+ildct -top -1 -deinterlace”を追加して運用中
■ファイル”libx264-hq.ffpreset”
coder=1 flags=+loop+ilme cmp=+chroma partitions=+parti8x8+parti4x4+partp8x8+partb8x8 me_method=umh subq=8 me_range=16 g=150 keyint_min=25 sc_threshold=40 i_qfactor=0.71 b_strategy=2 qcomp=0.6 qmin=10 qmax=28 qdiff=4 bf=4 refs=4 directpred=3 trellis=1 flags2=+bpyramid+wpred+mixed_refs+dct8x8+fastpskip
BonTsDemuxフォルダにあるcap_sts_sea.iniファイルに”anime_X264_HIGH_HD720″プロファイルを追加しました。冒頭の通り解像度を1280×720へ、ビットレートを無指定から23.98fps固定へ、ビットレートを1400kbpsへ。又、x264の高画質パラメータは複雑なので別ファイル”libx264-hq.ffpreset”に入れて同じフォルダに置きます。
アニメのフレームレートは?
冒頭の「アニメは23.98fps」は本当なのか迷ったので無指定と23.98fps固定の両方でエンコードしてみました。テストファイルはBS-TBSのアニメ「アイドルマスター」をTssplitterで本編のみに分離したもの。
これは無指定。ffmpegの自動判別では30fpsと判定されるようです。
CM抜いてエンコードしても30fpsになるならアニメも30fpsなんじゃないの??と疑問が沸きます。それともアイマスが30fpsなだけ??ただ実際の映像を見比べても30fpsと24fpsの差はわかりませんでした。また、ファイルサイズが同じなので23.98fpsの方が総コマ数が4/5=1.2倍綺麗なハズ!その点も注意してみましたが、同じく差はわかりませんでした。
つまるところ大した差は出ないので、みんなが使ってるフォーマットにあわせてるのが一番無難だよね!なんという日和った結論。
はじめまして、こんにちは。
こちらの設定を使わせてもらったのですが
動きの激しい場面でインターレースの縞々がでてしまいます。
もしかしたらcmカットしてないことが原因かもしれません。
ぶっちーさんがエンコードした動画は問題ないでしょうか?
▽ぷっちょさん
自分は普段CMカットなしでそのままエンコードしていますが、
明らかに縞模様と分かるようなノイズは出ていませんね。
激しい場面限定という事であれば、データよりも表示の問題な気もします。
デコーダとプレーヤを換えてみて、変化がでるかで切り分けてみては
いかがでしょうか。スマフォなどの別プレーヤで判断するのも有りかと。