我有超过100多个视频,我需要在每个视频的顶层粘贴一个5秒avi视频(类似水印或动画徽标)。它可以用Adobe Premiere执行,但它太长而且太愚蠢。在哪里可以找到合适的框架来处理视频(任何语言)?或者其他任何方法吗?也许'ffmpeg'可以帮忙吗?任何帮助,链接,文件都会很棒。
答案 0 :(得分:1)
关于顶层5秒avi视频的含义不太明确。 我猜你的水印是5秒长,100多个视频是任意长度你想把第一个放在第二个的某个位置
ffmpeg有一个叠加过滤器:这是文档
将一个视频叠加在另一个视频之上。
需要两个输入和一个输出,第一个输入是覆盖第二个输入的“主”视频。
它接受参数:x:y [:options]。
x是主视频上叠加视频的x坐标,y是y坐标。 x和y是包含以下参数的表达式:
'main_w,main_h'
main input width and height
'W,H'
same as main_w and main_h
'overlay_w,overlay_h'
overlay input width and height
'w,h'
same as overlay_w and overlay_h
options是key = value对的可选列表,以“:”分隔。
接受的选项的描述如下。
“RGB”
If set to 1, force the filter to accept inputs in the RGB color space. Default value is 0.
请注意,帧是按时间戳顺序从每个输入视频中获取的,因此,如果它们的初始时间戳不同,最好通过setpts = PTS-STARTPTS过滤器传递两个输入以使它们以相同的方式开始零时间戳,就像电影过滤器的示例一样。
按照一些例子:
# draw the overlay at 10 pixels from the bottom right
# corner of the main video.
overlay=main_w-overlay_w-10:main_h-overlay_h-10
这个对我有用: ffmpeg -i ./external/bb_high.mp4 -i external / small.mp4 -strict -2 -filter_complex'overlay = 10:10'output.mp4
但是5秒结束时我认为最后一帧仍然在叠加层中。
这是gstreamer选项更好的选择。有一个视频混合器元素可以完成这种事情。
答案 1 :(得分:0)
不使用ffmpeg,但使用Expression Encoder,您可以在视频上叠加图像或“移动图像”,或者您可以轻松地将两个视频拼接在一起。
MSDN link - Add visual overlays
How to Video
MSDN link - Using the SDK
Wade Wegner blog post