« 必要なインターフェイスは? | メイン | インターフェイスを調べるも良くわからず »

2005年10月07日

吉里吉里 ムービー拡張日誌2:: Vorbis + TheoraのOgg動画ファイルを作る

    

昨日Theoraのことを書いたが、kikyou.infoさんのところの日記でも、Theoraを標準にとしてTheoraのことが書かれていた。
で、なんとなくトラックバック。
この辺りについてどのように考えていたかなどについては、また別エントリーにする予定。

最近、いくつか動画をWMVファイルにエンコードをしていたが、エンコードが異様に重い。
もうちょっと速いのがいいなぁとMPEG4やTheoraを検討。
MPEG4も、結構重かった記憶があるので、Theoraについて調べてみようと思ったが、何を使ってエンコードすればいいのか良くわからないってことで、GraphEditを使い、手動でフィルタグラフを構築してエンコードすることにした。
で、Directshow Filters for Ogg Vorbis, Speex, Theora and FLACを入れようとしたら、すでにインストールされてた。
1個古いバージョンだったが、とりあえずそのまま進めることにした。

GraphEditで作ったフィルタグラフは、次のようなもの。

Oggエンコードフィルタグラフ

WMVファイルを読んで、Ogg(Vorbis+Theora)ファイルを作っている。
で、再生してしばらく待つと、GraphEditが落ちた。(笑
でも、oggファイルは出来ていて、最後までエンコードも出来ているようだ。
まあ、DX9 SDKに付いているGraphEditはなぜかよく落ちるので、落ちたのはまあ気にしないことにする。(DX8に付いているGraphEditの方がなぜか安定している)

このことから、DirectShowのフィルタで読めるデータは、Ogg動画ファイルに出来そうだ。
また、エディタなどでもプラグインなどで出力フォーマットを増やせるのであれば、DirectShowを利用してダイレクトにOgg動画ファイルに出来そう。
現状Theoraがalpha版なので、サポートしているツールがどの程度あるかは謎だが。

エンコード時間を計るために、SSE2版へコンポーネントをインストールしなおして、フィルタグラフを作りエンコードしてみたら…… 途中で落ちた。
やっぱり、途中で落ちることもあるのか。
でも、コンポーネントのリリースされた時期を見てみると、まだlibtheoraはalpha5ではないよう。
この辺りを差し替えるともう少し安定するかもしれないな。
後、Theoraのクオリティなどをまったく設定できないのも難点。
Vorbis側はプロパティページを実装していて、ある程度設定できるようではあるが。
で、肝心の時間は、70%ぐらいまでしかエンコードできていないものの、15分程度で終わった。
640*480 約24分の動画をTMPGEnc 3.0 XPressで1パスVBRでWMVへエンコードした時は4時間弱もかかったのに。
換算すると約12倍ぐらい速い。
これは期待が持てるなぁ。
と思ったが、途中で終了した動画の時間を見ると16分ぐらいだった。
つまり、リアルタイムでエンコードされてた?
CPU負荷は、Pen4 3GHz 60%ぐらいだった。
もしかして、もっと速くエンコード出来る?
まあ、TMPGEnc 3.0の方ではインターレース除去などもしているので、まったく同じ状況だとは言えないが、WMVよりかなり速そうではある。ドロップフレームがあったのかもしれないけど。

このエンコード速度は結構期待できるかも。
エンコーダー作ろうかな。



投稿者 Takenori : 2005年10月07日 23:19




comments powered by Disqus
Total : Today : Yesterday : なかのひと