Video

從影片中提取 Caja 中顯示的縮略圖

  • March 22, 2016

當我轉到 Caja 中的一個包含影片文件(例如 flv、mp4)的文件夾時,這是我在我的 Linux 版本(Mint MATE)中的文件資源管理器程序,它有一個小的縮略圖。

這是從哪裡來的?它是否儲存在影片的元數據/標題中?它是由 Linux 動態計算的嗎?還有什麼?

我可以提取此圖像並將其保存為 jpg 嗎?

~/.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即:

convert some_thumbnail.png my_copy.jpg

我不確定您是否一心想要獲得縮略圖顯示的圖像,或者您只是想從影片中獲取“一個”幀來辨識它,但如果您希望是後者,我可以建議使用cvlc,這是Linux的命令行界面vlc。安裝後,它可以非常輕鬆地從 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 秒的影片並在所有圖片中尋找最大的文件大小,以找到對比度最佳的圖像,這通常是您拍攝的時間範圍的最佳表示。

引用自:https://unix.stackexchange.com/questions/271507