ffmpeg中的日誌控制、儲存日誌到指定檔案、處理進度查詢
阿新 • • 發佈:2021-02-19
ffmpeg預設就會輸出一些日誌,包含編譯的工具(gcc版本)、可用的元件(--enable-xxxx)、元件版本號碼,如下圖
![log](https://blog-static.cnblogs.com/files/daner1257/1.gif)
這些資訊是預設輸出的,每次執行合作都會列印在控制檯中,如果不想看這些資訊,ffmpeg提供了`-hide_banner`選項,新增該選項後,即不會列印這些資訊
而在執行日誌層面,ffmpeg日誌與通用日誌一致,也有級別的概念,可以使用`-v`選項來控制,設定級別時,可以使用英文單詞,也可以使用數字,具體的級別如下
### debug 48
即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`
執行命令後,控制檯輸出日誌如下
![debug_log](https://blog-static.cnblogs.com/files/daner1257/2.gif)
上面的命令,將視訊壓縮成190x108解析度的視訊,使用了`-vf`選項,可以看到紅框中的資訊,將命令執行時的步驟很詳細的列印了出來。
### verbose 40
比debug日誌簡略一些,上面的命令同樣再執行一次,上圖紅框中的資訊就不再列印了
### info 32
與verbose相似,顯示的日誌會稍微少些,這也是ffmpeg預設使用的日誌級別
### warning 24
只顯示warning或更嚴重的日誌
### error 16
只顯示錯誤或更嚴重的日誌
### fatal 8
只顯示致命錯誤,一般出現這些錯誤,程式會退出
### panic 0
只顯示程式崩潰的日誌,這種一般是ffmpeg內部的錯誤了,一般二般情況下應該都不會遇到的
### quiet -8
什麼也不顯示,包括錯誤資訊,生產環境通常並不會這麼做,除非你瘋了