ffmpeg4androidを使用して、複数のビデオ間でフェードイン、フェードアウト、クロスフェードなどの効果を実行できる小さなスライドショー アプリを作成したいと考えています。
数時間調査した後も、クロスフェードを行うことにまだ行き詰まっています。この提案に従って、クロスフェードを作成できますが、完全には機能しません。
問題は、5 つのビデオをクロスフェード効果で結合したいのですが、各ビデオの長さが 5 秒であることです。その結果、出力ファイルは 25 秒ではなく 5 秒しかなく、出力ファイルの最後にクロスフェード効果があります。
これが私のコマンドです:
String commandStr = "ffmpeg " +
"-y " +
"-i /sdcard/videokit/big_buck.mp4 " +
"-i /sdcard/videokit/big_buck.mp4 " +
"-i /sdcard/videokit/big_buck.mp4 " +
"-i /sdcard/videokit/big_buck.mp4 " +
"-i /sdcard/videokit/big_buck.mp4 " +
"-filter_complex " +
"[0:v]setpts=PTS-STARTPTS[v1];" +
"[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2];" +
"[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3];" +
"[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4];" +
"[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5];" +
"[v1][v2]overlay[v12];[v12][v3]overlay[v123];[v123][v4]overlay[v1234];[v1234][v5]overlay,format=yuv420p[v] " +
"-map [v] " +
"/sdcard/videokit/result.mp4";
更新 1: ログを追加
コマンドで何か間違ったことをした場合はお知らせください。どんな助けでも大歓迎です。
前もって感謝します!