當前位置:首頁 » 安卓系統 » android視頻加水印

android視頻加水印

發布時間: 2023-08-06 01:46:41

⑴ FFmpeg命令行語法之-filter_complex (Android環境)

廢話少說,先舉個例子

這個例子其實在 android端使用ffmpeg給視頻添加圖片水印 里已經說過了。
這是一個給視頻打上圖片水印的命令。
然而,他打的不是一個普通的水印,而是兩個。
命令看上去很簡潔。然而(又是然而),正因為他這么簡潔,所以一開始上來未免搞不清他實際是什麼意思。

來,我們把他拆開,其實他由以下部分組成:

1、2、4部分的含義一目瞭然。3里頭的scale和overlay也是字面的意思,不難理解。然而,-filter_complex濾鏡的參數結構就不是那麼好理解了,比如說那一坨[]里頭的東西是什麼鬼?

來,一個個解釋。
[1:v]這個里頭兩個參數,1表示的是操作對象的編號。在本例中0就是原始視頻文件input.mp4,1就是image1.png,2就是image2.png,3就是output.mp4。而另一個參數v表示操作對象里的視頻信息。
[img1]是這個操作過濾器的名字。(當然名字可以隨便起)
所以這頭一句 [1:v]scale=100:100[img1] 的意思就是對圖片imagei.png進行調節尺寸的操作,並將這個操作的結果命名為img1。後面的[2:v]和[img2]也是一個意思。
我們繼續,overlay前面 [0:v][img1] 湊一起是什麼意思呢。0自然就是指的原始視頻,這句的意思就是將[img1]疊加到0對象的視頻上。本例中就是把image1.png疊加到input.mp4上。這里需要注意的就是順序:後一個對象疊加到前一個上,後一個對象在上層。如果寫成 [img1][0:v] ,那相對本例其實就是把視頻疊加到圖片imge1.png上。這樣的話一般來說由於視頻通常是全屏,等於用視頻覆蓋了圖片,水印完全看不到了。
好,我們又把這個操作的結果命名為[bkg],那麼接下來 [bkg][img2] 的意思就很明了了。就是把image2.png再疊加上去,image2.png是在最上層的,如果位置重合的話,他會遮蓋 image1.png的水印。
於是,事就這樣成了。

1.水印的移動:
這里需要用到時間參數。
比如: overlay=0+t*20:0
這里在x坐標上加上了 +t*10 ,於是水印就會慢慢向右邊移動。

2.特定時間顯示水印:
這次不僅要用到時間參數,還要用上條件語句。

if條件語句的基本結構就是

再來看看計算表達式。
這里用到了表達式 gte(x,y) 。如果x大於等於y則表達式的值為1,反之為0。
所以 if(gte(t,2),10,NAN) 的意思就是,當時間大於等於2秒時,水印x位置為10,反之不顯示水印。(或者你也可以用 lte 來判斷「小於或等於」)
要了解所有表達式的話,可以去啃一下ffmpeg官方文檔的 Expression Evaluation 部分。

參考:
ffmpeg 基本用法大全
ffmpeg Documentation

⑵ Android NDK開發之旅38--FFmpeg視頻添加水印

Android NDK開發之旅 目錄

Android也是利用FFmpeg命令行的形式(混編),進行視頻轉碼壓縮

水印位置參數的第一個數值是水印圖片的左上角的x軸像素值,第二個數值是水印圖片的左上角的y軸像素值。

水印位置參數除了使用數值外,還可以使用以下幾個參數:

對應地可以將overlay參數設置成如下值來改變水印圖片的位置:

所以質量會下降,在參數中添加設置 如:-b 1024k 會提高視頻質量

熱點內容
編程右交換 發布:2025-03-16 15:28:43 瀏覽:399
根號的除法運演算法則 發布:2025-03-16 15:26:35 瀏覽:764
冰箱壓縮機照片 發布:2025-03-16 15:25:34 瀏覽:882
博雅象棋伺服器地址 發布:2025-03-16 15:02:26 瀏覽:816
如何實現職業化配置管理 發布:2025-03-16 14:55:41 瀏覽:968
一編程就頭疼 發布:2025-03-16 14:39:25 瀏覽:502
如何連接自己的個人伺服器 發布:2025-03-16 14:33:14 瀏覽:747
安卓緩存照片進相冊里怎麼取消 發布:2025-03-16 14:33:08 瀏覽:739
a站怎麼緩存 發布:2025-03-16 14:31:28 瀏覽:992
javascriptdes演算法 發布:2025-03-16 14:23:57 瀏覽:321