2011-12-29 9 views
4

私にはビデオファイルがあります。私はビデオの各フレームを取得し、その中に別のビットマップを描画したり、テキストなどを入れたりするなど、フレームにいくつかの修正を加えたいと思います。Androidでのビデオフレームの抽出/修正

Androidのビデオからフレームを取得するAPI /フレームワークはありますか?私は、AVFrameworkを使ってiOSで同様のことをしました。

ffmpegで可能な場合、私は利用可能ないくつかのオープンソースNDKを使用します。

答えて

8

オプションA:あなたがSurfaceTextureオブジェクトを作成し、

myPlayer = new MediaPlayer 
... 
myRedirectionSurface = new Surface(mySurfaceTexture); 
myPlayer->setSurface(myRedirectionSurface); 

この方法は、次のようにMediaPlayerのにこれを添付することができ

、のストリームをデコードプレイヤーがSurfaceTextureに「リダイレクト」とされていませんSurfaceView。 OnFrameAvailableListenerは、デコードされたフレームを利用できるときはいつでも呼び出されます。 イメージにアクセス/変更するには、 myRedirectionSurfaceでサーフェスのロック/ロック解除メソッドを使用できます。

重要:この機能を利用するには、APIレベル14のサポートが必要です。

オプションB:あなたはffmpegのを使用しての可能性を示してきたように

、あなたはデコーダの出力フレームへのフルアクセス権を持っているとして、あなたが、するつもり何を達成することができます。 RockPlayerまたはMoboPlayerのffmpegポートから始めることができます。 しかし、このオプションでは、NDKからビデオ出力をレンダリングすることは、喜ばしいことではありません。 !