2016-07-15 97 views
2

我通常使用ThumbnailMe製作縮略圖的聯繫表。我的默認設置是15行x 5列,因此在45分鐘到90分鐘左右的視頻中顯示75個圖像。 ThumbnailMe幾乎可以即時創建這種大小的聯繫表。最近需要爲很多視頻製作大量聯繫表,我在查看一個命令行選項,以便我可以批量執行這些操作。我已經嘗試了幾種不同的方式,使在命令行縮略圖:ffmpeg製作縮略圖的最有效方法? [Windows 10]

ffmpeg -ss 300 -i myvideo.avi -vf fps=1/300 %d.jpg 

ffmpeg -i myvideo.avi -vf fps=1/60 %d.jpg 

不管哪個這些方法我用它需要大約一分鐘,以使只有16截圖(從那裏我會使用ImageMagick來製作聯繫表)。正如我上面所說的,ThumbnailMe只需按下一個按鈕就可以製作15x5的圖像網格。 ThumbnailMe建立在一個較老的命令行程序Movie Thumbnailer上,我認爲它使用舊版本的ffmpeg,或者至少是編解碼器libavcodec。

如果這些其他程序可以如此快地創建縮略圖爲什麼需要ffmpeg這麼長的時間才能爲我創建縮略圖?即使我以非常小的尺寸輸出截圖(例如50x50),對於要創建的每個圖像而言仍然需要約2秒。

回答

1

fps過濾器是一個低效率的方法來解決這個問題。選擇過濾器是更好的選擇。如果你願意,FFmpeg也有一個過濾器來生成網格。

ffmpeg -i in.mp4 -vf select=not(mod(n\,800)),scale=200:-1,tile=15x5 -vsync 0 in-grid.jpg 

這將選擇每第800幀,鱗選定幀正比於200像素寬度,然後瓷磚在15x5佈局前75個選擇的幀。如果需要,瓷磚過濾器有options用於外邊框和框架間填充。

爲了使其儘可能高效,應該選擇選擇間隔(800),以便選擇濾鏡不會輸出比網格所需更多的幀。此外,您可以省略一些時間在FFmpeg中省略比例和瓦片,並在其他地方執行。

+0

這確實創建了網格,並且相對來說比我使用的方法更快。但是,接下來我嘗試了高清視頻(比特率爲5000 Kbps,採用AVC格式的1280x720),並且花費了超過60秒的時間來生成網格。 – gregm

1

我使用https://github.com/mutschler/mt/releases爲我的聯繫表,這是非常快,並應提供你所要求的一切。

我剛做了一個快速測試,花了大約27秒在默認模式下生成15x5網格。在快速模式下,它只需要大約4秒鐘。 (在6300Kbp/s,1280x720,h264 AVC文件上測試)

快速模式和默認模式之間的主要區別在於快速轉發到下一個捕獲位置時,它有點不準確。