2010年2月27日土曜日

YV12のコーデック

DGIndexにて作成したd2vファイルをテストするために、AviSynth用のスクリプトファイルを作成する。

test.avs
DGDecode_MPEG2Source("test.d2v")
保存したtest.avsファイルを、右クリック[再生]を実行する。
[実行するアプリケーションの選択]ダイアログが表示され、先達の例に従って、Windows Media Playerにて再生を試みるが”can't open file” と言われて失敗する。

次にMPC-HCにて再生を試みるがこちらも失敗する。ただ、最初に”YV12のコーデックが無い”と言うヒントをもらった。

そこで調べてみると、ffdshowにて可能であることがわかった(先達に感謝)。

[スタート]-[ffdshow]-[VFWの設定]にて「ffdshow video encoder configuration」ダイアログが表示される。
[Decoder]タブ内の左側[Codecs]を選択する。右側リスト内の一番下の[Raw video]Format行を選択して、[Decoder]プルダウンから[YV12]を選択して、変更を保存する。

再度test.avsを再生すると、今度は成功した。(パチパチ)
ついでに、VirtualDubModからtest.avsを開いてもOK!

はじめに 」にも書いたが、以前にVOBファイルからのAviSynthの利用に挑戦した時に、どーしてもうまくいかなくて挫折した。

これでやっとスタートラインに立てた。


関連記事:
はじめに
ソースの準備
ツールの準備
DGIndexによるd2vファイルの作成
YV12のコーデック

DGIndexによるd2vファイルの作成

まず、DGIndexの最新版をダウンロードする。
解凍後、DGDecode.dllをAviSynthのプラグインフォルダ(plugins) にコピーしておく。
ついでに日本語化しておく。

[ファイル]-[開く]にて、ターゲットのVOBファイルを選択する。

【設定】
詳細な解説については、ググれば、偉大なる先達たちに学ぶことができるので、以下、チラシの裏。

[映像]
  • iDCTアルゴリズム:IEEE1180準拠(バグありらしいが、高画質らしい)
  • フィールド処理:プルダウンフラグを優先する(※1)
[音声]
  • 出力形式:分離(※2)
  • トラックの選択:ダイアログにて"a0"を入力(※2)
※1
ターゲットのVOBファイルを [ファイル]-[プレビュー]する。
[Information]ウィンドウ内の、[Video Type]の表示が「Film 95%」以上であるならば、「強制フィルム」を選択する(らしい)。

※2
ターゲットがアニメなどの場合、LDPCM 2ch、48kHzで収録されている場合は、単純に「分離」を選択して、映画などAC3、多言語音声、多チャンネルなどの場合は「AC3トラックをWAVに」を選択する。
[プレビュー]した際に、[Information]ウィンドウ内の[Audio]欄に音声トラック情報が表示されており、左端の”a0”がトラックIDである。

【実行】
[ファイル]-[プロジェクトを保存して映像を分離する]を選択する。
保存するd2vファイルの保存先と名前を指定して、処理が開始される。


関連記事:
はじめに
ソースの準備
ツールの準備
DGIndexによるd2vファイルの作成
YV12のコーデック

ツールの準備

使用するツールを以下に列挙する。恐らく、今後このページの内容は、追加・修正などの編集があると思う。

(2010/02現在)
【ベース】AviSynth
【プラグイン】 DGDecode(MPEG2ソース入力)

【入力ソース】DGIndex
【YUV12デコーダー】 ffdshow


関連記事:
はじめに
ソースの準備
ツールの準備
DGIndexによるd2vファイルの作成
YV12のコーデック

ソースの準備

はじめに」に書いたが、入力ソースはDVDパッケージ品を考えている。

法律や、権利者の権利を侵すつもりは無いので、どうやってエンコのためのソースを準備するのかは、私は知らない。だから、よくありがちな注意書きや警告文は、ここでは書かない。
だが、一応、触れておく。私は、エンコした動画ファイルは他人には見せない

さて、入力ソースの準備とは言っても、いつの間にかVOBファイルが存在していることになっている。
このVOBファイルは、分割されていない、結合済みのファイルであり、お話し1話分が1ファイルとなっている。


関連記事:
はじめに
ソースの準備
ツールの準備
DGIndexによるd2vファイルの作成
YV12のコーデック

はじめに

以前から興味のあったエンコ職人への道を踏み出すことにした。

今まで、それっぽいことをチマチマやってはいたが、ひょんなことから、以前に挫折した時のハードルを越えられたので、今回はチラシの裏に記録を残しつつ、気長に取り組んでみたいと思う。

【目標】
エンコ職人とは言っても、以下の目標に特化した職人を目指すつもり。
  • DVDパッケージ品をソースとした、H264(x264)によるエンコード
  • ターゲットはPSP用mp4ファイル
  • 最高画質(主観)を目指す(ファイルサイズは無視)
入力ソースはDVDパッケージをターゲットとしているので、放送メディアのソースに比べて、
  • アナログソース向けのテクニックは適用外とする(アナログ放送、VHS、LD など)
  • 録画用テクニックを不要とする
  • ロゴ消し、CMカットなどのテクニックを不要とする
などが考えられる。
上記の~用テクニックとは、 信号線に対するケア、特別なデバイスドライバの準備、キャプチャ用ボードの準備、必要なツールの準備とその習熟などのことである。

ターゲットはPSP用動画としているので、DVDの720x480から、PSPの480x270へのリサイズ時の最高画質を狙う。
また、気が向いたらケータイ用動画(所有の機種に限定)の作成にも挑戦してみたい。

画質優先、サイズ無視としているのは、記録メディアであるメモリの大容量・低価格化のためと、エンコードのための計算資源(CPU、メモリ、HDD)が潤沢であるためである。
現在のPSP用メモリは8GB(約3,000円)、ケータイ用メモリはmicroSDHC Class6 4GBを入れてある。
エンコ用機材は、Phenom X4 9950BE、メモリ4GB、Vista 32bitである。


関連記事:
はじめに
ソースの準備
ツールの準備
DGIndexによるd2vファイルの作成
YV12のコーデック