簡體   English   中英

如何用ffmpeg提取固定數量的幀?

[英]How to extract a fixed number of frames with ffmpeg?

我試圖從一堆視頻中統一提取固定數量的幀(比如每個視頻50幀,總共10,000個視頻)。

由於持續時間不同,我計算了每個視頻的理想輸出fps,並將其作為ffmpeg提取的參數,但未能獲得所需的幀數。

有誰知道如何使用ffmpeg或其他工具提取固定數量的幀? 謝謝!

您可以使用縮略圖過濾器。 它從每組n幀中挑選一個代表性幀(默認為100)

因此,如果您的源視頻長達10分鍾且速度為25 fps,那么它總共有15000幀。 因此,要選擇50幀,您將使用

ffmpeg -i input.mp4 -vf thumbnail=300,setpts=N/TB -r 1 -vframes 50 inputframes%03d.png

這將從每組300幀中選擇一個代表性幀,因此從15000幀中選擇50幀。盡管名稱,縮略圖只是選擇幀,但它不會縮小它們以供縮略圖使用。 setptsr一起設置以避免重復或丟幀。 設置了vframes ,因此輸出的圖像不超過50張。

如果您需要嚴格選擇每nth幀,請使用

ffmpeg -i input.mp4 -vf select='not(mod(n\,300))',setpts=N/TB -r 1 -vframes 50 inputframes%03d.png

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM