【问题标题】:Generate a video from an image url with ffmpeg使用 ffmpeg 从图像 url 生成视频
【发布时间】:2023-01-30 22:05:48
【问题描述】:

我需要使用单个图像生成几秒钟的视频。 我试过 loop 论点:

ffmpeg -loop 1 -t 4.5 -i https://url/to/image.jpg ...

它有效,但似乎 ffmpeg 请求每个帧的 url。默认的framerate 是 25,所以它会为 4 秒的视频发出 100 个请求。

我无法将 framerate 设置为 1,因为我添加了文本动画,所以帧应该经常更改。

但即使可以,我也不想每秒请求相同的图像。

作为解决方法,我可以先下载图像,然后使用本地版本。这样视频生成会快得多。

但无论如何,是否有可能强制 ffmpeg 以某种方式缓存该图像并将其用于每一帧?

【问题讨论】:

  • 您可能可以使用 wget 或类似软件创建脚本,将图像拉到临时本地文件夹,然后将其插入 ffmpeg。

标签: ffmpeg


【解决方案1】:

请改用 looptrim 过滤器。

ffmpeg -i https://url/to/image.jpg -vf "loop=-1:1:0,trim=duration=4.5"  ...

【讨论】:

  • 谢谢,正是我需要的。仅出于我的理解(我是 ffmpeg 的新手):过滤器使用曾经收到的源(并忽略说更改的图像);如果源被更改,我需要在源附近做一些事情(-i 附近)——在这种情况下,将重新请求源,对吗?
  • 如果你想继续重新加载图像输入,那么你需要在输入之前输入-stream_loop -1。如果您这样做,请删除我的回答中的过滤器。
【解决方案2】:
ffmpeg -framerate 1 -protocol_whitelist file,http,https,tcp,tls,crypto -i https://helloparent7222....  output.mp4

我使用此命令生成视频,但生成了损坏的视频。

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 2016-04-03
    • 2013-02-27
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2017-03-01
    相关资源
    最近更新 更多