FFMPEG 图像序列到具有特定持续时间的视频

FFMPEG 图像序列到具有特定持续时间的视频

假设您有一个包含 40 个 .jpeg 文件(从网络摄像头捕获的帧)的文件夹。

如何将其转换为恰好3秒长的视频?

在 Windows 上使用 FFmpeg。

答案1

  1. 按顺序重命名图像文件:
    • A。 Explorer(无第三方工具)方法:按日期(或文件名)对图片进行排序,使最旧的照片排在最上面。选择所有图片,右键单击最旧的照片,重命名,键入 img。所有图片都重命名为以下格式:img (1).jpg、img (2).jpg、img (11).jpg
    • b. 有人告诉我这个 powershell 命令可以执行: dir *.jpg | %{$x=0} {Rename-Item $_ -NewName "Base$($x.tostring('000000')).jpg"; $x++ }
    • c. AntRename Portable 可以轻松做到这一点
  2. 运行此命令:ffmpeg -i "img (%d).jpg" timelapse.mp4
    • a. -i 表示这是输入
    • b. %d 是一个序列模式(查找小数/数字),它将匹配这样的文件名:img (1).jpg、img (2).jpg、img (11).jpg。文档主要给出了示例 %03d,它将匹配零填充的文件名:img001.jpg、img002.jpg
    • c.附加选项:
    • C1。 -f image2 强制使用 image2 复用器/解复用器,它通常会自行解决
    • C2. 帧速率默认为 25fps,可自定义 (-r 15)。我将其设置为 1fps,将 21 张图片录制为 MP4,结果视频为黑色,因此效果可能有所不同,但我认为 MP4 格式是罪魁祸首

有用的链接:• https://trac.ffmpeg.org/wiki/Slideshowhttps://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequencehttps://ffmpeg.org/faq.html#How-do-I-encode-single-pictures-into-movies_003fhttps://ffmpeg.org/ffmpeg-formats.html#image2-1https://photo.stackexchange.com/questions/1254/which-software-to-assemble-a-time-lapse-from-images


在 Windows ffmpeg 构建中不起作用的事情(没有什么可以阻止您在 Linux 中执行此操作): https://trac.ffmpeg.org/wiki/Slideshow

  • 通配符 *:失败(错误消息:此 libavformat 版本不支持通配符):ffmpeg -pattern_type glob -i *.jpg timelapse.mp4
  • 将解复用器与文本文件连接起来,文本文件主要包含所有图片的文件路径。失败(错误消息:文件名不安全,操作不允许):ffmpeg -f concat -i input.txt timelapse.mp4
  • 管道(他们的例子使用 cat linux 命令,我试过 dir)。以下命令失败,出现此错误:pipe:: 处理输入时发现无效数据。 dir *.jpg /s /b | ffmpeg -i - timelapse.mp4 &copy *.jpg | ffmpeg -i - timelapse.mp4
    • 以下命令失败会出现此错误:找不到流 0 的编解码器参数(视频:无,无):未知编解码器。 copy *.jpg | ffmpeg -f image2pipe -i - timelapse.mp4& dir *.jpg /s /b | ffmpeg -f image2pipe -i - timelapse.mp4

相关内容