13

にビデオフレームがありませんArrayList<Bitmap>MediaMetadataRetriever.getFrameAtTime()ビデオファイル(.mp4)を介してメソッドを使用してこのフレームにアクセスしました。

ArrayListのフレームの順序を逆にします。この逆順のフレームキューを使用して、ビデオをレンダリングしたいので、データが逆になります(正しい軌道に乗っていることを願っています)。

そのビデオを作成した後、私もそれをSDカードに保存したいと思います。

これを達成する方法は?または、Javaでビデオを反転する他の方法はありますか?

編集1: (*** xugglerを使用*)**

xugglerを使用してみました....jarファイルを使用してみました。しかし、それはいくつかのエラーを投げています。

[2012-08-18 00:29:16 - xugglertest2] The library 'xuggle-xuggler-5.2.jar' contains native libraries that will not run on the device.
    [2012-08-18 00:29:16 - xugglertest2]  The following libraries were found:
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-ferry.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler-io.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-ferry.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler-io.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle.so

私は何をすべきか ??

プロジェクトのlibsフォルダーにxuggler-xuggler-5.4.jarをコピーし、ビルドパスに追加しました。私はそれを正しくやっていますか?



編集2: (ffmpegを使用して)
与えられたようにubuntuプラットフォームでandroid用のffmpegをコンパイルしましたここで
私はドキュメントに従ってコンパイルされたファイルを取得しました。
今、誰かが私にAndroidアプリケーションでそれらのコンパイルされたファイルをどのように使用できるか教えてもらえますか?それらのファイルを正確にどうすればよいですか?
適切なドキュメントが見つかりませんでした。どんな助けでもgr8でしょう。


編集3: (android -ffmpegに移植)

ねえ..最後に私はubuntuでffmpegをコンパイルしました私はlibffmpeg.soを手に入れました。私はそれをアンドロイドにうまく移植しました。libffmpeg.soはAndroidアクティビティに正常に読み込まれています。今、私は単純なffmpegコマンドまたはプログラムをテストしたいだけです。
どこで探すか提案してもらえますか?それをテストするためのサンプルコマンドを提案してもらえますか。

ありがとう、よろしく

4

2 に答える 2

11

ffmpegを使用して、画像からビデオを組み立てることができます。ffmpegをJava(Android)に統合するには、いくつかの方法があります(1つは直接実行します)

Runtime.getRuntime().exec("ffmpeg <options>");

)、しかしおそらくそれを行うための良い方法はXugglerプロジェクトを経由することです-それはffmpegに大きく依存しています。出発点として、ここに一連の紹介チュートリアルがあり、ここに一連の画像からビデオをエンコードする方法の完全なチュートリアルがあります。大変な作業と読書ですが、必要な情報はすべてそこにあります。幸運を!

于 2012-08-15T09:31:30.690 に答える
0

xugglerの使用に関しては、ライブラリのバージョンは、x86_64およびi686プラットフォーム用にコンパイルされたネイティブコードが含まれているため、特定のデバイスでは機能しません。

[2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/
[2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/

ARMv6用にコンパイルされたネイティブコードパーツを含むこのライブラリのバージョンを見つけてみてください(最も一般的なAndroidアーキテクチャ-古いデバイスが含まれます。1〜2年前より古いデバイスをサポートしたくない場合は、ARMv7の方が適しています)。

それ以外の場合は、ARM用にコンパイルされたffmpegを取得し、AndroidNDKのサポートで使用する必要があります。一連の画像を特定のファイルにエンコードすることを実装するC/C ++でコードを記述し、それをJNIインターフェースでラップする必要があります。クラスのメソッドのネイティブ実装にJava配列を渡すことができます。

コードでJNIを使​​用する方法については、SDKサンプルのサンプルAndroidNDKアプリケーションをご覧ください。

于 2012-08-21T11:13:48.813 に答える