2013年4月21日日曜日

OpusにLinux Mint 14で対応し、HTML5/Audioで鳴らす



どうやらしばらく前に"Harmony"と呼ばれていたHTML5向けに整備されていた音声フォーマットが"Opus"らしい。そういえば"Harmony"に夢を見た時期が昔あったような記憶があった。

ブラウザーにおける実装状況としては、既にFxでは15で実装されて居たらしい。残念ながらChromiumでは執筆時点の25現在では未対応で、Chromiumのチケットによれば26からどうやらAudio要素でも使えそうな気配がする。

Opera、IE、Safariも恐らくOpusには対応するだろう(もしかしたら既にしているかもしれないが私はそれらには興味が無い)。

肝心のOpus形式のデータのテストについては、
公式のExamplesで各種視聴できる。やや原音に癖がある様な気もするが、余程耳に自信が無いわけでなければそれなりに参考になる。

さて、早速Opusを自前で用意して見たくなった。環境はいつもどおりの開発機で、Linux Mint 14での話。
apt-cache search opus
libopus-dbg - debugging symbols for libopus
libopus-dev - Opus codec library development files
libopus-doc - libopus API documentation
libopus0 - Opus codec runtime library
opus-tools - Opus codec command line tools
opus-tools-dbg - debugging symbols for opus-tools

さすがdebianのリポジトリーがバックエンドにあるというのは楽で良いヽ(´ー`)ノ
apt-get install opus-tool
すると、`opusenc`、`opusdec`、`opusinfo`が使えるようになる。コマンド名からお察しの通りの機能が使える。

`opusenc input.wav ouput.opus`とすれば.opusができるし、`opusinfo output.opus`とすればopusファイルの情報を表示できる。`opusdec output.opus`とすれば.wavがデコードされる。

.opusを再生したければ、libopusもopus-toolsと一緒に入れたゆえと思うが、少なくともVLC-2.0.5では問題なく.opusを再生できた。

ウェブブラウザーではどうか。HTML5/Audioなソースを用意して確認する。

<!doctype html>
<audio src="test.opus" controls>

Chromium-25.0.1364.160ではAudio要素に.opusを放り込んでも残念ながら未対応なのでどうにもならない。Firefox-20.0では.opusをAudio要素で再生できた。Chromiumは26に期待しよう。

とは言え、HTML5/Audio要素は複数のソースを定義でき、未対応形式をソースに含めても読み飛ばされるだけ。今のうちからAudio要素のsrcには.opusを最上位において作った方が後々の対応コストも低くて良いと私は思います。それからVorbisとAACを並べておけば良いのでしょう。

さてさて、HTML5/Audioと.opusの対応は前の記事で扱ったOpen-Jtalkとの合わせ技も面白そうですね(*´ω`*)

0 件のコメント:

コメントを投稿