首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个视频粘贴到顶层上的另一个视频

将一个视频粘贴到顶层上的另一个视频
EN

Stack Overflow用户
提问于 2012-08-31 20:03:57
回答 2查看 1.9K关注 0票数 0

我有超过100+视频,我需要粘贴一个5秒的avi视频在每个视频的顶层(像水印或动画标志)。它可以在Adobe Premiere上运行,但它太长太愚蠢了。我在哪里可以找到好的框架来使用视频来执行这一点(任何语言)?或任何其他方法来做吗?也许“ffmpeg”能帮上忙?任何帮助,链接,文档都会很棒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-31 20:22:00

不是很清楚你的意思是5秒的avi视频在顶层。我猜你的水印是5秒长的,100+视频是任意长度的,你想把第一个放在第二个位置

ffmpeg有一个覆盖过滤器:这里是文档

将一个视频覆盖在另一个视频之上。

它需要两个输入和一个输出,第一个输入是覆盖第二个输入的“主”视频。

它接受参数: x:y:options。

X是主视频上叠加视频的x坐标,y是y坐标。X和y是包含以下参数的表达式:

‘main_w,main_h’

代码语言:javascript
复制
main input width and height

‘w,H’

代码语言:javascript
复制
same as main_w and main_h

‘overlay_w,overlay_h’

代码语言:javascript
复制
overlay input width and height

‘w,h’

代码语言:javascript
复制
same as overlay_w and overlay_h 

options是一个可选的key=value对列表,用":“分隔。

下面是对接受的选项的描述。

‘’rgb‘

代码语言:javascript
复制
If set to 1, force the filter to accept inputs in the RGB color space. Default value is 0. 

请注意,帧是按时间戳顺序从每个输入视频获取的,因此,如果它们的初始时间戳不同,最好通过setpts=PTS-STARTPTS过滤器传递两个输入,使它们以相同的零时间戳开始,就像电影过滤器的示例一样。

下面是几个例子:

代码语言:javascript
复制
# 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选项更好的地方。有一个videomixer元素可以用来做这种事情。

票数 1
EN

Stack Overflow用户

发布于 2012-10-09 06:19:39

不使用ffmpeg,但使用表达式编码器,您可以覆盖图像,或‘运动图像’的顶部的视频,或者你可以很容易地将两个视频缝合在一起。

MSDN link - Add visual overlays

How to Video

MSDN link - Using the SDK

Wade Wegner blog post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12215001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档