从特定时间标记的视频中提取静止帧时,如下所示:
ffmpeg -i foobar.mp4 -vframes 1 -ss 4:20 -q:v 1 example.png
我注意到使用不同颜色的PNG或JPG结果。
(请注意,-q:v 1
表示最高图像质量)
以下是一些例子:
答案 0 :(得分:1)
我不知道具体的ffmpeg。但是,一般来说,JPEG图像可以进行压缩,稍微降低质量,以换取文件大小的大幅减少。大多数可以编写JPEG文件的程序都会有一个开关(或者它们可以选择)来设置“质量”或“压缩”或类似的东西。我似乎没有在我打开的六台机器中找到任何一台机器,或者我会告诉你我认为合适的机器。
答案 1 :(得分:1)
这与视频范围有关。视频将颜色存储为亮度和色度,即亮度和色差,并且由于来自模拟信号时代的传统原因,黑色和白色在8位编码中不表示为0和255,而是分别表示为16和235。通常应该标记视频流,这是这种情况,因为还可以存储视频,其中0和255分别是B和W.如果文件未被标记或标记错误,则某些渲染或转换函数可能会产生错误的结果。但是我们可以强制FFmpeg以这种方式解释输入。
使用
ffmpeg -i foobar.mp4 -vframes 1 -ss 4:20 -q:v 1 -src_range 0 -dst_range 1 example.png/jpg
这告诉FFmpeg假设工作室或有限范围并输出到全范围。由于颜色编码转换,颜色仍然不相同,但主要变化应该消失。