ffmpeg默認就會輸出一些日誌,包含編譯的工具(gcc版本)、可用的組件(--enable-xxxx)、組件版本號碼,以下圖
git
這些信息是默認輸出的,每次執行合做都會打印在控制檯中,若是不想看這些信息,ffmpeg提供了-hide_banner
選項,添加該選項後,即不會打印這些信息
而在執行日誌層面,ffmpeg日誌與通用日誌一致,也有級別的概念,能夠使用-v
選項來控制,設置級別時,能夠使用英文單詞,也能夠使用數字,具體的級別以下github
即debug級別的日誌,在ffmpeg中使用48來標記,該級別會打印所有的日誌,執行一個命令試試
ffmpeg -v debug -i 3.mp4 -vf scale=192x108 out.mp4 -y
該命令等效於
ffmpeg -v 48 -i 3.mp4 -vf scale=192x108 out.mp4 -y
執行命令後,控制檯輸出日誌以下
上面的命令,將視頻壓縮成190x108分辨率的視頻,使用了-vf
選項,能夠看到紅框中的信息,將命令執行時的步驟很詳細的打印了出來。ide
比debug日誌簡略一些,上面的命令一樣再執行一次,上圖紅框中的信息就再也不打印了工具
與verbose類似,顯示的日誌會稍微少些,這也是ffmpeg默認使用的日誌級別ui
只顯示warning或更嚴重的日誌debug
只顯示錯誤或更嚴重的日誌日誌
只顯示致命錯誤,通常出現這些錯誤,程序會退出code
只顯示程序崩潰的日誌,這種通常是ffmpeg內部的錯誤了,通常二般狀況下應該都不會遇到的視頻
什麼也不顯示,包括錯誤信息,生產環境一般並不會這麼作,除非你瘋了🤣
以上是控制日誌打印級別,有時須要將日誌保存下來,以備出現問題時定位問題,這時能夠使用- report
命令,將日誌保存到文件中,執行命令ffmpeg -report -i 3.mp4 -vf scale=192x108 out.mp4 -y
,執行後文件夾中出現了一個日誌文件
打開文件後,發現輸出的日誌與verbose級別一致。
可是這種方式文件名是ffmpeg根據時間默認生成的,若是要指定文件名能夠嗎?答案固然是確定的,執行命令
FFREPORT=file=ffreport.log:level=32 ffmpeg -i 3.mp4 -vf scale=192x108 out.mp4 -y
成功執行後,會發現文件夾下多了一個名爲ffreport.log的文件,即指定生成的日誌文件blog
有時可能會想知道當前處理的進度,這時能夠使用-progress
選項,執行命令以下
ffmpeg -progress pro.log -i big_buck_bunny.mp4 -vf scale=192x108 out.mp4 -y
成功執行後,會有一個pro.log文件,打開後以下
有了這些信息,就能夠了解當前處理的進度,能夠作一些人性化的功能。