2013-08-29 16 views
5

私はNDKには新しく、FFMPEGのライブラリをjniフォルダにコピーしてAndroid.mkとApplication.mkファイルを作成してndkを実行します-buildコマンドでlibavcodec.soをlibフォルダに入れました。(私はffmpegヘッダファイルを私のjniフォルダにコピーしませんでした。ヘッダファイルを追加する必要がありますか?またはjniに完全なffmpegライブラリを追加する必要があります... stack-オーバーフローのコメントは、ヘッダーファイルを追加するだけでいいと言っています)FFMPEG libをアンドロイドに使用してmp4サイズを小さくする方法

私はカメラのビデオをavcodac.soを使用して圧縮するよりも小さいサイズに変換したいと思っています。私はそれを使用することができます。

ファイルを使用するのは私の考えでは混乱します。 1)System.load( "libavcodec.so")メソッドを使用してロードする必要がありますか? C/C++のネイティブメソッド?

2)または私は、両方のお互いに通信する私のJavaクラスと私のcクラスを作成する必要がありますか?そのクラスは、ffmpegのavcodecクラスと通信する??

また、Android.mkよりも自分のcクラスを作成する必要がある場合は、両方を実装する必要があります。ソースファイルラインに追加する必要がありますか?

FFMPEGでビデオファイルのサイズを圧縮する方法と手順は何ですか?

私の質問は他のより役に立つでしょう。 ありがとう

+0

mp4のサイズを正常に縮小できましたか? – Oam

+0

@ Swap-IOS-Android、これはできましたか? –

+0

@ Mr.G yup私はjavacv –

答えて

4

1)はい、System.load("libavcodec.so")に電話する必要があります。メソッドにはJNIでアクセスできます。

2)Cに実装されたJNIメソッドを作成し、ffmpegを呼び出す必要があります。 Android用

JNIチュートリアル:http://code.google.com/p/awesomeguy/wiki/JNITutorial

ffmpegチュートリアル:http://dranger.com/ffmpeg/

+3

あなたは私を詳細に案内してくれますか...私はffmpeg libを正しく操作する独自のCクラスを作成する必要がありますか?...そして、私はJavaクラスでSystem.load( "libavcodec.so")を使う必要がありますか?あなたが –

+1

@Sergey kを持っていれば、いくつかのサンプルチュートリアルを共有できます。いくつかのサンプルを共有して、よりよく知ることができるようになりました。あなたはそれを教えてくれませんでしたか?Android.mkにそのクラスを追加する必要がありますか? –

+0

Answer更新しました。 @SergeyK。 –

2

JavaCV JavaラッパーとFFmpegのためのコンパイル済みのバイナリが付属しています。

また、RecordActivity.javaサンプルは、探しているものとまったく同じようです。

1

あなたはアンドロイドでビデオの圧縮のためのFFmpeg4ライブラリを使用しています。そのため、このコマンドを使用して、より優れたビデオ品質と最小限の圧縮を実現できます。私は私のプロジェクトでそれをうまく使っています。

ffmpeg -i <your input video path.mp4> -s 480x320 -acodec mp2 -strict -2 -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 <your output video path.mp4> 
関連する問題