Opera 10.50 から使えるようになった HTML5 の video 要素.<video src=“./foo.ogv” type=“video/ogg” /> とかするだけで動画が貼り付けられるとかそういう話.
これを実現してるのが,Windows の Opera の場合 Opera.exe と同時にインストールされる gstreamer の dll 一式.
gstreamer 自体は LGPL でライセンスされているので,プロプラな Opera でもダイナミックリンクして,ソースを公開するなら合法的に再配布出来る.
そんな Opera の video 用の gstremer を配布してるのが GStreamer source code .
で,とりあえず,Windows 用をビルドしてみた.
準備
- git
Perl
- Msys 環境なら perl 5.6.1 がデフォルトで入るはずなので特に問題無し
- ActivePerl や strawberryPerl を入れるも良し
Microsoft WDK
- かつて Windows Device Driver Kit と呼ばれてたドライバ開発キット.WDK
- MSVCRT.lib とダイナミックリンクするために必要
VC / Visual Studio 2008
- VCEE 2008 でも動くだろうけど未確認
- MS VS 2010 Pro. RC でも行けるだろうけど未確認
ビルド
- GStreamer source code のページに従って最新の gstramer のソースを落としてくる.
このまま,Visual Studio で gst-opera.sln を開いても問題があるのでいくつか修正する.
- WDK のパスをあわせる.
winddk-crt.vsprops
,gsttypefindfunctions.vcproj
,gstwavparse.vcproj
の各ファイルでC:\WinDDK\
から始まる箇所を適切に設定する.- Opera で配布してるファイルが Windows2000 用で,通常手に入る DDK (WDK) のバージョンが 7 用.
winddk-crt.vsprops
ではw2k\i386\msvcrt_win2k.obj
と 2000用になってるのでとりあえず,wxp\i386\msvcrt_winxp.obj
としておく
- 中間フォルダの設定を変える.
- コンパイルにとくに支障はないがエラーが鬱陶しいので各 vcproj で使う中間フォルダを別々のフォルダになるようにしておく.
- 具体的には,
IntermediateDirectory="$(ConfigurationName)"
となっているのを,IntermediateDirectory="$(ConfigurationName)\$(ProjectName)"
とすべて書き換える.
ここまで来たら,perl にパスを通した上で,Visual Studio 2008 コマンドプロンプトから, devenv gst-opera.sln /rebuild release
としてビルド.
うまく行けば,gst-opera\dist
以下に gstreamer.dll
と plugins\
ディレクトリと各種 codec 用の dll が出来上がるので,opera のインストールディレクトリの gstreamer\gstramer.dll
と gstreamer\plugins
をそれぞれ差し替えてみる.
適当に video を使ってるページhttp://snapshot.opera.com/resources/BigBuckBunny.html を開いて再生できれば第一段階は完了.
さて,最適化したり,x264 対応とか試してみましょうか.