改进了视频的缩略图提取

时间:2011-03-22 08:08:26

标签: video opencv ffmpeg thumbnails video-processing

我一直在使用FFmpeg来查找h264视频文件的中间帧,并提取jpg缩略图以便在流媒体门户网站上使用。这是针对每个上传的视频自动完成的。

有时框架恰好是黑框或者语义上不好,即背景或模糊镜头与视频内容无关。

我想知道我是否可以使用openCV或其他方法/库通过面部识别或帧分析以编程方式找到更好的缩略图。

3 个答案:

答案 0 :(得分:9)

我自己遇到了这个问题,并提出了一个非常简单但又简单的算法,以确保我的缩略图更加“有趣”。怎么样?

  1. 在不同的点创建 x - 多个缩略图。例如。 5个缩略图
  2. 使用最大(以字节为单位)文件并丢弃其余文件
  3. 为什么这样做?因为单调“无聊”图像的jpeg文件,如全黑屏幕,压缩成比具有许多对象和颜色的图像小得多的文件。

    这不是完美的,但是可行的 80/20 解决方案。 (20%的工作解决了80%的问题。)编码实际分析图像本身的东西将会有更多的工作。

答案 1 :(得分:1)

如果有人需要两个班轮(使用ffmpeg和imagemagick):

(这会从视频中选择最多20帧,并使用gt(场景)来选择转换时刻。它使用ffmpeg制作120像素宽的png然后使用imagemagick制作一个gif(因为ffmpeg gifs出了名的丑陋...... 。)如果电影中没有任何反应,可能失败,但是你不应该把它称为电影 - 你应该吗?

ffmpeg -i $1 -loglevel error -vf "select=gt(scene\,0.1), scale=120:-1" -frames:v 20 -f image2 -vsync 0 -an ./tmp/img%05d.png 
convert -delay 25 -loop 0 ./tmp/img*.png thumb.gif

答案 2 :(得分:0)

Libavfilter有一个缩略图过滤器,用于从一系列帧中选择最具代表性的帧。不确定它是如何工作的,但继续文档http://ffmpeg.org/libavfilter.html#thumbnail