ffmpeg ライブラリを Android に移植しました。JNI インターフェイスを使用して、コマンド ラインからのように、ffmpeg の main メソッドに引数を与えることで、ffmpeg コマンドを実行できます。
ビデオの特定の部分を取得するには、次のコマンドを使用します。
ffmpeg -i /mnt/sdcard/input_video.mp4 -ss 00:00:12 -t 00:00:10 -an /mnt/sdcard/output_video.mp4
そしてそれはうまくいきます。ビデオは 12. 秒から 22. 秒に分割され、ビデオが保存されます。メソッドは通常どおり (0 として) 戻ります。
ただし、最初の呼び出しが完了した直後に 2 番目の同様の呼び出し (たとえば、異なる開始時間) を行うと、ffmpeg は要求を処理できず、セグメンテーション エラーがスローされます。
最初の呼び出しでは、次のような情報が提供されます。
入力ストリーム #0.0 の推測チャンネル レイアウト: モノラル
そして動作します。しかし、2 番目のメッセージは次のようになります。
入力ストリーム #1.0 の推測チャンネル レイアウト: モノラル
そしてそれはうまくいきません。エラーと関係があるかどうかはわかりません。
一般に、この問題は静的グローバル変数に関連しているはずですが (私はそう思います)、それらを適切にリセットすることができませんでした。ffmpeg の main メソッドへの呼び出しを複数回成功させるための解決策は何ですか?