0

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: ログを追加

ログファイルはこちらからダウンロードしてください

コマンドで何か間違ったことをした場合はお知らせください。どんな助けでも大歓迎です。

前もって感謝します!

4

1 に答える 1