2

Android で 3gp を mp4 に変換する方法を探しています。「MediaStore.ACTION_VIDEO_CAPTURE」を介してデバイスのカメラを使用しており、ビデオがサーバーに転送されます。私のサーバーは mp4 ファイルのみを許可します。ほとんどすべてのデバイスはビデオを mp4 ファイルとして保存しますが、一部のデバイスは 3gp ファイルとして保存します。そのため、一部のデバイスでは 3gp を mp4 に変換する必要があります。

助けてください!!

4

1 に答える 1

0

Java の Runtime.getRuntime().exec(...) を使用してシェル コマンドを介して ffmpeg を使用すると、動画を 3gp から mp4 に簡単に変換できます。Arm デバイス (大部分の Android デバイス) 用の ffmpeg バイナリは、https ://www.dropbox.com/s/nxjnrb71qdrq5jn/ffmpeg.zip?n=138005726 から入手できます。これを rom にパッケージ化し、ファイルが 3gp であることを検出し、ffmpeg を使用して mp4 に変換してからサーバーにアップロードします。

Java コードでバイナリを実行するには、input が入力ビデオの場所、output が出力ビデオの場所、fmpeg が含める ffmpeg バイナリの場所である、次のようなメソッドを作成する必要があります。

public void convertVideo(String input, String output) throws IOException, InterruptedException
{
    String args = ffmpeg + "-i" + input + "ffmpeg encoding paramaters..." + "-f mp4" + output;
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("/system/bin/sh" + "-c" + args);
    p.waitFor();
}

ffmpeg コマンド パラメーターは、対象のビデオ サイズに合わせて最適化する必要がある場合があります。また、少数の x86 アンドロイド用に静的な x86 ffmpeg を構築します。次に、シェル コマンド「uname -a」でデバイス アーキテクチャを検出し、使用するものを選択できます。

お役に立てれば!

于 2014-11-18T05:58:43.047 に答える