0

プログラミングの問題に直面しています

他のレイヤー(ビットマップ/GLsurfaceなど)から取得した他のフレームとマージしたカメラフレームからビデオをエンコードしようとしています

320X240 を使用すると、細かい FPS (~10) でリアルタイムにマージできますが、ピクセル サイズを大きくしようとすると、6 FPS 未満になります。
私のマージ機能はピクセルサイズに依存するため、賢明です。

だから私が尋ねるのは、処理(エンコード)後にそのフレームの配列を保存する方法ですか?

この大きな配列を格納する方法がわかりません。

簡単な計算:
毎秒10フレームを保存する必要があり
、各フレームが960X720ピクセル
であるため、40秒のビデオを保存する必要がある場合:40X10X960X720X(3/2-android factor)=〜276 MB

ヒープには多すぎる

何か案が?

4

1 に答える 1

0

カメラ入力をビデオとして簡単に記録できます - 720p の解像度でも 40 秒は大きなファイルにはなりません - その後、オフラインでデコード、マージ、およびエンコードを再度行うことができます。大きなトリックは、MediaRecorder がハードウェアを使用するため、エンコードが非常に高速になることです。ビデオは圧縮されているため、SD カードまたはローカル ファイル システムにリアルタイムで書き込むことができ、デコードのために読み取ることも問題ではありません。

于 2013-11-18T14:58:31.227 に答える