【ffmpeg】ffprobe基本用法

ffprobe 是 FFmpeg 工具集中的一個強大命令行工具,主要用于分析多媒體文件(如視頻、音頻等)的格式和內容信息。它可以提取文件的元數據、編解碼器信息、流詳情、幀信息等,而無需對文件進行轉碼或修改。


基本用法

ffprobe [選項] 輸入文件

常用功能及示例

1. 顯示文件基本信息

默認輸出文件的格式、流信息(視頻/音頻/字幕等):

ffprobe input.mp4
2. 以 JSON 格式輸出詳細信息

適合程序解析:

ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
  • -v quiet:隱藏日志信息。
  • -print_format json:輸出 JSON 格式。
  • -show_format:顯示文件格式信息(如時長、碼率等)。
  • -show_streams:顯示所有流(視頻、音頻等)的詳細信息。
3. 查看特定信息
  • 查看視頻分辨率、幀率:

    ffprobe -v error -select_streams v:0 -show_entries stream=width,height,avg_frame_rate -of csv=p=0 input.mp4
    
    • -select_streams v:0:選擇第一個視頻流。
    • -of csv=p=0:輸出 CSV 格式(無表頭)。
  • 查看音頻采樣率和聲道數:

    ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate,channels -of csv=p=0 input.mp4
    
4. 查看幀信息(關鍵幀、PTS 等)
ffprobe -show_frames input.mp4
  • 輸出每一幀的詳細信息(如幀類型、時間戳等)。
5. 檢查關鍵幀(I幀)位置
ffprobe -v error -select_streams v:0 -show_entries frame=pkt_pts_time,pict_type -of csv=p=0 input.mp4
  • pict_type=I 表示關鍵幀。
6. 查看文件時長
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
7. 查看編解碼器信息
ffprobe -show_streams -show_format input.mp4
  • 輸出中包含 codec_name(如 h264aac)。

常用選項

選項說明
-show_format顯示文件容器格式信息(如 MP4、MKV)。
-show_streams顯示所有流(視頻、音頻、字幕等)的詳細信息。
-show_frames顯示每一幀的詳細信息(可能輸出很長)。
-select_streams v:0僅選擇第一個視頻流(a:0 表示第一個音頻流)。
-v error隱藏冗余日志,僅顯示錯誤。
-print_format json以 JSON 格式輸出(還支持 xml, csv 等)。
-of default控制輸出格式(如 -of csv=p=0 輸出簡潔 CSV)。

代碼示例

PS C:\Users\Mayn\Desktop> ffprobe .\testVideo.mp4
ffprobe version 7.1-essentials_build-www.gyan.dev Copyright (c) 2007-2024 the FFmpeg developersbuilt with gcc 14.2.0 (Rev1, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberbandlibavutil      59. 39.100 / 59. 39.100libavcodec     61. 19.100 / 61. 19.100libavformat    61.  7.100 / 61.  7.100libavdevice    61.  3.100 / 61.  3.100libavfilter    10.  4.100 / 10.  4.100libswscale      8.  3.100 /  8.  3.100libswresample   5.  3.100 /  5.  3.100libpostproc    58.  3.100 / 58.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\testVideo.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf58.20.100Duration: 00:00:12.10, start: 0.000000, bitrate: 2770 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 720x1280, 2714 kb/s, 30 fps, 30 tbr, 90k tbn (default)Metadata:handler_name    : VideoHandlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 48 kb/s (default)Metadata:handler_name    : SoundHandlervendor_id       : [0][0][0][0]

版本信息和編譯配置詳情

ffprobe version 7.1-essentials_build-www.gyan.dev Copyright (c) 2007-2024 the FFmpeg developersbuilt with gcc 14.2.0 (Rev1, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberbandlibavutil      59. 39.100 / 59. 39.100libavcodec     61. 19.100 / 61. 19.100libavformat    61.  7.100 / 61.  7.100libavdevice    61.  3.100 / 61.  3.100libavfilter    10.  4.100 / 10.  4.100libswscale      8.  3.100 /  8.  3.100libswresample   5.  3.100 /  5.  3.100libpostproc    58.  3.100 / 58.  3.100

1. FFprobe 版本信息

  • 版本號ffprobe version 7.1-essentials_build-www.gyan.dev
    • 這是由第三方開發者 GyanD 編譯的 FFmpeg 7.1 版本(非官方構建)。
    • essentials_build 表示這是一個精簡版,可能只包含常用功能。
  • 版權聲明Copyright (c) 2007-2024 the FFmpeg developers
    FFmpeg 是一個開源項目,版權歸開發者社區所有。

2. 編譯環境

  • 編譯器built with gcc 14.2.0
    使用 GNU Compiler Collection (GCC) 14.2 編譯,支持 C/C++。
  • 構建系統MSYS2 project
    在 Windows 上通過 MSYS2 環境編譯(兼容 Linux 工具的 Windows 開發環境)。

3. 編譯配置(configuration:

這一長串 --enable-xxx--disable-xxx 是 FFmpeg 編譯時的選項,表示啟用了哪些功能庫。關鍵點:

通用功能
  • --enable-gpl:啟用 GPL 許可證(允許使用 GPL 授權的代碼)。
  • --enable-static:生成靜態鏈接庫(所有功能集成到單個可執行文件)。
硬件加速支持
  • --enable-cuda-llvm:NVIDIA CUDA 加速(通過 LLVM)。
  • --enable-dxva2 / --enable-d3d11va:Windows 硬件解碼(DirectX)。
  • --enable-nvenc / --enable-nvdec:NVIDIA 顯卡的編碼/解碼。
編解碼器支持
  • 視頻:H.264 (libx264)、H.265 (libx265)、VP9 (libvpx)、AV1 (libaom) 等。
  • 音頻:AAC (libfdk-aac)、MP3 (libmp3lame)、Opus (libopus) 等。
其他庫
  • --enable-libass:字幕渲染支持。
  • --enable-libfreetype:字體渲染。
  • --enable-libvmaf:視頻質量評估工具。

4. 庫版本信息

FFmpeg 由多個子庫組成,版本號如下:

庫名稱版本號說明
libavutil59.39.100工具庫(數學、日志等基礎功能)
libavcodec61.19.100編解碼器核心庫(H.264/AAC等)
libavformat61.7.100容器格式解析(MP4/MKV等)
libavdevice61.3.100設備輸入/輸出(攝像頭、屏幕捕獲)
libavfilter10.4.100音視頻濾鏡(裁剪、縮放等)
libswscale8.3.100圖像縮放/色彩轉換
libswresample5.3.100音頻重采樣(采樣率轉換)
libpostproc58.3.100后處理(去塊效應等)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\testVideo.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf58.20.100Duration: 00:00:12.10, start: 0.000000, bitrate: 2770 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 720x1280, 2714 kb/s, 30 fps, 30 tbr, 90k tbn (default)Metadata:handler_name    : VideoHandlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 48 kb/s (default)Metadata:handler_name    : SoundHandlervendor_id       : [0][0][0][0]

這是 ffprobetestVideo.mp4 文件的解析結果,詳細說明了視頻的容器格式、元數據和基本參數。以下是逐項解析:


1. 容器格式

  • Input #0, mov,mp4,m4a,3gp,3g2,mj2
    表示這是一個 MP4 容器(兼容多種格式,如 QuickTime .mov、3GP 等)。

2. 元數據(Metadata)

  • major_brand: isom 文件的主要品牌標識符,isom 表示標準 ISO 媒體格式(MP4 的基礎)。
  • minor_version: 512 次要版本號,用于兼容性標記。
  • compatible_brands: isomiso2avc1mp41 兼容的品牌列表:
    • isom:ISO 基礎格式。
    • iso2:ISO 擴展格式。
    • avc1:表示視頻流是 H.264 編碼。
    • mp41:MP4 版本 1。
  • encoder: Lavf58.20.100 文件由 FFmpeg 的 libavformat 庫(版本 58.20.100)生成。

3. 基礎參數

  • Duration: 00:00:12.10 視頻總時長:12 秒 100 毫秒
  • start: 0.000000 起始時間戳為 0(正常情況)。
  • bitrate: 2770 kb/s 文件的總平均碼率:2770 kbps(視頻 + 音頻)。

4. 流信息(Stream Information)

4.1. 視頻流(Stream #0:0)

  • 編碼格式h264 (High)(H.264 High Profile),四字符碼為 avc1
  • 像素格式yuv420p(標準 4:2:0 色彩采樣)。
    • 色彩參數
      tv, bt709:使用 BT.709 色彩空間(高清視頻標準)。
      progressive:逐行掃描(非交錯)。
  • 分辨率720x1280(豎屏視頻)。
  • 碼率2714 kb/s(占整體碼率的主要部分)。
  • 幀率
    • 30 fps:幀率為 30 幀/秒。
    • 30 tbr(理論幀率)、90k tbn(時間基單位)。
  • 元數據
    handler_name: VideoHandler(默認視頻流標記)。

4.2. 音頻流(Stream #0:1)

  • 編碼格式
    aac (LC)(AAC Low Complexity Profile),四字符碼為 mp4a
  • 采樣率48000 Hz(標準采樣率)。
  • 聲道mono(單聲道)。
  • 碼率48 kb/s(低碼率,適合語音或背景音)。
  • 元數據
    handler_name: SoundHandler(默認音頻流標記)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82074.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82074.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82074.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

暗黑科技感風格智慧工地監管系統

智慧工地監管系統作為這場變革中的關鍵力量,正逐漸改變著傳統工地的管理模式。今天,就帶大家一同領略一款用Axure精心打造的暗黑科技感風格智慧工地監管系統原型,感受科技與建筑碰撞出的奇妙火花。 這款智慧工地監管系統原型采用了極具魅力的…

【軟件安裝】Windows操作系統中安裝mongodb數據庫和mongo-shell工具

這篇文章,主要介紹Windows操作系統中如何安裝mongodb數據庫和mongo-shell工具。 目錄 一、安裝mongodb數據庫 1.1、下載mongodb安裝包 1.2、添加配置文件 1.3、編寫啟動腳本(可選) 1.4、啟動服務 二、安裝mongo-shell工具 2.1、下載mo…

CSS:margin的塌陷與合并問題

文章目錄 一、margin塌陷問題二、margin合并問題 一、margin塌陷問題 二、margin合并問題

PostgreSQL 數據庫備份與恢復

1 邏輯備份(單庫) postgres#pg_dump --help 使用方法: pg_dump [選項]... [數據庫名字] 一般選項: -f, --fileFILENAME 輸出文件或目錄名 -F, --formatc|d|t|p 輸出文件格式 (c 自定義壓縮格式輸出, d 目錄, tar,p 備份為文本明…

使用 LibreOffice 實現各種文檔格式轉換(支持任何開發語言調用 和 Linux + Windows 環境)[全網首發,保姆級教程,建議收藏]

以下能幫助你可以使用任何開發語言,在任何平臺都能使用 LibreOffice 實現 Word、Excel、PPT 等文檔的自動轉換,目前展示在 ASP.NET Core 中為 PDF的實戰案例,其他的文檔格式轉換邏輯同理。 📦 1. 安裝 LibreOffice 🐧…

AWS stop/start 使實例存儲lost + 注意點

先看一下官方的說明: EC2有一個特性,當執行stop/start操作(注意,這個并不是重啟/reboot,而是先停止/stop,再啟動/start)時,該EC2會遷移到其它的底層硬件上。 對于實例存儲來說,由于實例存儲是由其所在的底層硬件來提供的,此時相當于分配到了一塊全新的空的磁盤。 但是從…

跨域問題詳解

目錄 一、什么是跨域問題? 二、跨域問題出現的原因 三、跨域的解決方案 四、結語 在 Web 開發的世界里,當我們嘗試通過 AJAX 等技術獲取不同源的資源時,常常會遇到 “跨域問題”。這不僅是前端開發者頻繁遭遇的技術障礙,也是保…

VSCode 插件 GitLens 破解方法

文章目錄 1. 安裝指定版本2. 修改插件文件3. 重啟 VSCode 1. 安裝指定版本 在 VSCode 中打開擴展(Ctrl Shift X),搜索 GitLens,右鍵點擊 安裝特定版本,在彈出的窗口中選擇 17.0.2,然后等待安裝完成。 2…

JavaScript的三大核心組成:ECMAScript、DOM與BOM

JavaScript的三大核心組成:ECMAScript、DOM與BOM 在前端開發領域,JavaScript是構建動態網頁和交互式應用的核心語言。然而,許多人對JavaScript的組成缺乏清晰的認識。實際上,JavaScript并非單一的語言規范,而是由三個…

JC/T 2490-2019 石灰基單層裝飾砂漿檢測

石灰基單層裝飾砂漿是指由石灰等無機膠凝材料、級配砂、外加劑或無機顏料制成的具有裝飾功能的干粉飾面材料。 JC/T 2490-2019石灰基單層裝飾砂漿檢測項目: 測試項目 測試方法 外觀 JC/T 2490 干密度 JC/T 2490 凝結時間 JGJ/T 70 抗折強度 GB/T 17671 抗…

用算法實現 用統計的方式實現 用自然語言處理的方法實現 用大模型實現 專利精益化統計分析

我們可以從算法、統計、自然語言處理(NLP)和大型語言模型(LLM)這四個方面,探討如何實現對專利社區、作者重要性以及共同作者貢獻度的分析。 1. 如何體現專利的社區 (社群效應) 🤖 用算法實現 網絡分析算法…

深入淺出IIC協議 - 從總線原理到FPGA實戰開發 -- 第五篇:多主仲裁與錯誤恢復

第五篇:多主仲裁與錯誤恢復 副標題 :從總線沖突到故障自愈——構建高可靠I2C系統的終極指南 1. 多主仲裁機制 1.1 仲裁原理與硬件實現 仲裁流程圖解 : 仲裁失敗處理 : 立即切換為從機模式 監測總線空閑后重試(隨機…

146. LRU Cache

題目描述 146. LRU Cache 哈希表雙向鏈表 詳見代碼和注釋: class LRUCache { private:int capacity_{0};int size_{0};struct Node{int key{0};int val{0};Node* pre{nullptr};Node* next{nullptr};Node(int k,int v,Node* pr,Node* nex):key(k),val(v),pre(pr),…

docker network 自定義網絡配置與管理指南

Docker 自定義網絡配置與管理指南 1. 網絡基礎概念 Docker 網絡是容器間通信和與外部世界交互的基礎。通過自定義網絡,可以實現容器間的隔離、靜態 IP 分配和服務發現。 關鍵術語: 子網(Subnet):IP 地址的邏輯分組,例如 172.1…

linux strace調式定位系統問題

strace 的基本功能 strace 的主要功能包括: 跟蹤系統調用:顯示進程執行時調用的系統函數及其參數和返回值。監控信號:記錄進程接收到的信號。性能分析:統計系統調用的執行時間和次數。調試支持:幫助定位程序崩潰、性…

告別手抖困擾:全方位健康護理指南

手抖,醫學上稱為震顫,是常見的身體癥狀,可能由多種原因引發,了解其成因并采取科學護理措施,對改善癥狀、維護健康至關重要。 生理性手抖往往因情緒激動、過度勞累、大量飲用咖啡或酒精等引起,這種手抖通常較…

華為2025年校招筆試真題手撕教程(一)

一、題目 輸入: 第一行為記錄的版本迭代關系個數N,范圍是[1,100000]; 第二行到第N1行:每行包含兩個字符串,第一個字符串為當前版本,第二個字符串為前序版本,用空格隔開。字符串包含字符個數為…

Qt 的多線程

Qt 中的多線程主要用于處理耗時操作,避免阻塞主線程(UI 線程),從而提高程序的響應性和運行效率。以下是 Qt 多線程的相關技術總結: 常見的多線程實現方式 繼承 QThread 類 :最基礎的實現方式,具…

基于ITcpServer/IHttpServer框架的HTTP服務器

https://www.cnblogs.com/MuZhangyong/p/16839231.html 在基于ITcpServer/IHttpServer框架的HTTP服務器實現中,OnBody方法主要用于接收HTTP請求體數據,而觸發HTTP響應通常是在OnMessageComplete方法中完成。以下是完整的響應觸發機制說明: sequenceDiagramClient->>…

Windows 下 Qt 項目配置 FFmpeg 簡明指南

一、作用 在qt項目中配置ffmpeg庫 二、步驟 1、直接使用已經編譯好的ffmpeg庫文件,分為win32版本和win64版本; 2、win32版本下載地址:https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/releases/tag/latest 3、win64版本下載地址&a…