带有-ss选项的FFmpeg命令在.flv文件上失败

Hov*_*yan 7 ffmpeg

我使用FFmpeg使用以下命令从视频中提取屏幕截图

/usr/bin/ffmpeg -ss 15 -y -i test.flv -vcodec mjpeg -vframes 1 -an -f rawvideo test.png
Run Code Online (Sandbox Code Playgroud)

但命令失败了.最后3行的回复是

frame=    0 fps=  0 q=0.0 Lsize=       0kB time=00:00:00.00 bitrate=   0.0kbits/s
video:0kB audio:0kB global headers:0kB muxing overhead -nan%
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
Run Code Online (Sandbox Code Playgroud)

请注意,该命令可以成功运行其他视频类型(3gp,mp4).

此外,当我将"-ss 15"选项替换为"itsoffset 15"时,它也会成功运行flv文件.

有谁知道为什么-ss选项不适用于.flv文件?

Soh*_*eil 9

在较新版本的ffmpeg中-ss,-t必须使用和选项-i [filename].

  • 但请注意,-ss的位置可以在-i之前或之后,它们用于不同的目的.请阅读此处了解更多信息:https://trac.ffmpeg.org/wiki/Seeking (4认同)

Ela*_*adG 1

这可能是一个语法问题。以下内容应该可以正常工作:

/usr/bin/ffmpeg -ss 15 -y -i test.flv -frames:v 1 -an test.png

请注意,我删除了编解码器和格式参数。我认为在 png 连续符上强制使用 mjpeg 并不明智,而且 flv 不是原始视频格式