如何在单个命令中使用FFMPEG转换视频并从视频中提取帧

如何在单个命令中使用FFMPEG转换视频并从视频中提取帧,ffmpeg,Ffmpeg,我试图转换和提取图像帧从一个视频文件在单一的命令 我可以分两个步骤来完成,但我想使用类似管道的技术来完成 这就是我所拥有的: 对于(“*.avi”)中的%%a执行ffmpeg-i“%%a”-c:v libx264-预设慢-crf 20-c:a libvo_aacenc-b:a 128k”%%na.mp4”您可以创建如下代码块,其中两个输出按其选项分开 请注意,我在您的jpg文件名中添加了%%05d,以显示图像编号 for %%a in ("*.avi") do ( fffmpeg -i

我试图转换和提取图像帧从一个视频文件在单一的命令 我可以分两个步骤来完成,但我想使用类似管道的技术来完成

这就是我所拥有的:
对于(“*.avi”)中的%%a执行ffmpeg-i“%%a”-c:v libx264-预设慢-crf 20-c:a libvo_aacenc-b:a 128k”%%na.mp4”
您可以创建如下代码块,其中两个输出按其选项分开

请注意,我在您的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"
  )

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

请注意,我在您的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"
  )

我不想运行两个单独的命令。ffmpeg的大小是25MB。好吧,我错了。你想要一条指令行来解码1x,并在后面有编码器来节省内存和cpu使用。这应该是可能的!但我不知道syntaxI刚刚用更好的东西编辑了我的答案。。。基于ffmpeg文档,您可以通过其选项直接分离多个输出。它可以工作,但不知何故,它为每个视频创建了13个jpg图像,而我想要3个图像。我在玩剧本。我用%%01d更改了%%05d,但stil创建了13幅图像。问题中没有明确说明该细节,我也没有在cmd中添加-t选项(请参见编辑)。请注意,这是一个秒数,因此帧数可以根据帧速率进行更改。我不想运行两个单独的命令。ffmpeg的大小是25MB。好吧,我错了。你想要一条指令行来解码1x,并在后面有编码器来节省内存和cpu使用。这应该是可能的!但我不知道syntaxI刚刚用更好的东西编辑了我的答案。。。基于ffmpeg文档,您可以通过其选项直接分离多个输出。它可以工作,但不知何故,它为每个视频创建了13个jpg图像,而我想要3个图像。我在玩剧本。我用%%01d更改了%%05d,但stil创建了13张图像。问题中没有明确说明该细节,我也没有在cmd中添加-t选项(请参见编辑)。请注意,这是一个秒数,因此帧数可以根据帧速率进行更改。
 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"
  )