Video

拍攝電影快照的程序?

  • June 19, 2013

是否有任何程序可以讓我指定影片文件的部分(avi、mpeg、mp4、…)並每隔某某秒/分鐘拍攝一次“快照”,並將其儲存為一系列圖像文件(例如 jpeg)?例如,在 0h45m 和 1h00m 之間選擇電影的一部分,然後每 30 秒拍攝一次“快照”。

它可能是影片播放器(例如 VLC)的一部分或外掛……關鍵是我需要自動拍攝快照的東西,而不是手動拍攝。

此外,有沒有什麼好的程序可以將這樣的一系列圖像文件轉換為動畫 GIF 或 PNG 文件?(如果快照程序可以選擇將快照保存為動畫 GIF/PNG,那當然是一個好處。)

您可以使用它ffmpeg來執行此操作。ffmpeg 網站上有幾個例子

這裡有幾個:

  1. 這將每分鐘創建一個縮略圖圖像,命名為img001.jpg, img002.jpg, img003.jpg, … (%03d意味著每個縮略圖圖像的序號應使用 3 位數字進行格式化)
$ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
  1. 這將每 10 分鐘創建一個縮略圖,命名為thumb0001.bmp, thumb0002.bmp, thumb0003.bmp, …
$ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp

如果您想將它們製作成短影片,您可以再次尋求幫助ffmpeg在他們網站的這個頁面上進行了討論。

這裡還有幾個例子:

  1. 在這裡,每個圖像的持續時間為 5 秒(每秒 1/5 幀的倒數)。通過告訴 FFmpeg 將輸入文件的 FPS 選項(每秒幀數)設置為某個非常低的值,我們在輸出端使 FFmpeg 重複幀,因此我們實現了在螢幕上顯示每個圖像一段時間:
$ ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -r 30 out.mp4
  1. 如果您沒有按系列(img001.jpg, img002.jpg, img003.jpg)編號和排序的圖像,而是隨機的一堆圖像,則 ffmpeg 還支持 bash 樣式的萬用字元(* 表示任意數量的任意字元):
$ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4

或對於 png 圖像:

   $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.png' -c:v libx264 out.mp4

要將生成的影片製作成動畫 gif,您可以使用他的 SO Q&A 中概述的步驟,標題為:如何使用 ffmpeg 從 avi 生成 gif?

$ ffmpeg -i video.avi -t 10 out%02d.gif

然後:

$ gifsicle --delay=10 --loop *.gif > anim.gif

這是該工具的連結gifsicle

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