【问题标题】:FFmpeg convert video to images with complex logicFFmpeg 将视频转换为具有复杂逻辑的图像
【发布时间】:2020-11-06 09:11:50
【问题描述】:

我正在尝试使用 FFMPEG 来解决我的视频中的一些复杂逻辑。

业务逻辑如下: 我从以下格式获取视频:avi、mp4、mov。

我不知道视频中的内容是什么。可以从1M到5G。

我想以我可以获得的更高质量输出此视频中的图像列表。仅捕获与前一帧相比有较大变化的帧。 (新人、新角度、大动作等)

此外,我想限制每秒的帧数,即使视频速度非常快并且一直在变化,它也不会产生比此参数更多的每秒帧数。

我现在正在使用以下命令:

./ffmpeg -i "/tmp/input/fast_movies/3_1.mp4" -vf fps=3,mpdecimate=hi=14720:lo=7040:frac=0.5 -vsync 0 -s hd720 "/tmp/output/fast_movies/(#%04d).png"

据我了解,它执行以下操作: fps=3 - 首先将视频剪切为每秒 3 帧(这就是我所说的限制)

mpdecimate - 过滤变化不超过我设置的阈值的帧。

-vsync 0 - 同步视频时间戳 - 我不知道为什么但没有它 - 它会产生数百个重复帧,忽略 fps 和 mpdecimate 命令。谁能解释一下?

-s hd720 - 将视频大小设置为

效果很好,但我对质量不太满意。你觉得我错过了什么吗? FFMPEG 中是否有我更好地使用它而不是这些参数的参数?

【问题讨论】:

  • 我对质量不太满意 > 为什么?
  • 我正在插入中等质量的视频,但我看不到输出帧具有更好的分辨率。
  • @Udi 质量永远比不上输入。只有相同或更差。
  • @llogan 我知道。似乎质量较低。
  • 当我只拍摄 1 帧时,它可能处于相机移动的中间,因此质量有点模糊。 FFmpeg 是否可以将 5-6 帧分成 1 帧以减少图像中的模糊区域?

标签: image-processing ffmpeg video-processing vsync mpdecimate


【解决方案1】:

您可以通过将-qscale:v 1 附加到您的命令来设置帧质量。

qscale代表质量等级,v代表视频,范围是1到31。1代表最高质量,31代表最低质量。

【讨论】:

  • 问题中的命令是输出PNG,而不是JPG。 -qscale:v 对 PNG 没有影响。
  • @llogan 如果可以提高质量,我可以将其存储为 JPG。我对这个问题做了一些测试,发现 JPG 输出的权重较小,所以我猜它们的质量较低。不是吗?
  • @Udi PNG 是无损的。 JPG有损。但是,如果某些图像适合 PNG 压缩(动画、徽标、纯色等),则它们可以小于或等于 JPG。 JPG 适用于照片和更复杂的图像。
  • @llogan 谢谢。我明白你写的但我不明白最后一个电话 - “JPG适合照片和更复杂的图像”。我正在使用视频中的照片,质量比压缩更重要,所以我将使用 PNG。那么为什么JPG更适合呢?仅仅因为他的压缩能力?
  • @Udi 这是一个概括。对于文件大小,JPG 通常用于照片,PNG 用于线条艺术、纯色、徽标、绘图等。
猜你喜欢
  • 2017-02-26
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 2017-11-10
  • 2011-07-04
相关资源
最近更新 更多