0.1 秒后 FFMPEG 连接多个视频?

0.1 秒后 FFMPEG 连接多个视频?

我提前剪辑了几个视频,长度大约为 2 秒。第一个视频是 2 秒。第二个视频是 1.99 秒。因此,假设第二个剪辑将在第二个剪辑后 0.1 秒开始,则总共是 4 秒。

我制作了一个简短的视频来说明我建立的时间线https://cl.ly/b0d91eb087e7

对于用户来说,我认为这是最直观的。下一个剪辑总是在前一个剪辑之后 0.1 秒开始。

第一个剪辑 2s

ffmpeg
        -i "image.png"
        -i "video-bg.png"
        -f lavfi
        -i color=c=#ffffff:s=1080x1080
        -filter_complex "
          [0:v]scale=922.226355701817:1745.5544426956646[out0],
          [1:v]scale=1080:1080[out1],
          [2:v][out1]overlay=0:0:enable='between(t,0,2)'[out3],
          [out3][out0]overlay=-113.12530740270425:61.811417942481036:enable='between(t,0,2)'[vid]
        "
        -map "[vid]"
        -vcodec libx264
        -vb 20M
        -crf 17
        -preset veryfast
        -pix_fmt yuv420p
        -t 00:00:02.00
        out.mp4

第二个剪辑 1.99 秒

ffmpeg
        -i "image2.png"
        -i "video-bg.png"
        -f lavfi
        -i color=c=#ffffff:s=1080x1080
        -filter_complex "
          [0:v]scale=1270.8427528974103:1142.2750035770496[out0],
          [1:v]scale=1080:1080[out1],
          [2:v][out1]overlay=0:0:enable='between(t,0,6)'[out3],
          [out3][out0]overlay=-87.75274650343397:-24.4787400289741:enable='between(t,0,6)'[vid]
        "
        -map "[vid]"
        -vcodec libx264
        -vb 20M
        -crf 17
        -preset veryfast
        -pix_fmt yuv420p
        -t 00:00:01.99
        out2.mp4

我想将第一个和第二个剪辑连接起来,使其长度为 4 秒。第一个剪辑应在 0 秒到 2 秒之间,第二个剪辑应从 2.1 秒到 4 秒开始。

这是我所得到的,但问题是它从 2 秒而不是 2.1 秒开始第二个剪辑。

ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0][1]concat=n=2:v=1[v]" -map "[v]" final.mp4

谢谢

答案1

ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]scale=1080x1080,trim=start=0:end=2[one];color=black:s=1080x1080:r=24:d=0.1[b0];[1:v]scale=1080x1080,trim=start=0:end=1.9[two];[one][b0][two]concat=n=3:v=1[v]" -map "[v]" final.mp4

刻度(以及中间空白处的 s)确保它们具有相同的刻度,否则过滤器将失败,修剪确保剪辑 1 为 2 秒,剪辑 2 为 1.9 秒(加起来是 4 秒,但如果长度无关紧要,可以删除这些)颜色 = 是间隙的颜色,r = 是间隙的帧速率(注意 - 当它与输入帧速率不匹配时,我遇到了问题),d = 是间隙的持续时间,必须以 0 为准。对于亚秒级持续时间,部分[one][b0][two]是剪辑的顺序

其中大部分内容改编自此处的答案:https://superuser.com/a/1064592

相关内容