WebMはきてるか?

動画の世界で何かと話題のWebM(libvpx)ですが、どうなんでしょうか。H.264より性能は少し落ちるという話ですが、特許の問題がないのであれば、少しくらい落ちてもいいかなとは思ってます。Theoraも期待してたんですがそれほど来なかったですね。diracとかschoedingerなんてのもありましたが、やはり来なかったです。WebMはどうなのか?

プレイヤーではvlc(1.1.0)がすでに対応してますし、ffdshowもそのうち対応すると思います。エンコーダはffmpegが対応済みであると。実際にlibvpxとffmpegを使ってみました。Fedora 13のlibvpx/libvpx-develは古いようなので、gitで最新の状態を取ってくる。

  • git clone git://review.webmproject.org/libvpx.git
  • git clone git://git.ffmpeg.org/ffmpeg/
  • cd ffmpeg
  • git clone git://git.ffmpeg.org/libswscale/
  • cd ../libvpx
  • ./configure
  • make
  • sudo make install
  • cd ../ffmpeg
  • ./configure –enable-lib{vpx,vorbis,dirac,gsm,mp3lame,openjpeg,schoedinger,theora,x264,xvid} –enable-gpl –extra-ldflags=-L/usr/local/lib
  • make
  • ./ffmpeg -i /path/to/file.avi out.webm

エラー。

  Duration: 00:02:06.99, start: 0.000000, bitrate: 8842 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640×480, 30 tbr, 30 tbn, 30 tbc
    Stream #0.1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[ffmpeg_output @ 0x144b4a0] auto-inserting filter ‘auto-inserted scaler 0’ between the filter ‘src’ and the filter ‘out’
[scale @ 0x1481fd0] w:640 h:480 fmt:yuvj422p -> w:640 h:480 fmt:yuv420p flags:0xa0000004
[libvpx @ 0x1447030] v0.9.1-18-gf1a3b1e
[libvorbis @ 0x14476a0] oggvorbis_encode_init: init_encoder failed
Output #0, webm, to ‘/tmp/out.webm’:
    Stream #0.0: Video: libvpx, yuv420p, 640×480, q=2-31, 200 kb/s, 90k tbn, 30 tbc
    Stream #0.1: Audio: libvorbis, 8000 Hz, 1 channels, s16, 64 kb/s

1 channel(mono)の8000Hzがダメなのかと思って2 channelにしてみても、

  • ./ffmpeg -i /path/to/file.avi -ac 2 out.webm

今度は違うエラーに。

  Duration: 00:02:06.99, start: 0.000000, bitrate: 8842 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640×480, 30 tbr, 30 tbn, 30 tbc
    Stream #0.1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[ffmpeg_output @ 0x2ab04a0] auto-inserting filter ‘auto-inserted scaler 0’ between the filter ‘src’ and the filter ‘out’
[scale @ 0x2ae6fd0] w:640 h:480 fmt:yuvj422p -> w:640 h:480 fmt:yuv420p flags:0xa0000004
[libvpx @ 0x2aac030] v0.9.1-18-gf1a3b1e
Output #0, webm, to ‘/tmp/out.webm’:
  Metadata:
    encoder         : Lavf52.71.0
    Stream #0.0: Video: libvpx, yuv420p, 640×480, q=2-31, 200 kb/s, 1k tbn, 30 tbc
    Stream #0.1: Audio: libvorbis, 8000 Hz, 2 channels, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
[webm @ 0x2aaadd0] st:0 error, non monotone timestamps 33 >= 33
av_interleaved_write_frame(): Operation not permitted

バグなのかどうかは分かりません。"non monotone timestamps"でググるとそこそこ引っかかるので、割と知られたエラーなのかもしれません。

いずれにしても、現状はダメですね。デジカメが出力するファイルが悪いのかな? 同じファイルをH.264のMP4ファイルやMPEG1のファイルには変換できるんですが。そしてそうやって変換したMPEG1ファイルからWebMファイルには変換できる。

Windows用のWebMにコンバートするソフト(http://webmsoft.com/)とかも試してみましたが、ffmpegベースらしく、エンコードできませんでした。唯一WebMに変換できたのが、XMedia Recodeというソフトでした。しかしこれもあまり安定してませんね。WebMは作れるものの、H.264のMP4を作ろうとすると、ボタンを触る順番によっては頻繁に落ちるし、作られたMP4ファイルは何かがおかしく、やたらとカクカクしている。

で、やっと作ったWebMファイル、Picasa(3.6.0 ビルド105.67, 0)はまだ動画と認識してくれないという…

ExplorerからChrome(5.0.375.86 beta)にDropしてもダウンロードされるだけで表示はされない(これはaviも同じ。HTML5で何か書かなきゃダメなの??)。

まー、もうちょっとしたら来ると思いますね。まだ出てきたばかりで動きが活発そうなので、もちろん期待感は残ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です