从视频中提取 Caja 中显示的缩略图

从视频中提取 Caja 中显示的缩略图

当我进入 Caja 中包含视频文件(例如 flv、mp4)的文件夹(Caja 是我的 Linux 版本(Mint MATE)中的文件资源管理器程序)时,它有一个小缩略图。

这是从哪里来的?它存储在视频的元数据/标题中吗?它是由 Linux 动态计算的吗?还是其他什么?

我可以提取该图像并将其另存为 jpg 吗?

答案1

~/.cache/thumbnails如果 Caja 使用 GnomeDesktopThumbnailFactory 或基于某些类似的代码,缩略图可能会被缓存。

多一点详细信息在这里

缩略图名称是文件路径的 md5 哈希值;file://+full path

因此:

find ~/.cache/thumbnails -name "$(printf "%s" "$file" | md5sum | cut -d' ' -f1)*"

在哪里文件

file:///full/path/to/video.mp4

因为它可能是 PNG,所以你可以使用 ImageMagick 的convertie:

convert some_thumbnail.png my_copy.jpg

答案2

我不确定您是否一心想要获取缩略图显示的图像,或者您只想从视频中获取“一”帧来识别它,但如果您的愿望是后者,我可以建议使用cvlc,这是vlcLinux的命令行界面。安装后,它可以非常轻松地从 mp4 视频中提取帧(也可能是其他格式,但我需要的是我的 Roku 应用程序的 mp4 视频)。

这是我使用的命令:

cvlc my_video.mp4 \
     --video-filter=scene \
     --start-time=${startINseconds} \
     --stop-time=${stopINseconds} \
     --scene-ratio=1 \
     --scene-prefix=FrameCapture \
     --save-path=/some/writable/path/here \
     vlc://quit

在哪里

  • myvideo.mp4是您要从中提取帧的文件名

  • startINsecondsstopINseconds从视频开始到您要开始和停止捕获帧的秒数

  • scene-prefix是捕获的帧文件的前缀,后面是序列号

  • save-path是您要存储这些捕获的帧的位置。

作为额外的建议,捕获 5 秒左右的视频,并在所有图片中查找最大的文件大小,以找到具有最佳对比度的图像,这通常是您捕获的时间范围的最佳表示。

相关内容