ffprobe安装与简单使用
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
查看所有可用的选项和帮助信息。对于媒体文件分析和自动化处理来说,它是一个不可或缺的工具。