【问题标题】:How to covert video and extract frame from video using FFMPEG in single command如何在单个命令中使用 FFMPEG 转换视频并从视频中提取帧
【发布时间】:2013-07-14 03:40:35
【问题描述】:

我正在尝试使用单个命令从视频文件中转换和提取图像帧 我可以分两步做到这一点,但我想使用类似管道的技术来做到这一点

这就是我所拥有的: for %%a in ("*.avi") do ffmpeg -i "%%a" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "%%~na.mp4"

我需要合并这个提取命令:

ffmpeg -i inputfile.avi  -r  1  -t  4  image-%d.jpeg

合并两个命令会出错。

我该怎么做?

编辑: 这就是我所拥有的。但它只是转换视频,没有创建 jpg 图像作为第二个输出

for %%a in ("*.avi") do ffmpeg -i "%%a" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "%%~na.mp4" | ffmpeg -r 1 -s 4cif "%%~na.jpeg"

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    您可以创建一个如下所示的代码块,其中 2 个输出由它们的选项分开。

    请注意,我在您的 jpg 文件名中添加了 %%05d 以热图像编号。

     for %%a in ("*.avi") do (
        fffmpeg -i "%%a" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "%%~na.mp4" -r 1 -s 4cif -t 4 "%%~na%%05d.jpg"
      )
    

    【讨论】:

    • 我不想运行 2 个单独的命令。 ffmpeg 大小为 25MB。
    • 好吧,我错了,你想要一个 cmd 行来解码 1x 并在后面有编码器以节省内存和 cpu 使用率。这应该是可能的!但我不知道语法
    • 我刚刚用更好的东西编辑了我的答案...根据你可以的 ffmpeg 文档,但有几个输出直接由它们的选项分开。
    • 它可以工作,但不知何故,它为每个视频创建了 13 张 jpg 图像,而我想要 3 张图像。我在玩剧本。我将 %%05d 更改为 %%01d,但仍然创建了 13 张图像。
    • 该细节在问题中并不明确,我没有在 cmd 中添加 -t 选项(请参阅编辑)注意它是秒数,因此帧数可以根据帧速率。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多