在ffmpeg中,添加水印需要用overlay濾鏡,這是一個復雜濾鏡,因為它需要兩個輸入,默認第一個輸入是主畫面,第二輸入為水印,先執行一個簡單的看看。
下面有兩個文件,一個是可愛的大雄兔,一個是可愛的doggie,咱們就把doggie加到大雄兔上面去
執行命令
ffmpeg -hide_banner -i big_buck_bunny.mp4 -i doggie2.png -filter_complex "overlay=x=0:y=0" out.mp4 -y
這個命令的作用是在視頻的左上角添加水印,命令中的x和y表示水印在視頻中的位置,視頻左上角坐標為(0,0),向右向下延伸。
執行完成后,打開輸出文件,效果如下
是不是很簡單?
簡單的看過了,下面來個稍微有一點點難度的
如果要把水印加到右上角,怎么處理?
可能有的小伙伴會說,先看看視頻和圖片的分辨率啊,然后算一下x,不就可以了?
這樣當然是可以的,可是如果要批量處理不同分辨率的視頻呢?這時再用上面的方法恐怕會累死人吧。
為了解決上面問題,再引入四個參數:
- main_w(W):主畫面的寬度
- main_h(H):主畫面的高度
- overlay_w(w):水印寬度
- overlay_h(h):水印高度
有了這四個參數,再來看上面的問題
ffmpeg -hide_banner -i big_buck_bunny.mp4 -i doggie2.png -filter_complex "overlay=x=W-w:y=0" out.mp4 -y
上面的命令等效於
ffmpeg -hide_banner -i big_buck_bunny.mp4 -i doggie2.png -filter_complex "overlay=x=main_w-overlay_w:y=0" out.mp4 -y
執行后,看看輸出文件
咱們的小doggie跑到右上角去了。
有了上面的例子,那左下角、右下角怎么放聰明的小伙伴肯定知道了吧,就不啰嗦了。
這篇只是添加一個圖片作為水印,現在的視頻都不會這么簡單了,通常都是動態的水印,或每隔一段時間出現一次,這種下篇再講吧,一步步來。
文章目錄
ffmpeg第1篇:日志級別控制、保存日志到指定文件、處理進度查詢
ffmpeg第2篇:簡單濾鏡與復雜濾鏡的區別
ffmpeg第3篇:為視頻添加靜態水印
ffmpeg第4篇:為視頻添加動態水印
ffmpeg第5篇:讓水印圖片旋轉起來
ffmpeg第6篇:濾鏡語法
ffmpeg第7篇:數據流選擇神器-map指令