[Tool] FFprobe 教學

軟體:FFprobe
官網文件

功能:得到影音資訊,可適用於各種程式語言

命令行:ffprobe [OPTIONS] [INPUT_FILE]
//只顯示錯誤訊息,且顯示格式訊息
ffprobe -v error -show_format -show_streams input.mp4

//不顯示任何訊息,且將格式訊息輸出為 json 格式
ffprobe -of json -show_format -v quiet input.mp4

//隱藏版權訊息,並顯示影片長度跟影片長寬解析度
ffprobe input.mp4 -show_entries format=duration:stream=height,width -hide_banner

指令

  • -h, -?, -help, --help [arg]
    • 可以指定一個參數 arg ,如果不指定,只顯示基本選項
    • arg
      • long
        • 除基本選項外,還將打印高級選項
      • full
        • 顯示一個完整的選項列表
      • decoder=decoder_name
        • 顯示名稱為「decoder_name」解碼器的詳細訊息
      • encoder=encoder_name
        • 顯示名稱為「encoder_name」編碼器的詳細訊息
      • demuxer=demuxer_name
        • 顯示名稱為「demuxer_name」demuxer 的詳細訊息
      • muxer=muxer_name
        • 顯示名稱為「muxer_name」muxer 的詳細訊息
      • filter=filter_name
        • 顯示名稱為「filter_name」過濾器的詳細信息
  • -version
    • 顯示版本訊息
  • -formats
    • 顯示有效的格式
  • -devices
    • 顯示可用的 devices
  • -codecs
    • 顯示 libavcodec 已知的所有編解碼器
  • -decoders
    • 顯示有效的解碼器
  • -encoders
    • 顯示有效的編碼器
  • -bsfs
    • 顯示有效的比特流過濾器
  • -protocols
    • 顯示有效的協議
  • -filters
    • 顯示 libavfilter 有效的過濾器
  • -pix_fmts
    • 顯示有效的像素格式
  • -sample_fmts
    • 顯示有效的採樣格式
  • -layouts
    • 顯示通道名稱以及標準通道佈局
  • -colors
    • 顯示認可的顏色名稱
  • -loglevel [repeat+]loglevel
    • 簡寫:-v
    • 範例:ffprobe -v quiet input.mp4
    • repeat+
      • 表示不將重複的日誌輸出都放在第一行,並去掉 Last message repeated n times
    • loglevel
      • quiet
        • 不顯示任何訊息
      • panic
        • 只顯示任何會當掉的致命錯誤
      • fatal
        • 只顯示致命錯誤
      • error
        • 只顯示錯誤
      • warning
        • 只顯示錯誤和警告
      • info
        • 只顯示訊息、錯誤和警告
      • verbose
        • 同 info 但更詳細
      • debug
        • 顯示任何資訊
      • trace
  • -hide_banner
    • 禁止默認會顯示的版權訊息、編譯選項以及庫版本訊息等
  • -f format
    • 強制使用的格式
  • -unit
    • 顯示值的單位
  • -prefix
    • 顯示的值使用標準國際單位制詞頭
  • -byte_binary_prefix
    • 對字節值強制使用二進制前綴
  • -sexagesimal
    • 時間值使用六十進位的格式 HH:MM:SS.MICROSECONDS
  • -pretty
    • 美化顯示值的格式。它相當於 "-unit -prefix -byte_binary_prefix -sexagesimal"
  • -print_format writer_name[=writer_options]
    • 簡寫:-of
    • 範例:ffprobe -of json -show_format -v quiet input.mp4
    • 設置輸出格式
    • writer_name
      • 指定 writer 的名稱
      • default, csv, flat, ini, json, xml
    • writer_options
      • 指定傳遞給 writer 的選項
  • -sections
    • 顯示資訊架構
    • 範例:ffprobe -sections
  • -select_streams stream_specifier
    • 只選擇 stream_specifier 指定的流
    • 範例:ffprobe -show_packets -select_streams v:1 input.mp4
    • stream_specifier
      • 可指定 inde,如 v:0, a:1
      • a
        • 音訊
      • v
        • 視訊
      • s
        • 字幕
  • -show_data
    • 顯示實際數據,以十六進制和 ASCII 表示,需結合使用
    • 與 -show_packets 結合使用,將 dump 封包數據
    • 與 -show_streams 結合使用,將 dump codec 附加數據
  • -show_data_hash algorithm
    • 同 -show_data,但以 hash 表示
    • algorithm
      • MD5, murmur3, RIPEMD128, SHA160, ...
  • -show_error
    • 顯示探測輸入文件時的錯誤訊息
  • -show_format
    • 顯示輸入多媒體流的容器格式訊息
  • -show_format_entry name
    • 同 -show_format,但可指定 entry,可複數
    • 範例:ffprobe input.mp4 -show_format_entry duration,filename -hide_banner
  • -show_entries section_entries
    • 指定任何 section 中的 entry,可複數
    • 範例:ffprobe input.mp4 -show_entries format=duration:stream=height,width -hide_banner
  • -show_packets
    • 顯示輸入多媒體流中每一個封包的訊息
  • -show_frames
    • 顯示輸入多媒體流中的每一幀以及字幕的訊息
  • -show_streams
    • 顯示輸入多媒體流中每一個流的訊息
  • -show_programs
    • 顯示輸入多媒體流中程序以及其流的訊息
  • -show_chapters
    • 顯示格式中儲存的章節訊息
  • -count_frames
    • 計算每一個流中的幀數,在相應的段中進行顯示
  • -count_packets
    • 計算每一個流中的包數,在相應的段中進行顯示
  • -read_intervals read_intervals
    • 只讀取特定區間
    • read_intervals
      • [START|+START_OFFSET][%[END|+END_OFFSET]]
      • 範例
        • 從 10s 開始讀取 20s,然後到 01:30 讀取到 01:45
          • 10%+20,01:30%01:45
        • 從 01:23 開始,讀取 42個封包
          • 01:23%+#42
        • 只讀取開頭前 20s
          • %+20
        • 讀取到 02:30
          • %02:30
  • -show_private_data
    • 簡寫:-private
    • 顯示隱藏訊息
  • -show_program_version
    • 顯示程序版本及配置相關訊息
  • -show_library_versions
    • 顯示庫版本相關訊息
  • -show_versions
    • 顯示程序和庫版本相關訊息
      相當於同時設置 -show_program_version 和 -show_library_versions
  • -show_pixel_formats
    • 顯示 pixel 格式
  • -bitexact
    • 強制使用標準比特率
  • -i input_file
    • 指定輸入文件

參考

007 FFprobe使用指南
wiki:FFprobeTips

留言