SDカードに保存された一連の写真を使用してビデオを作成するアプリケーションを実行しています。私が修正しようとしている問題は、いくつかのビデオを作成するとアプリケーションがクラッシュすることです。クラッシュは、ソース画像ファイルの解像度によって異なります。たとえば、解像度 320x480 の 400 枚の画像を使用してビデオをレンダリングできますが、解像度 2500x3200 の画像を使用して 25 フレームのビデオしかレンダリングできません。
Asynctask を使用してバックグラウンドでレンダリング プロセスを実行しています (ユーザーにフィードバックを提供し、レンダリング プロセスの通知を維持するため)。レンダリング プロセスがクラッシュしても、logcat に警告やエラーなどは記録されません。DDMS を使用してメモリ使用量を調べると、メモリ リークが表示されません (logcat でメモリ警告も表示されません)。このため、ffmpeg ライブラリに関連する問題である可能性があると思います (しかし、わかりません)。
次のように、avcodec.java で定義されたさまざまなコーデックをテストしています。
AV_CODEC_ID_MPEG1VIDEO = 1,
AV_CODEC_ID_MPEG2VIDEO = 2,
AV_CODEC_ID_H263 = 5,
AV_CODEC_ID_MJPEG = 8,
等
ロスレス ビデオ コーデックを試しても効果がないようです。コーデックによってはエラーが発生することもあります。
Sony Ericsson Xperia Arc (1 GHz CPU、320 MB インターン メモリ) でアプリケーションを実行しています。
私のスマートフォンが長い HD ビデオをレンダリングするのに十分な能力を持っているかどうかはわかりませんが、Droid Timelapseのようなそれができるアプリが市場にあるようです。
どうすれば修正できるかわかりません。
ありがとうございました。