gpt4 book ai didi

video - ffmpeg 在叠加层中延迟视频

转载 作者:行者123 更新时间:2023-12-04 22:46:16 26 4
gpt4 key购买 nike

我正在尝试叠加 2 个视频,其中一个(位于“底部”的那个)我想延迟开始(比方说延迟 2 秒)。

因此,要么在延迟期间保持第一帧,要么在延迟期间保持黑色帧。我没有偏好。

这是我基于类似问题尝试的方法:https://superuser.com/questions/734234/delayed-video-overlay-using-ffmpeg

ffmpeg
-i video_top
-i video_bottom
-filter_complex
"[0:v]trim=start='00\:04\:17.8':end='00\:04\:32.8',setpts=PTS-STARTPTS, scale=-1:'ih-ih*.5':eval=frame[v0];
[0:a]atrim=start='00\:04\:17.8':end='00\:04\:32.8',asetpts=PTS-STARTPTS[a0];
[1:v]setpts=PTS-STARTPTS+2/TB, format=yuva420p[v1];
[v1][v0]overlay=y=(main_h-overlay_h)*.074:format=yuv444:shortest=0:alpha='straight',format=yuv420p[out]"
-map [out] -map [a0] -vcodec libx264 testing_14.mp4

但是,这样做的结果是两个视频都会在延迟的持续时间内(在本例中为 2 秒)卡住第一帧。我尝试了很多替代方案,包括

  • 只在其中一个视频流上设置 PTS,而不是同时设置 PTS
  • 使用 -itsoffset 代替 PTS

似乎没有任何效果。

最佳答案

使用 tpad filter .在延迟期间,您可以克隆第一帧或显示纯色。简化示例:

克隆第一帧:

ffmpeg -i background.mp4 -i front.mp4 -filter_complex "[0]tpad=start_duration=2:start_mode=clone[bg];[bg][1]overlay" output.mp4

显示纯色:

ffmpeg -i background.mp4 -i front.mp4 -filter_complex "[0]tpad=start_duration=2:start_mode=add:color=black[bg];[bg][1]overlay" output.mp4

关于video - ffmpeg 在叠加层中延迟视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63237572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com