ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

[Android] Google I/O 2012 セッションレポート Media Codec APIs in Android 4.1

Media Codec APIs

JellyBeanから追加された機能の一つMedia Codec APIについてのセッションです。

できること

APIレベルでの解説でしたが、MediaCodecAPIで出来ることは
- 今の機器で対応しているコーデックに対してのオペレーションが可能になる。
- いままではすべて隠蔽化されていたけどフレーム単位、コンテナの違いなど動画・音声のコーデック業界を取り巻く細かい違いは吸収できる
- APIはOpenMAXのインターフェイスがそのまま見えたイメージ

簡単なまとめ

コーデックの追加などは出来ませんが(自分でソフトウェア実装して自分のアプリでのみ使うのは例外として)カット編集やエフェクターなど動画処理が楽になります。特にコンテナの違いを吸収できる手段になりそうなのはマルチメディア処理を手がける人には福音かも。

詳細

APIリファレンスは以下の通りです。
http://developer.android.com/reference/android/media/MediaCodec.html
http://developer.android.com/reference/android/media/MediaCodecList.html

MediaCodecAPIs in Android jellybean

 - メディア処理のアーキテクチャについて(絵)
   mp.prepare(); ← ストリーミングプロトコル、ファイルフォーマットが
   未サポートだったらどうなるだろう?
   
 - Low-Level Media APIsは3つのパートから構成
   ファイルパーサー
   メディアコーデッククエリ
   デコード/エンコードファンクション
   
 - MP4/3GPPのファイルフォーマット構成について
   <写真>
   (サンプルデータ単位まで説明)
   
 - MediaExtractorがメディアを処理する:defaultのファイルパーサー。
   MP4や3GPP等メディアからサンプルを読み込む
   http://developer.android.com/reference/android/media/MediaExtractor.html
   
 - MediaCodecList / MediaCodecInfo
   対応コーデック情報を持つ。サポートしているコーデック一覧や
   コーデックごとの細かい情報を取得できる。機種に依存。
   
 - MediaCodec API解説
   encoder/decoder コンポーネントを記述できる。