【问题标题】:ffmpeg batch frame extraction to .pngffmpeg批量帧提取到.png
【发布时间】:2022-07-22 02:52:18
【问题描述】:

我正在尝试从 20 秒的斑马鱼心脏短视频中提取大量 .png 文件,用于 ImageJ 心跳分析。

到目前为止,这段代码,

ffmpeg -i C:\example_directory\filename.movS -r 30/1 C:\example_directory\filename_%04d.png

效果很好。但是,这一次只能运行一个视频文件,并且一次输出到一个文件夹。

我有一段代码可以将多个 .mp4 视频转换为 .mov:

for i in *.mp4; do ffmpeg -i "$i" -qscale 0 "$(basename"$i" .mp4)".mov ; done

有没有办法使用 for 循环或某种批处理或 .sh 文件来自动从一大组短视频中提取 .png 文件,比如 20 个左右的视频?

我正在尝试编写说明以简化未来实验室学生的视频和图像处理,因此了解 macOS、linux 或 Windows 10 的自动化是否存在差异可能会有所帮助

欢迎任何建议!

谢谢

【问题讨论】:

    标签: batch-file ffmpeg png


    【解决方案1】:
    For /R C:\example_directory %%A in (*.mov) do (
        ffmpeg -i "%%A"S -r 30/1 C:\example_directory\filename_%04d.png
    )
    

    我希望这对你有用。我不确定的唯一部分是您将如何使用 ( ) 之间的代码。由于它不是批处理,因此您将不得不弄清楚如何批量使用 ffmpeg 或如何以您知道可以使用批处理的方式重写代码。由于我不知道 ffmpeg 做了什么,因此我无法重新创建该代码字符串。我建议学习批处理的 for 命令,以便更好地帮助您实现这一目标。

    【讨论】:

    • 在不检查ffmpeg 命令的任何使用信息的情况下,我可以立即知道您的do 命令不能从批处理文件中运行。
    【解决方案2】:
    For /R C:\example_directory %%A in (*.mov) do (
        ffmpeg -i C:\example_directory\filename.movS -r 30/1 C:\example_directory\filename_%04d.png
    )
    

    我认为这应该可行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多