1. 準備工具
1.MacBook Pro
2.homebrew
3.ffmpeg
2.工具安裝
homebrew安裝
說起homebrew確實是Mac上非常好用的一個工具抄邀,像什么CocoPods,node,ffmpeg等等安裝都不在話下阴汇。不過因為用的是公司的電腦绞佩,之前不知道咋折騰把Mac的管理權限都給弄沒了校翔,啥都安裝不了胳喷。要解決此問題可以參考以下博客
Mac丟失管理員權限解決辦法
homebrew安裝命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
為Mac安裝ffmpeg
使用ffmpeg命令一般有兩種方式吨拍,第一種是自己編譯ffmpeg源碼,通過調(diào)用ffmpeg的main()函數(shù)來執(zhí)行ffmpeg命令(以后有機會可以寫個有關ios上使用ffmpeg命令的博客)婆誓。第二種是直接安裝到Mac上吃环,使用終端來管理。
使用homebrew安裝ffmpeg
brew install ffmpeg
檢查ffmpeg是否安裝成功
brew info ffmpeg
有關ffmpeg安裝博客較多洋幻,這里就不在贅述郁轻。到這里使用ffmpeg給視頻加水印的準備工作就完成了。
給視頻加圖片水印
相比給視頻增加文字水印文留,圖片水印相對簡單一些范咨。具體原因后面我會說明。
在視頻右下角的添加圖片水印
ffmpeg -i 倉庫實景.mp4 -vf "movie=wenzi.png[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " output.mp4
下面來說明一下這條命令中基本參數(shù)的含義
-i :一般表示輸入
倉庫實景.mp4:這里表示要處理的視頻源
-vf:濾鏡相關厂庇,視頻裁剪,水印等等操作都需要它完成
wenzi.png: 要添加的水印圖片地址
overlay:水印參數(shù)
main_w-overlay_w-10 : 水印在x軸的位置输吏,也可以寫成x=main_w-overlay_w-10
main_h-overlay_h-10:水印在y軸的位置
至于里面其他參數(shù)的意義如[watermark]权旷,我個人猜測可能是類似標記之類的東西,方便閱讀的(ps:有了解的小伙伴可以告知一聲哈)在ffmpeg的文檔中也沒有找到這個參數(shù)贯溅。
ffmpeg官方提供了另外一種添加圖片水印的方法
在視頻右下角的添加圖片水印
ffmpeg -i input.mp4 -i logo.png -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' output.mp4
在視頻左下角添加圖片水印
ffmpeg -i input.mp4 -i logo.png -filter_complex 'overlay=x=10:y=main_h-overlay_h-10' output.mp4
參數(shù)解析
-filter_complex: 相比-vf, filter_complex適合開發(fā)復雜的濾鏡功能拄氯,如同時對視頻進行裁剪并旋轉。參數(shù)之間使用逗號(它浅,)隔開即可
main_w:視頻寬度
overlay_w: 要添加的圖片水印寬度
main_h : 視頻高度
overlay_h:要添加的圖片水印寬度
ffmpeg官方文檔實現(xiàn):ffmpeg文檔地址
給視頻添加文字水印
在視頻左上角添加一條白色字體的文字水印
ffmpeg -i input.mp4 -vf "drawtext=fontfile=simhei.ttf: text=‘技術是第一生產(chǎn)力’:x=10:y=10:fontsize=24:fontcolor=white:shadowy=2" output.mp4
參數(shù)說明
fontfile:字體類型
text:要添加的文字內(nèi)容
fontsize:字體大小
fontcolor:字體顏色
然后译柏,執(zhí)行上面的命令。然鵝出現(xiàn)了以下錯誤
這個錯誤是很明顯的姐霍,直譯過來就是缺失一種filter(濾鏡),叫做drawtext鄙麦。可是這個drawtext到底是個什么東西呢(PS:一開始受到一些誤導我認為是因為本地缺少字體)ffmpeg文檔里有一段對drawtext的介紹
這里很明確的說了镊折,drawtext用來在“視頻頂部的指定文件中繪制文本字符串或文本”胯府。如果想使用drawtext這個filter,在編譯ffmpeg的時候就必須支持freetype恨胚。那么如何檢查我們安裝的ffmpeg是否支持freetype呢骂因,好吧,現(xiàn)在讓我們回到安裝ffmpeg的地方赃泡。執(zhí)行 ffmpeg是否安裝成功的命令(brew info ffmpeg)里有如下信息寒波。
可以看到freetype是不支持的乘盼。那么剩下的就很明確了,配置ffmpeg的configure參數(shù)俄烁,讓它支持freetype即可绸栅。
安裝freetype
brew install freetype
安裝ffmpeg
brew install ffmpeg --with-freetype
已經(jīng)安裝過ffmpeg
brew reinstall ffmpeg --with-freetype
如果還是安裝不上的話可以嘗試先執(zhí)行卸載第三方庫的命令
brew uninstall freetype
暴力點甚至可以先卸載ffmpeg,再執(zhí)行以上命令
brew uninstall ffmpeg
再來看看ffmpeg支持的類型
接著再執(zhí)行ffmpeg添加字體水印命令即可猴娩。