Fut*_*cal 12 overlay ffmpeg delay offset
我正在尝试使用ffmpeg为输入视频添加叠加层,该视频在视频开始后的某个时间出现.
添加叠加层的基本方法是:
ffmpeg -i in.avi -vf "movie=overlay.avi [ovl]; [in][ovl] overlay" out.avi
Run Code Online (Sandbox Code Playgroud)
但是,这会从输入视频的开头添加叠加视频(或图像),直到其中一个视频结束.
我知道如何使用叠加视频来抵消movie=overlay.avi:seek_point=1.4,但是输入视频的偏移怎么办?
我总是可以将视频剪辑到所需的点,在第二个剪辑上添加叠加,然后缝合两个,但这不是很有效.
bla*_*lah 12
扩展艺术家的洞察力,但推测性的答案,视频确实可以很容易地使用-itsoffset旗帜重叠.
该-itsoffset标志就像这样:
-itsoffset 偏移量(输入)
以秒为单位设置输入时间偏移.[ - ] hh:mm:也支持ss [.xxx]语法.偏移量将添加到输入文件的时间戳中.指定正偏移意味着相应的流延迟了偏移秒.
(注意:尽管短语"输入文件s ",该标志实际上仅适用于紧随其后的输入.请注意这个关于不适用于音频流的偏移的错误 .H/T attronics.)
所以用偏移覆盖就像这样简单:
ffmpeg -i bg.avi -itsoffset 2 -i over.avi -filter_complex overlay out.avi
Run Code Online (Sandbox Code Playgroud)
无论容器类型如何,这都有效.
根据有限的FFmpeg覆盖文档,该过程期望两个视频具有相同timestamp (例如,0:00:00:00)值以使事物保持同步,并且如果没有完成则发出警告然后avi.out将具有来自视频的不期望的偏移overlay.avi使用的文件.
但是,您可以利用这一事实并利用它!
它是那么可以想象的是,如果overlay.avi视频有一个起始点timestamp与期望的偏移这是需要对in.avi输入的视频,则overlay.avi视频会自动攻击相同的timestamp(提供in.avi)创建的预期结果out.avi视频.
唯一的坏消息是.avi容器没有时间戳,不像.mp4或.mkv文件格式做.您必须切换到支持*timestamps*此工作的文件格式(例如,overlay.mp4或overlay.mkv),以创建所需的最终输出视频文件.