1. 程式人生 > >ffmpeg中的日誌控制、儲存日誌到指定檔案、處理進度查詢

ffmpeg中的日誌控制、儲存日誌到指定檔案、處理進度查詢

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 什麼也不顯示,包括錯誤資訊,生產環境通常並不會這麼做,除非你瘋了