8

カメラからフレームをキャプチャし、OpenGL ES 2.0 を介してリアルタイムでレンダリングしています。今、私はそれらをオーディオと共にムービー ファイルに記録したいと考えています。iPhone では、30 fps で記録を処理する AVAssetWriter がありました。Android でのオプションは何ですか? 検索してみましたが見つかりませんでした。

更新: 私が何をしようとしているのか疑問に思っている人は、このアプリを参照してください: https://play.google.com/store/apps/details?id=com.androidillusion.videocamillusion&hl=en

これは、30FPS のビデオ レンダリング/録画を実行できる唯一のアプリです。私の目標は、それがどのように行われるかを理解しようとすることです。

4

1 に答える 1

4

カメラからフレームをキャプチャして OpenGL でレンダリングしたら、それらのフレームが既にメモリにあると仮定し、OpenGL を使用してレンダリングされた画像を読み戻す必要はありません。

FFmpeg またはlibtheoraライブラリを使用して、オーディオ/ビデオ ストリームをファイルにインターリーブできます。どちらも Android 用にコンパイルでき、NDK に対応しています。

どちらのライブラリにも多くのチュートリアルがあります。

Theora の場合、GLES 2 シェーダーを使用してフレームを YUV カラーに変換できます。

PS OpenGL ES から何かを読み取る必要がある場合はglReadPixels()、これらのビデオ エンコーディング ライブラリを使用して続行してください。

于 2012-11-03T22:03:15.810 に答える