关于FFMPEG:FFMPEG-您可以用几个图像覆盖视频的一部分吗?

FFMPEG - Can you overlay part of a video with a couple of images?

我需要在视频上添加叠加层,我想知道是否可以使用FFMPEG轻松实现这一目标。

我有一组图像(横幅和肖像),我想在视频的一部分时间内将其覆盖在视频的底部。例如,大约5秒钟后,我希望覆盖层出现,然后在视频结束前约5秒钟,我希望覆盖层消失。

使用FFMPEG命令行选项是否可以?


到目前为止,使用FFMpeg使用命令行覆盖图像时,最强大,最优雅的方法是使用称为AVISynth的工具。

以下是一些简单的示例,其中一个将一个视频叠加在另一个视频上(覆盖图像是该视频的一个子集):
http://avisynth.org/mediawiki/Script_examples

您可能想知道,这是什么工具?这是它在概念上的工作方式:

首先,使用特殊命令(称为脚本)创建一个简单的文本文档。这些命令引用了一个或多个视频以及您希望在其上运行的过滤器。然后,您运行一个视频应用程序(例如FFMPeg),并在命令行中传递脚本文件。这是AviSynth采取行动的时候。它将打开您在脚本中引用的视频,运行指定的过滤器,并将输出馈送到视频应用程序。但是,该应用程序不知道AviSynth在后台运行。相反,该应用程序认为它是直接打开驻留在您的硬盘驱动器上的经过筛选的AVI文件。

使用AVISynth可以很简单地完成所需的操作,但是它可以伸缩以制作像本网站这样的视频,其中很多照片,文字和效果都放置在视频上。此ecard网站上的所有视频都是使用FFMpeg和AVISynth创建的:http://www.hdgreetings.com

这似乎有些不同,但是一旦您使用了一个简单的脚本,便立即意识到这是有史以来最好的视频工具之一。而且它是免费的。


根据所使用的平台,您也许可以播放视频,然后像创建X窗口一样在视频上放置图像。在播放视频时,可以使用ffmpeg录制X窗口,视频在后台播放,而图像在前景播放。

这是一个完整的技巧,但是我把它扔了出去。


ffmpeg不允许这种图片处理。但是,也许您很幸运。

由于您仍然必须解压缩视频,因此您可以使用ffmpeg将RAW图像创建到磁盘上,使用某些实用程序覆盖图像(简单的c#应用程序即可完成操作),并使用ffmpeg来创建具有所需视频(或与源相同)。

要进行覆盖,您可能可以使用GIMP:http://www.gimp.org/tutorials/Basic_Batch/,因为它是可以在批处理(命令行)模式下使用的跨平台工具。


FFMPEG可以在任何给定的视频时间将图像叠加在视频上。

1
2
3
4
5
6
ffmpeg -i video -i image1 -i image2 -i image3
 -filter_complex
   "[0][1]overlay=x=X:y=Y:enable='between(t,23,27)'[v1];
     [v1][2]overlay=x=X:y=Y:enable='between(t,44,61)'[v2];
     [v2][3]overlay=x=X:y=Y:enable='gt(t,112)'[v3]"
-map"[v3]" -map 0:a  out.mp4

请查看此帖子以获取更多详细信息:FFMPEG-是否可以按指定的时间间隔在视频上叠加多个图像?