ffmpeg簡(jiǎn)介
項(xiàng)目做重構(gòu),舊項(xiàng)目視頻及圖片資源要向新項(xiàng)目遷移,但舊項(xiàng)目到新項(xiàng)目項(xiàng)目名稱有調(diào)整,因而資源的遷移也要去除對(duì)應(yīng)的標(biāo)記,背景是老項(xiàng)目做視頻上傳時(shí),固定位置有水印,根據(jù)產(chǎn)品需求,需要將老的視頻資源上的水印去除,于是考慮到使用視頻工具ffmpeg。
ffmpeg是可以轉(zhuǎn)換音視頻流的工具,其包含豐富的音視頻處理工具庫(kù),提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。也包含了非常先進(jìn)的音頻/視頻編解碼庫(kù)libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開發(fā)的。
ffmpeg在Linux平臺(tái)下開發(fā),但它同樣也可以在其它操作系統(tǒng)環(huán)境中編譯運(yùn)行,包括Windows、Mac OS X等。很多常用的音視頻處理工具底層都是使用FFmpeg。
基本安裝及命令
window安裝比較簡(jiǎn)單。直接下載解壓即可
1)下載進(jìn)入http://ffmpeg.org/download.html#build-windows選擇點(diǎn)擊打開鏈接Windows對(duì)應(yīng)的版本下載
2)解壓 ffmpeg-20170418-6108805-win64-static.zip 文件到指定目錄;
3)將解壓后的文件目錄中 bin 目錄(包含 ffmpeg.exe )添加進(jìn) path 環(huán)境變量中;
安裝完成后執(zhí)行 ffmpeg -version 看安裝是否成功。
ffmpeg的命令都是ffmpeg開始,加執(zhí)行參數(shù)而成,如下:
ffmpeg -i [source] cmd [source] cmd [param] ...... [output]
常用命令整理
1).視頻中音頻提取
ffmpeg -i apple.mp4 -f mp3 -vn apple.mp3
2).視頻中加入mp3
ffmpeg -i out.mp3 -i kiss.mp4 -y new.mp4
3).音視頻裁剪
ffmpeg -i out.mp3 -ss 00:00:00 -t 4 123.mp3
4).獲取音視頻信息
ffmpeg -i source.mp4
5).視頻固定位置加馬賽克 xy位置坐標(biāo) wh馬賽克的大小
ffmpeg -i source.mp4 -filter_complex delogo=x=%s:y=%s:w=200:h=50:show=0,delogo=x=%s:y=%s:w=200:h=50:show=0 out.mp4
6).ffplay 開啟攝像頭
ffplay -f vfwcap -i 0
7).rtmp推流到服務(wù)器
ffmpeg -f dshow -i video="USB 視頻設(shè)備" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/234
8).rtmp推視頻流到服務(wù)器
ffmpeg.exe -re -i 100MB.mp4 -f flv rtmp://192.168.23.124:1935/live/123
Java集成ffmpeg處理水印工具
如上命令5,通過Java調(diào)用系統(tǒng)命令,調(diào)用ffmpeg處理水印并將視頻存儲(chǔ)到本地。代碼如下:

通過Jvm調(diào)用系統(tǒng)命令執(zhí)行ffmpeg命令。其中通過視頻的大小(長(zhǎng)和寬<也可以由ffmoeg獲取>)計(jì)算水印的位置。
加水印的命令:"delogo=x=%s:y=%s:w=200:h=50:show=0,delogo=x=%s:y=%s:w=200:h=50:show=0",表示在視頻的兩個(gè)位置去除水印,水印大小為長(zhǎng)200,寬50,兩個(gè)坐標(biāo)計(jì)算后,由String.format格式化加入。
處理前后效果

寫在后面:
由于作者只是簡(jiǎn)單集成使用,暫未進(jìn)行過多的深入學(xué)習(xí),當(dāng)然ffmpeg還有包含更多實(shí)用性的功能,包括搭建音視頻服務(wù)器,并且推流實(shí)現(xiàn)直播功能等。歡迎讀者一起學(xué)習(xí),并探討!