【ffmpeg】影片加上浮水印

參考資料 ----
ffmpeg 9.95 overlay
How to add transparent watermark in center of a video with ffmpeg?


先參考這篇筆記

【Linux】在 CentOS 以 ffmpeginstaller 安裝 ffmpeg 相關套件

確定需要的套件都安裝了。

[user]$ ffmpeg  -i  影片檔名  -i  浮水印檔名  -filter_complex  "overlay=5:5"  輸出檔名

例如:

[user]$ ffmpeg  -i  test.mp4  -i  watermark.png  -filter_complex  "overlay=5:5"  target.mp4

其中 overlay=5:5,數字是 X座標:Y座標(0,0左上角)

浮水印檔不必與原影片檔在同一目錄,不過放同目錄可以少打一些字  ;-)

原影片檔 與 輸出檔 的 檔名不可相同,否則會回應錯誤。

ffmpeg 會依副檔名自動轉換影片格式,所以不要任意改副檔名。

注意:
若您加浮水印的影片是 mp4,且要放在 DarwinStreaming Server 做線上影音播放,那就還要為影片加 hint

[user]$ MP4Box  影片檔名.mp4  -hint   (注意大小寫)


============================================================
以下是舊筆記
============================================================


加上文字浮水印 ----
* 先以

[user]$ locate drawtext.so

[user]$ find / -name drawtext.so

找到 drawtext.so 的位置, 例如 --

/usr/lib/vhook


* 再找到要使用的字型, 例如 --

/usr/share/fonts/chinese/TrueType/uming.ttf


[user]$ ffmpeg  -i  原始影片  -vhook  '/usr/lib/vhook/drawtext.so  -f  /usr/share/fonts/chinese/TrueType/uming.ttf  -t  TEST  -x  5  -y  5  -c  #FFFF00  -C  #00FFFF' -f  mpeg  輸出影片

參數說明:
-t 為要打上的浮水印文字內容, 此例為 TEST
-x 浮水印的 x 座標位置
-y 浮水印的 y 座標位置
-c(小寫) 字的顏色
-C(大寫) 字的背景顏色
-f 要輸出的影片格式, 為選擇性參數, 若不加此參數, 可輸出的影片格式與原始影片相同, 不過我以一段 wmv 影片測試, 發現雖加上了浮水印, 但輸出的影片以 MediaPlayer 播放時, 變成無法任選要從哪個點看.

ffmpeg -formats 會列出支援的格式, 在這邊看不到輸出的格式有支援 wmv, 所以就將影片轉為 mpeg, 就可任選播放點了.


加上圖片浮水印 ----
[user]$ ffmpeg  -i  原始影片  -vhook  '/usr/lib/vhook/watermark.so  -f  圖片'  -f  mpeg  輸出影片

ffmpeg 會將要做為浮水印的圖片放大到與影片尺寸一樣, 並呈半透明狀; 例如: 影片尺寸為 640*480, 而浮水印為 150*90, 則轉出的影片浮水印仍會放大為 640*480.

這是張 ffmpeg 做為浮水印範例的圖片 ----

http://engene.se/ffmpeg_watermark.gif

所以若要在右上角加上浮水印, 則應製作一張大小為 640*480 的圖, 在圖右上角放您要顯示的 logo.


相關筆記 ----
【Linux】在 CentOS 以 ffmpeginstaller 安裝 ffmpeg 相關套件