2006年08月26日

x264 = libavcodec H.264

【概要】x264とFFmpegのlibavcodec H.264は同じもの

MEncoder-users mailing list から。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜試訳ここから。太字オレ。
Re: [MEncoder-users] vcodec=h264

2006/08/22(火), Nicolas George wrote:
私は最近、-lavcoptsのvcodecオプションが、"h264"を 受け付ける事に気が付いた。
そこで以下のような疑問を持った。

- 何故これは現在の man(最新のSVN)に載っていないのか? 単純な見逃しか、それとも何かドキュメント化されていない目的があるのか?
 -ovc x264 で同じ事ができる。こちらの方が良い手段。なので ドキュメント化されていない。
- (-lavcoptsの vcodecで)4x4mvのように、H.264固有のオプションを指定する方法はあるか?
 -lavcoptsはH.264固有のオプションを扱えない。
- Is it a call to x264? A fork of x264? A new implementation from scratch?
 The log at the end certainly looks like the one from x264.
これはx264を呼び出すものか?x264のフォーク(派生物)か? 新たに書き起こされたH.264準拠のコデックか?
最後に出るログはx264のように見える。
 x264の呼び出し。

--Loren Merritt

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜試訳ここまで
補足:
  • Loren Merritt:x264開発者。
  • MEncoder、-lavcopts vcodec以下のオプションはffmpegのそれと非常によく似ている。とゆうか同じに見える。たぶんlibavcodec の呼び出しだと思うが、全てを網羅しているかは不詳。
  • /usr/local/bin/以下にlibavcodec.aや同.dylib、その他の拡張子は見当たらない。 MEncoderのバイナリ内部に組み込まれる模様(FFmpegのビルドは未成功なので)。
走り書き:
  • VLC/MPlayerはデコード用コデックにlibavcodecを使用。x264.aは使いようではデコード能力も持つ? (当たり前?)。
    • /System/Library/QuickTime/QuickTimeH264.component/の代替物が出来得 る?
    • /System/Library/QuickTime/QuickTimeH264.component/Contents/MacOS/QuickTimeH264 は56KB。
    • /usr/local/lib/libx264.a (svn-558M)は792KB。
  • libavcodec mpeg4 vs. Xvidの構図はXvid AVCが出て来るまで無い。その後どうなったのか?
  • FFmpegはやはりSNOWに注力しているくさい。
    • 90年代初頭に大学や研究所クラスは研究対象をDCT(離散コサイン変換)からDWT(離散ウェーブレット変換)に移した。 理屈はどちらも未理解。DWTの成果はJPEG2000。JPEGとの普及差は圧倒的でデフォ対応はMac OSXのみ。MPEG系はMPEG-1以降 ずっとDCT。AVC検討段階でDCT以外のより新しい方式に転換するメリットは無いとの結論が出ていることから、DWTも検討候補には上がっていたもよ う。
posted by ばる at 00:00| Comment(1) | TrackBack(0) | mencoder | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
mplayer/mencoderは、デコード用にlibmpcodecs.a、エンコード用にlibmpencoders.aという内部的なライブラリを使用します。具体的な内容については、
http://svn.mplayerhq.hu/mplayer/trunk/libmpcodecs/
を参照してください。ちなみに、libmencodersというディレクトリはありません。
ファイル名の先頭の"a"は音声、"v"は映像で、2文字目の"d"はデコーダ、"e"はエンコーダです。
libavcodecは様々なコーデックを扱う事が可能ですが、mplayer/mencoderから見た場合、libmpcodecs.aやlibencoders.aで提供されるコーデックの一つとして扱われます。その実体は、ad_ffmpeg.c、ae_lavc.c、vd_ffmpeg.c、ve_lavc.cの4つのファイルです。
これとは別にve_x264.cも存在しますので、mencoderはlibx264を利用したエンコードを行う際に、-ovcオプションで直接x264(ve_x264)を指定する方法と、-ovcオプションでlavc(ve_lavc)を指定して、lavcコーデックの詳細を指定する、-lavcoptsでvcodecとしてh264を指定する方法の2つの方法を持つ事になります。
実際のところ、libavcodecがあまりにも沢山のコーデックをサポートしている為に大抵のコーデックは上記のような2つの指定方法を持っていますし、libavcodecを経由しないと指定できないコーデックも結構あります。
ですから、例えば -oac lame で問題が発生した場合、代わりに-oacにlavcを指定して、-lavoptsのacodecでLAMEを指定して問題を回避するというのも一つの方法という事になります。
Posted by 通りすがり at 2006年08月30日 02:22
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。