當前位置:首頁 » 安卓系統 » 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 會提高視頻質量

熱點內容
編程課v 發布:2025-02-04 08:45:00 瀏覽:104
模擬器能有手機腳本么 發布:2025-02-04 08:39:50 瀏覽:757
android顯示html圖片 發布:2025-02-04 08:35:31 瀏覽:791
如何查學信網賬號及密碼 發布:2025-02-04 08:33:55 瀏覽:502
linux32位jdk 發布:2025-02-04 08:33:55 瀏覽:247
康佳伺服器連接失敗是怎麼回事 發布:2025-02-04 08:18:51 瀏覽:916
編譯編譯有什麼 發布:2025-02-04 08:05:52 瀏覽:735
讓外網訪問內網伺服器 發布:2025-02-04 08:02:20 瀏覽:783
奶塊腳本菜地 發布:2025-02-04 07:46:35 瀏覽:238
條形碼識別源碼 發布:2025-02-04 07:45:55 瀏覽:457