我正在尝试从图像生成视频。
以下代码生成视频,每 3 秒 1 帧。
exec("ffmpeg -f image2 -r 1/3 -loop_input -shortest -y -i tmp/image%3d.jpg -i tmp/ag1.mp3 -target ntsc-dvd -s 1280x720 tmp/video.mwv");
我想对其应用 ken burns 效果,我已经搜索了很多但找不到任何解决方案。
有人可以帮帮我吗?如果可以提供任何代码片段,将不胜感激。
我不认为这可以单独使用 ffmpeg 完成。我过去曾使用名为diascope的工具完成此操作。我从来没有听到太多关于它的消息,但它会产生一些我见过的最好的图片幻灯片,因为你可以使用 Ken Burns 之类的效果。它在最后一步使用 ffmpeg 对视频进行实际编码。
看一下例子,应该很简单。
FFMPEG 有https://ffmpeg.org/ffmpeg-filters.html#zoompan
目前,它确实存在一些抖动视频运动的问题。
它可以通过 Imagemagick 和 ffmpeg 的组合来完成。使用图像魔术制作一系列裁剪图像,并使用 ffmpeg 将一系列图像变成电影。使用 ImageMagick 裁剪图像应沿一个或多个矢量完成,以创建创建运动的“帧”。当然,所有图像都必须具有相同的外部尺寸(使用 ImageMagick 很容易做到),但是您可以使用 ImageMagick 中的裁剪和缩放工具创建各种逐帧运动。
Ken-Burns 可以与Mencoder一起应用。请参阅使用 MEncoder 进行编码。PhotoFilmstrip程序就像 Mencoder 的 GUI 。它是基于 Python 的,因此可用于 Windows(甚至作为便携式版本)和 Linux。对于 Linux,还有image2mpeg,但我还没有尝试过。
在 Windows 下,免费的 Microsoft MovieMaker 也可以应用 Ken-Burns。虽然它只创建 WMV 文件 MovieMakers GUI 恕我直言比 PhotoFilmStrips 好得多。然而,灵丹妙药是在批处理或 shell 脚本中应用 MEncoder。作为开始搜索“mencoder 语法”。
使用 ImageMagick(版本 6.x)试试这个脚本
#!/bin/bash
for (( resizepercent=100; resizepercent<=200; resizepercent+=10 ))
do
convert bird.jpg -resize $resizepercent% -gravity Center -crop 1800x1900+0+0 bird$resizepercent.png
done
您必须将“1800x1900”替换为您的目标输出尺寸,并且可能将“+0+0”替换为您想要缩放到的其他偏移量。
也许有些读者知道这个脚本是否可以提高性能!?我实现它的方式 Imagemagick 必须在每个循环中读取输入文件“bird.jpg”。也许有一种方法可以告诉 Imagemagick 只读取输入文件一次并对其进行多次缩放?