2016-05-30 12 views
1

私はFfmpeg4Androidライブラリを使ってビデオをエンコードしています。私はそれらを選択してビデオをマージしたい。私が直面した問題は、選択されたポートレイトのビデオ、制作されたビデオに回転したビデオがある場合です。この問題を解決するには、回転メタデータに基づいてビデオを回転させてから、mergeコマンドを実行しています。 10秒間のHDビデオでは、およそ3〜5分の時間がかかります。 90degree CW用FFMPEGのスロービデオローテーション

MERGEコマンド

String[] cmd= new String[]{"ffmpeg", "-y", "-i", orginalFilePath, "-strict", "experimental", "-vf", "transpose=" + transposeby, newFilePath}; 

// transposeby = 1:

String[] command = new String[]{"ffmpeg", "-y", "-i", files[0], "-i", files[1], "-strict", "experimental", 
        "-filter_complex", "[0:v]scale=640x480,setsar=1:1[v0];[1:v]scale=640x480,setsar=1:1[v1];[v0][0:a][v1][1:a] concat=n=2:v=1:a=1", 
        "-ab", "48000", "-ac", "2", "-ar", "22050", "-s", "640x480", "-r", "30", "-vcodec", "mpeg4", "-b", "2097k", newFilePath}; 
+1

コマンドを組み合わせてください。 '0:v'がローテートされたビデオの場合、マージコマンドで元のビデオで' [0:v] transpose = 1、scale = 640x480、setsar = 1 [v0] 'を使用します。 – Mulvya

答えて

1

がコマンドを組み合わせると...私に

回転指令をより高速な方法を提案してください。 0:vが回転したビデオの場合、マージコマンドで元のビデオに[0:v]transpose=1,scale=640x480,setsar=1[v0]を使用します。