0

シームレスなループを得るために、ビデオの最後の X フレームと最初の X フレームにクロスフェードを適用する必要がありますが、これをビデオの必要な部分にします。

ビデオ全体をループするための答えは次のとおりです。

現在私が持っているもの: (ビデオ全体の長さ = 25。カット (結果) 部分 = 15 秒 (位置 5 秒から 20 秒まで)。トランジション = 1 秒)

ffmpeg -i input.mp4 -ss 5 -to 20 -filter_complex
    "[0]split[body][pre];
     [pre]trim=duration=1,format=yuva420p,fade=d=1:alpha=1,setpts=PTS+( (15+(5-1)) /TB)[jt];
     [body]trim=1,setpts=PTS-STARTPTS[main];
     [main][jt]overlay"  -c:v libx264 -preset veryslow -b:v 2500K output.mp4
 

この場合、すべてが機能しますが、結果のビデオの最後に、本来あるべき元のビデオの 4 ~ 5 秒ではなく、0 ~ 1 秒から始まる元のビデオの一部がスーパーインポーズされます。

公式の ffmpeg ドキュメントを読み、「setpts」を変更して「trim/fade」の「start/end」パラメーターでいくつかのアクションを試みましたが、常にバグの別のバッチが発生しました。

4

1 に答える 1