2016-05-18 2 views
0

これは非常に基本的な質問ですが、これは初めてのNDKの話ですから、多くのことが私にはまだ分かりません。Android StudioでFFmpegを使用する方法

ユースケース:

  • 私は非常に高速かつ正確なフレームシークが重要であるビデオスクラブ機能を開発しようとしています。私は利用可能なプレーヤーのほとんどを試しましたが、パフォーマンスはまだ私の要求に応えるものではありません。だから私はFFmpegルートを下って行くのです。

  • 基本的には、私が探しているのはFFmpeg input seekingです。私はWrtingMinds' ffmpeg-android-javaを試しました。しかしこれはファイルベースの実装であり、out.jpgを外部メモリに書き込む必要があり、パフォーマンス(1回の検索で約1000ミリ秒)が大幅に増加する必要があります。

  • 私は自分自身のFFmpegプレーヤーを構築して、JNIで入力を求めて、byte[]をJavaで表示するようにプッシュしようとしています。

質問: NDKに苦しんで多くの後、私はそれを設定し、成功した私のJavaコードからJNIメソッドを呼び出すことができました。構造は以下の通りです:

MyApp 
    -app 
    -MyFFmpegPlayer 
    -build 
    -libs 
    -src 
     -main 
     -java 
      -com.example.myffmpegplayer 
      +HelloJNI.java 
     -jni 
      +MyFFmpegPlayer.c 

一部がWindows上にFFmpegを構築しようとする試みが失敗した後、私はWritingMinds構築済みにFFmpegを使用することを決めました。しかし、抽出後、彼らは平文としてffmpegファイル(.soファイルではない)になるので、私はこれらの使用法を本当に知りません。

誰かがチャイムインして次のステップの出発点を与えてくれれば、とても感謝しています。

ありがとうございました。

+0

imo - 画像からウィンドウを削除する方がよい場合があります。 VMを実装する。あなたのVMでARMV7クロスツールチェーンを使用する方法を学んでください。あなたのVMにffmpeg-for-armv7Aをビルドしてください。 Android-NDKでffmpeg.soをどのように呼び出していたかに戻ります。あなたがAndroidスタジオの場合は、http://ph0b.com/new-android-studio-ndk-support/にアクセスしてください。 –

+0

返信@Robert Rowntreeに感謝します。私は実際にあなたのリンク先に出くわしました。それが実験的で安定したGradleを一緒に働かせるように設定する方法です。私はまた、Windows上でffmpegを構築することは非常に難しいことを理解していますが、仕事上の制約のために、今はLinuxを実際にインストールすることはできません。だから、私は事前に作られたルートに向かう。あなたは私がFFmpegを構築して独自のバージョンを構築するだけでよいことを示唆していますか? –

+0

あなたの必要条件を満たしています....いくつかのサードパーティのffmpegを使って作業することは、バグのない成功の可能性が低いです。バギーなら何?あなた自身のffmpegビルドを使って作業することは非常に時間がかかることですが、発生するバグを解決する機会は非常に多いです。 Windows上でffmpegをビルドすると、コンベンションに反してしまうのです...むしろ、Windows上でVMを使用する方法を学び、他のみんなのようにビルドすることができます.... –

答えて

0

は、だから私は、「どのようにFFmpegを構築し、Androidのメーカーでそれを使用する」に変更する必要があります自分の質問に答えるために、私は(月24日2016で)私のために働いています詳細step-by-step命令を作成しています。

申し訳ありません申し訳ありませんが非常に長いのでここで指示を投稿することはできません。また、1つの情報源を最新の状態に保つ方が簡単です。

私は、このトピックについてあまりにも多くの混乱して矛盾する情報があることを知っているので、これが誰かを助けてくれることを願っています。

関連する問題