当我进入 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 的convert
ie:
convert some_thumbnail.png my_copy.jpg
答案2
我不确定您是否一心想要获取缩略图显示的图像,或者您只想从视频中获取“一”帧来识别它,但如果您的愿望是后者,我可以建议使用cvlc
,这是vlc
Linux的命令行界面。安装后,它可以非常轻松地从 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
是您要从中提取帧的文件名startINseconds
是stopINseconds
从视频开始到您要开始和停止捕获帧的秒数scene-prefix
是捕获的帧文件的前缀,后面是序列号save-path
是您要存储这些捕获的帧的位置。
作为额外的建议,捕获 5 秒左右的视频,并在所有图片中查找最大的文件大小,以找到具有最佳对比度的图像,这通常是您捕获的时间范围的最佳表示。