シームレスなループを得るために、ビデオの最後の 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」パラメーターでいくつかのアクションを試みましたが、常にバグの別のバッチが発生しました。