带有模式“%”的输出名称无法按预期工作

带有模式“%”的输出名称无法按预期工作

我正在尝试转换视频 (.ts) 并从另一个视频 (.mp4) 中捕获快照 (.jpeg)。转换对它们都有效,但是快照名称snap%.jpeg不会像snap1.jpeg, snap2.jpegffmpeg 文档:image2

命令:

ffmpeg -loglevel 99 -i "C:\path\original.mp4" -an -sn -c:v libx264 -preset slow -crf 22 -r 25 -f segment -segment_format ts -segment_time 10 -strftime 1 "C:\path\result\output-%H-%M-%S.ts" -vf fps=5 -q:v 1 -f image2 -updatefirst 1 "C:\path\result\snap%d.jpeg"

在此处输入图片描述

即使日志级别很高,我也没有任何错误。我也尝试删除引号,或者放置%03d其他引号,但没有变化。

我正在使用 Windows 8.1。

ffmpeg 版本:

ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enabl
e-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopu
s --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-
libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-z
lib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --e
nable-dxva2 --enable-avisynth --enable-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100

如果我之前没有在互联网上搜索过很长时间,我永远不会向社区询问,所以,我真的需要你的帮助。谢谢。

答案1

两件事情:

1) 使用-updatefirst 1,仅创建和更新一个映像文件。将其删除。

2)snap%.jpeg没有指定模式,因为没有扩展变量。应该是snap%d.jpeg

(此外,如果段格式设置为mkv,那也应该是扩展)。

ffmpeg -loglevel 99 -i "C:\path\original.mp4" -an -sn -c:v libx264 -preset slow -crf 22 -r 25 -f segment -segment_format mkv -segment_time 10 -strftime 1 "C:\path\result\output-%H-%M-%S.mkv" -vf fps=5 -q:v 1 -f image2 "C:\path\result\snap%d.jpeg"

相关内容