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