代码改变世界

ffprobe安装与简单应用

2025-09-24 22:16  tlnshuju  阅读(70)  评论(0)    收藏  举报

ffprobe 是 FFmpeg 多媒体框架中的一个强大工具,主要用于分析和获取多媒体文件(如视频、音频)的详细信息。

第一部分:安装 ffprobe

ffprobe 通常作为 FFmpeg 套件的一部分被捆绑安装。因此,安装 ffprobe 本质上就是安装 FFmpeg。

Linux 系统安装

Ubuntu / Debian

使用 apt 包管理器:

sudo apt install ffmpeg

安装完成后,在终端输入 ffprobe -version 来验证安装。


第二部分:使用 ffprobe

ffprobe 的基本命令格式为:

ffprobe [options] input_file
常用选项和示例

1. 显示媒体文件的基本信息(最常用)
这是默认行为,会输出容器格式、流信息(视频、音频、字幕等)、时长、码率等。

ffprobe input.mp4

2. 以 JSON 格式输出详细信息,便于脚本解析
-print_format json-of json 指定输出格式为 JSON。
-show_format 显示容器格式信息。
-show_streams 显示所有流的信息。

# 输出非常详细的所有信息(格式+流)
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
# 只获取容器格式信息
ffprobe -v quiet -print_format json -show_format input.mp4
# 只获取视频流的信息(结合 grep 等工具)
ffprobe -show_streams input.mp4 | grep codec_name
  • -v quiet 用于 suppress 不必要的输出,让结果更干净。

3. 显示数据包(packet)信息

ffprobe -show_packets input.mp4

4. 显示帧(frame)信息

ffprobe -show_frames input.mp4

5. 选择特定的流
使用 -select_streams 选项可以指定要分析的流类型。

  • v:0:第一个视频流
  • a:0:第一个音频流
  • s:0:第一个字幕流
# 只显示第一个视频流的信息
ffprobe -show_streams -select_streams v:0 input.mp4
# 只显示所有音频流的信息
ffprobe -show_streams -select_streams a input.mp4

6. 获取特定值(用于脚本)
结合 -show_entries-of default=noprint_wrappers=1:nokey=1 可以只输出想要的具体值,非常适合在 Shell 脚本中使用。

# 获取视频时长(秒)
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
# 获取视频编码格式
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 input.mp4
# 获取视频分辨率(宽高)
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 input.mp4
# 输出示例:1920x1080
# 获取音频采样率
ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 input.mp4
# 获取总比特率(码率)
ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 input.mp4
  • -v error 只显示错误信息,让输出只有想要的数据。

7. 输出简洁的格式和流信息

ffprobe -show_format -show_streams input.mp4

总结

命令示例用途
ffprobe input.mp4快速查看文件基本信息
ffprobe -print_format json -show_format -show_streams input.mp4获取文件的完整详细信息(JSON)
ffprobe -v error -show_entries stream=width,height -of csv=s=x:p=0 input.mp4脚本常用:获取视频分辨率
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4脚本常用:获取视频时长
ffprobe -show_streams -select_streams v:0 input.mp4只查看第一个视频流的详细信息

ffprobe 的功能非常强大,以上只是最常用的一些命令。可以通过 ffprobe -h full 查看所有可用的选项和帮助信息。对于媒体文件分析和自动化处理来说,它是一个不可或缺的工具。