It’s now or never

IT系の技術ブログです。気になったこと、勉強したことを備忘録的にまとめて行きます。

Theoraコーデックを使ってみた① [インストール]

Theora(セオラ)とは

オープンな非可逆の動画圧縮ファイルフォーマット、または、そのコーデックである。

  • Oggコンテナフォーマットの標準ビデオコーデックとして利用
  • 音声ファイルフォーマットには、Vorbisが使われるのが一般的

公式ページ

特徴

  • ブロック単位の動き補償
  • 8x8 Type-II 離散コサイン変換
  • 品質ベースエンコード (VBR)
  • 適応インループフィルター (deblocking)
  • 最小8x8のマクロブロック
  • 量子化行列のカスタマイズ (intra/inter, luma/chroma)
  • フレキシブルなエントロピー符号 (1フレームあたり80個のVLC tables)
  • YUV4:2:0に加えYUV4:2:2、YUV4:4:4のピクセルフォーマット
  • 8bitのカラーチャンネル
  • 複数のreference frames
  • 非正方ピクセル (ピクセルアスペクト比) のサポート
  • 16の倍数ではない解像度 (現在は8x8以上のフレーム) をサポート
  • 量子化値の非線形スケーリング
  • ブロック単位までの適応量子化
  • ストリームはIフレームとPフレームによって構成されBフレームはサポートし* ない
  • 1/2画素精度の動き補償
  • Oggのほか、AVI、Matroska、Ogg Media等のコンテナ形式に対応

VBR 可変ビットレート、毎秒のビットレートが変化する。 固定ビットレートよりも高音質

拡張子

通常はOggコンテナに格納。 音声コーデックがVorbisの場合、ファイルの拡張子は.ogvとなる。

ビルド方法

Theoraをビルドする為には、Vorbisとoggが必要なため、この2つをビルドする必要がある。(Vorbisをビルドするにはoggが必要)

1.ダウンロード

http://www.theora.org/downloads/

2.ビルド

[iOSのクロスコンパイルについて調査中]

※わかり次第更新します。

homebrewを使ってインストール

※ homebrewのインストール方法については割愛。

1.ライブラリを検索

$ brew search theora
ffmpeg2theora  theora

2.インストール

brew install theora

ハマった点

私の環境では、インストールするときに下記のようなエラーが発生した。

Error: You must ``brew link libvorbis' before theora can be installed

先にlibvorbisをインストールする必要があるという内容だが、 既にlibvorbisがインストール済みのため発生していた。 theoraのビルドには、liboggとlibvorbisが必要なのだが、 brew installを行う際は、すべてのライブラリをビルドしに行くため怒られるらしい。 (brewのオプションに回避策があるかもしれませんが)

解決方法

brew remove libvorbis

で一旦libvorbisを削除し、再度theoraをインストール。

brew install theora

liboggやlibvorbisをhomebrew経由でインストールしていない場合、 それらの関連でエラーが出てしまったら関連ファイルを削除する必要があるため注意。 (make uninstallでできればいいですが)

※キーフレーム キーフレームとは、CGのアニメーションの中で主となる変化が定義されているフレームのことである。 物体の形や位置の変化ポイントが指定され、その間を補完することで滑らかな動画像が作成される。 動画の再生に何らかの変化を起こすフレームアクションは、キーフレームにしか設定することができない。