ffmpeg第5篇:讓水印圖片旋轉起來


這篇把上次挖的坑填上
ffmpeg正式篇的上一篇(傳送門)說了,這一篇要讓水印旋轉起來,但是后面有事情一直沒有時間搞,今天,它來了............

如果想實現旋轉的功能,需要使用ffmpeg過濾器的鏈式功能,即:先把作為水印的圖片旋轉,再覆蓋到視頻上

第一步,實現旋轉功能,具體的命令如下:
ffmpeg -i buck.mp4 -i s1.jpg -lavfi "[1:v]rotate=PI/6:c=none[out];[0:v][out]overlay=10:10" out.mp4 -y
而實際出來的效果如下:
1.jpg
可以看到,旋轉功能已經實現了,但是卻有兩個問題:

  • 由於圖片是長方形的,旋轉后圖片丟失了部分
  • 圖片移走的部分是綠色的,完全無法直視

第二步:解決上面的兩個問題,具體命令如下:
ffmpeg -i buck.mp4 -i s1.jpg -lavfi "[1:v]format=rgba,rotate='PI/6:c=0x00000000:ow=hypot(iw,ih):oh=ow'[out];[0:v][out]overlay=10:10" out.mp4 -y
3.jpg
思路是:

  • 調整水印寬高,根據勾股定律計算圖片對角長度(hypot),將這個值設置為水印的寬高,這樣,圖片無論如何旋轉,都不會超過設定的寬高,也就不會出現圖片部分丟失的情況了
  • 將圖片顯示的像素格式轉換為rgba格式,如果做過前端的小伙伴會很熟悉的,最后的a表示透明度,如此一來,c=0x00000000的作用就是將圖片旋轉后的背景變為白色且完全透明,這樣就不會遮擋視頻了

第三步:讓旋轉停不下來huaji,具體命令如下:
ffmpeg -i buck.mp4 -loop 1 -i s1.jpg -lavfi "[1:v]format=rgba,rotate='PI/2*t:c=0x00000000:ow=hypot(iw,ih):oh=ow'[out];[0:v][out]overlay=10:10" -shortest out.mp4 -y
4.jpg
細心的小伙伴會發現,這次水印圖片前面添加了-loop 1參數,具體為什么要添加相信看過第四篇(傳送門)的小伙伴想必已經知道了,這里再重復一遍:因為水印圖片默認在播放一次后就停下來,保留最后一幀,所以要讓水印圖片保持循環才行

小作業:讓水印位置也隨着時間動起來?huaji

文章目錄

ffmpeg第1篇:日志級別控制、保存日志到指定文件、處理進度查詢
ffmpeg第2篇:簡單濾鏡與復雜濾鏡的區別
ffmpeg第3篇:為視頻添加靜態水印
ffmpeg第4篇:為視頻添加動態水印
ffmpeg第5篇:讓水印圖片旋轉起來
ffmpeg第6篇:濾鏡語法
ffmpeg第7篇:數據流選擇神器-map指令

番外篇

ffmpeg番外篇:聽說這款水印曾經在某音很火?辦它!

有問題請留言溝通,歡迎轉載,轉載請注明出處

更多精彩內容,歡迎點擊個人博客地址:愉快編程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM