前言
短視頻是當下最火熱的話題素材,用戶消費力巨大,作為內容創作者,
掌握一些效率工具極為重要。誰能以最快的速度做出高質量的素材,誰就有可能搶佔信息流的前鋒,成為真正的視頻之王。
傳統人工處理圖片,視頻,音頻,極為繁瑣而專業,耗費公司人力物力,結果並不一定好,這是高昂的隱形成本。
計算機的問題,交給計算機處理
短視頻來自移動端,PC端,或其他影音設備,本身就是計算機的產物,因此這些素材也必須交給計算機處理,才是在相同的當量上作文章。
本文重點介紹視頻處理和轉換工具ffmpeg在提取視頻圖片中的應用。一共4個指令,各個都很有用,讓你的工作徹底自動化起來。
四條指令
1 - 截取一張特定時間點的圖片
<code>ffmpeg -ss hh:mm:ss -i $INPUT_FILE -vframes 1 output.jpg/<code>
參數
- -ss 指定了視頻的時分秒,
- -i 指定輸入文件,
- -vframes 1 表示視頻的第一幀。
上述指令,會自動選取最接近設定時間點的位置,並執行截屏。這個速度非常快。
當然也可以使用 -q:v 1,用於指定在時間點附近,選取圖像質量最高的那一張。
2 - 每秒鐘截取一張
<code>ffmpeg -i input.flv -vf fps=1 image_%d.png/<code>
特殊地,
- -vf fps=1 表示 frame per second截取一張
- image_%d.png 會生成類似 image_1.png iamge_2.png等文件。
3 - 每間隔X時間截取一張
有了上面的每秒一張,很容易寫出每X秒一張的指令:
<code>ffmpeg -i input.flv -vf fps=1/450 image_%d.png/<code>
可以猜測的到,這個指令是,每間隔450秒,截取一張圖片。
4 - 每間隔X個關鍵幀截取一張
這個挺實用:
<code>ffmpeg -i input.flv -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr image_%d.png/<code>
上述指令會選取間隔幀選取一張圖像元素完整,沒有缺損的幀,並截屏返回。在做圖片故事梗概的時候很有用。
結語
ffmpeg在視頻流處理,文件處理,音視頻圖像處理方面,是當今世界的基石,數量掌握參數技巧,無疑會大幅提升生產力,提高幸福指數。
Happy coding :-)
【本文由 發佈,持續分享編程故事,歡迎關注】
閱讀更多 程序員小助手 的文章