我ffmpeg -y -ss 0 -to 10 -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg
在 macOS 上测试了一个 ffmpeg 命令来生成缩略图,它运行良好,而在 ubuntu 18.04.2(AWS EC2)上执行 ffmpeg 的相同命令时出现错误。
错误 :
Option to (record or transcode stop time) cannot be applied to input url abc.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file abc.mp4.
Error opening input files: Invalid argument
我正在使用 AWS EC2 (ubuntu 18.04.2),使用 sudo apt install ffmpeg。如果我必须以其他方式安装它,或者我这里缺少某些东西,有人可以帮我吗?提前致谢。
答案1
消除-to 10
- 您正在输出单帧,因此无需使用 声明持续时间停止时间
-to
。单幅图像没有持续时间,因此-to
无论如何都会被忽略。 -ss
(开始时间偏移)的值为0
不执行任何操作,因此您也可以将其删除。
例子:
ffmpeg -y -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg
与上面相同,但在 30 秒时截屏:
ffmpeg -y -ss 30 -i acb.mp4 -qscale:v 2 -frames:v 1 abc.jpeg
在 22 小时 15 分 5 秒时截取屏幕截图,但输出质量较低:
ffmpeg -y -ss 22:15:05 -i acb.mp4 -q:v 5 -frames:v 1 abc.jpeg
如果您愿意,可以使用别名-q:v
代替。-qscale:v
为什么它在 macOS 上有效,而在 Ubuntu 上却不行
该-to
选项以前只是一个输出选项。它已更新为也可用作输入文件(在 之前声明-i
)。您使用的 FFmpeg 3.4.6 太旧,无法用作-to
输入选项。您在 macOS 上的 FFmpeg 版本足够新,可以用作-to
输入选项。但如前所述,输出单个图像时-to
不执行任何操作并被忽略。