«前の日記(平成23年4月12日(火)) 最新 次の日記(平成23年5月16日(月))» 編集

愚痴口

grep: [ RSS | 画像一覧 ] [ Twitter | Twilog | favolog | 愚痴愚痴口@はてなD | 青い栞@はてなB | 器用貧乏Wiki | 制作者紹介 ]


平成23年5月13日(金)

PT2録画なTSファイルのx264エンコード手順がようやく固まったような気がしないでもない件について(追記あり)

PT2購入から3ヶ月強が経過しましたが、その間考えなしに適当に試行錯誤を繰り返したところ、無駄に手間と暇とを費やす羽目に陥ったのは必然と言うべきでしょうか。それでもどうにか作業手順が固まってきたような気がしないでもないので、とりあえずメモしておくテスト。

平成23年6月5日追記
2011年4月以降?にBS11で録画したファイルをDGIndexにかけると必ず、正常でないaacファイルが出力されるようになってしまいました。しかも音声遅延補正値だけ使おうとしても音がズレます。なのでBonTsDemuxを使う手順に変更しました。
更に、「録画したtsファイルそのもの」と「BonTsDemuxで出力した補正値付きのaacファイル」との組み合わせだと音がズレる事があったので、「BonTsDemuxで出力したm2vファイルと補正値付きaacファイル」を使う手順に変更しました。

基本方針としては以下のような感じで。

  • インターレースは保持、サイズとフレームレートの変更もしない。
  • AAC音声は再圧縮しない。
  • フィルタ適用は程々に。
  • x264エンコード設定についてはあまり弄らない方向で。

なお、アニメ以外は現状考慮外ですので悪しからずご了承ください。

前置きとしての色空間(色の表し方)のお話

動画処理の際に取り扱う色空間は、輝度(Y)と色差(Cb,Cr)の三つの情報で表現する「YCbCr」ですが、三原色の組み合わせで表現する「RGB」との相互変換を処理の過程でやると色情報が劣化するらしく、極力YCbCrのままで処理する必要があります。

色空間の取り扱いを誤ると、出力前と後とで映像の色が違うという悲劇が生じますので注意しましょう。

というわけで以下手順。各ソフトの使用法等の細かい手順は殆ど端折ってますので、検索するなりreadmeを読むなりして下さい。

手順1:DGIndexBonTsDemuxでAAC音声映像と音声を分離

ここでは主として音声遅延の修正情報取得のために使います。共に出力されるd2vファイルは使いません。「Demux(m2v+aac)」で分離すると、m2vファイルと共に遅延補正値付きのaacファイルが出力されます。

AVSファイルを出力してavisynth経由でAviUtlに読み込ませるのも一つのやり方ではあります。ただ、先日WOWOWで録画した『涼宮ハルヒの憂鬱』の第1話をこの方法でエンコードしたところ、DXVA再生でインターレース解除に失敗する動画が出来てしまったので、この手順はやらないことにしました。

手順2:FakeAacWavで音声遅延を修正した偽装WAVファイルを作成

手順1で出力したaacファイルのファイル名には音声遅延の補正値が書かれており、FakeAacWavに突っ込んで処理してやると遅延修正までしてくれます。

ちなみにこの時、「正常でないAACファイル」として警告が出ることがあります。このファイルを使って作成した動画では音声が途切れたりすることがあったので使わない方が良いでしょう。tsMuxeR等を使って元のTSファイルからaac音声を分離し、ファイル名をDGIndex出力のもの(遅延補正値の書かれたもの)に変更してやると代わりになるようです。

手順3:AviUtlで編集してx264出力

導入しておくもの
手順3-1:TSファイルと偽装WAVファイルを読み込み

「MPEG-2 VIDEO VFAPI Plug-In」を入力プラグイン(m2v.aui)として使用し、TSファイルをそのままBonTsDemuxで出力したm2vファイルを読み込ませます。色空間はYCbCr(YUY2)になります。m2vconf.exeでプラグインの動作設定が出来ますが、「アスペクト比」を「無視」にしておかないと編集時のシークがかなり遅くなります。

手順1で出力したd2vファイルをそのまま(つまりDGVfapi.vfp経由で)読み込ませるとRGBに変換されてしまうので気をつけましょう。色空間の確認は「その他 - ファイルの情報」の「ビデオ展開形式」で。

「設定 - 色変換の設定」は入力・出力共に「自動」にしておけば良いような気がします。

若しくは補間なし平均プラグインを導入して「補間なし平均(内部BT.709)(自動)」にしておけば、BT.709でストレートに取り扱えます(AviUtl内部では通常BT.601になる)。

次いで「ファイル - 音声読み込み」で偽装WAVファイルを読み込みます。忘れると無音ファイルが出力されて悲しい想いをするので気を付けましょう。

手順3-2:CMカット・チャプター編集

CM等の不要部分を選択して「選択範囲の削除」をするわけですが、「時間ジャンプ」「ジャンプウィンドウ」等のプラグインを導入しておくと作業が楽になります。また「チャプター編集」を導入しておいて、同時にチャプター情報入力もすると良いでしょう。

シーンの切り替わり直後のコマでチャプター設定すると、チャプター移動時に前のシーンのコマが表示されたりしたので、切り替わりから3コマ目あたりに設定するようにしています。Bフレームの影響?

手順3-3:ビデオフィルタ設定

フィルタの適用については、増やせば増やすほど処理時間も増大するので程々にしましょう。ということで、以下の2つのフィルタのみ適用することにしました。

  • エッジレベル調整
    • 輪郭を強調します。
    • デフォルト設定だと若干シャープになりすぎる気がしないでもないので、「特性:7」で。
    • ノイズ表示プラグインで見てみると「閾値:37」以下でノイズが増加してる事が多い気がしないでもないので、輪郭のみ処理するにはとりあえず「閾値:40」で良いんじゃないでしょうか。
    • 黒補正、白補正は共に「0」のままで。
  • NL-Means Light
    • ノイズを除去します。
    • ウチの環境はGPUがオンボードでしょぼいのでこちらを使います。GPUに自信ありな人は「NL-Means Light for GPU」を使うと良いでしょう。
    • 設定はあまり考えなしにデフォルトのまま(「範囲:2」「分散:40」「ガウシアン重み有効」)で。

各設定値については元動画次第で微調整するのが良いと思います。まあ私は手抜きであまり調節しない気がしますが……。

手順3-4:x264エンコード設定

「ファイル - プラグイン出力 - 拡張 x264 出力(GUI)Ex」でx264エンコードします。問題はエンコードオプションの設定ですが、あまり分からないのでデフォルト値を基本にしつつ各種解説サイトを参考にしつつ適当に設定して、「拡張 x264 出力(GUI)Ex」の設定画面に出てくるコマンドラインが以下のような感じになりました。

--preset medium --crf 23 --aq-strength 0.6 --psy-rd 0.4:0 --ipratio 1.5 --qcomp 0.8 --qpstep 12 --scenecut 60 --keyint 15 --tff --direct auto --me umh --merange 24 --level 4.1 --sar -16:-9 --colormatrix auto --psnr --ssim --vbv-maxrate -1 --vbv-bufsize -1

後は何となく「--nal-hrd vbr」を付け加えるくらいで。

以下、要点を列挙。

  • 画質設定はシングルパス品質基準VBR、設定値はデフォルトのまま「23」で。
  • シークの素早さを最優先して、「キーフレーム間隔の上限」を「15」に。
    • その分ファイルサイズ三割増しくらいになりますが気にしない方向で。
  • インターレース保持。設定はHD動画の場合まず確実にtffになる模様。
  • DXVA再生支援対応の為、「H.264 Level」は「4.1」に。
  • Bフレーム関連はデフォルトのままで。
    • なので再生時に2フレーム遅延します。edts対応の再生環境を用意しましょう。
手順3-5:エンコード実行

ここまで来てようやくエンコードと相成るわけですが、上の設定で24分程度のアニメ1話をエンコードするのにかかる時間は、当方の環境(PhenomII X4 945 / Windows7 64bit)で大体1.5~2時間弱。6~7fpsくらい? フィルタを一切適用しなければ実時間くらいですが、それはそれで何だかアレなので。

ちなみに、d2v直接読み込みやavisynth経由読み込みでやっていた時は5~6fpsくらいだったので、m2v.auiを使うようになってスピードアップしたのかも知れません。

64bit環境に32bitなAviUtlという組み合わせですが、64bit版x264.exeで問題なくエンコードできている気がします。

画質的にはエンコード後の動画を見て判断して下さい。数値的には、SSIMを出力するようにしておいて値が0.99を超えてればまあ良いのかな的な。

まとめ

もうそろそろトラブルに起因する試行錯誤は勘弁して欲しいところです。


ナビ

H16 (2004) |01|02|03|04|05|06|07|08|09|10|11|12|
H17 (2005) |01|02|03|04|05|06|07|08|09|10|11|12|
H18 (2006) |01|02|03|04|05|06|07|08|09|10|11|12|
H19 (2007) |01|02|03|04|05|06|07|08|09|10|11|12|
H20 (2008) |01|02|03|05|09|10|11|
H21 (2009) |01|02|
H22 (2010) |01|05|07|08|10|12|
H23 (2011) |01|02|03|04|05|06|07|08|09|10|12|
H24 (2012) |01|03|06|07|10|11|
H25 (2013) |03|05|06|08|
H26 (2014) |02|05|
H27 (2015) |08|
H28 (2016) |02|08|11|
H29 (2017) |01|03|04|06|07|
H30 (2018) |01|03|04|
«前の日記(平成23年4月12日(火)) 最新 次の日記(平成23年5月16日(月))» 編集

カテゴリ一覧

2ch | 64bit | Android | AviUtl | BitChannel | CSS | DOS | Debian | Delphi | F1 | Firefox | IS06 | Java | Linux | ML115G1 | MediaPlayerClassic | OggVorbis | OpenVPN | Optio43WR | PHS | PT2 | Rockbox | Ruby | Samba | Sansa Clip+ | TV | UPS | WILLCOM | WX320K | Web | Windows | YouTube | android | iriver T60 | rsyslog | tDiary | x264 | のみもの | アニメ | ガールズ&パンツァー | ゲーム | コミケ | コーヒー | サッカー | サーバ | スマートフォン | セキュリティ | ソフト | ソフトウェア | デジタル放送 | トラブルシューティング | ネタ | ネット | ネットサービス | ネットワーク | ノリ | ハード | ハードウェア | プライバシー | マスコミ | マスゴミ | メモ | 仮名遣 | 伊達 | 写真 | 動画 | 動画作成 | 動画再生 | 勢ひ | 只今試験中本日は晴天なり | 国語 | 地震 | 大分 | 天文 | 天気 | 富野 | 感想文 | 政治 | 旅行 | 映画 | 時事 | 更新履歴 | 書籍 | 模型 | 漫画 | 独り言 | 玄箱 | 生活 | 自作PC | 自宅サーバ | 艦これ | 著作権 | 読書 | 買物 | 通販 | 選挙 | 酔狂 | 録画 | 雑記 | 韓国

奥付