查询视频文件格式的命令为:
ffprobe -show_format input.mp4
ffprobe version 4.2.2-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2007-2019 the FFmpeg developers
# 省略一些没用的
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/***/Desktop/***.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2020-06-23T02:09:34.000000Z
com.apple.quicktime.make: Apple
com.apple.quicktime.model: MacBookPro13,1
com.apple.quicktime.software: Mac OS X 10.15.5 (19F101)
com.apple.quicktime.creationdate: 2020-06-23T10:04:45+0800
Duration: 00:02:21.52, start: 0.000000, bitrate: 19417 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 2880x1800 [SAR 1:1 DAR 8:5], 19403 kb/s, 59.94 fps, 60 tbr, 6k tbn, 12k tbc (default)
Metadata:
creation_time : 2020-06-23T02:09:34.000000Z
handler_name : Core Media Video
encoder : H.264
[FORMAT]
filename=/Users/***/Desktop/***.mov
nb_streams=1
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=141.515000
size=343474749
bit_rate=19417008
probe_score=100
TAG:major_brand=qt
TAG:minor_version=0
TAG:compatible_brands=qt
TAG:creation_time=2020-06-23T02:09:34.000000Z
TAG:com.apple.quicktime.make=Apple
TAG:com.apple.quicktime.model=MacBookPro13,1
TAG:com.apple.quicktime.software=Mac OS X 10.15.5 (19F101)
TAG:com.apple.quicktime.creationdate=2020-06-23T10:04:45+0800
[/FORMAT]
看一下Stream的信息:
参数 | 解释 |
---|---|
h264 | 视频的一种压缩标准,H264是目前兼容性最好的,已经使用了很多年了,它的新一代标准H265,也就是苹果说的HEVC、HEIC |
Main | H264标准中一种Profile |
yuv420p | 像素格式,YUV分别对应着亮度分量和色度分量,420表示亮度是全采样的,色度分量是取1/4 |
2880x1800 | 视频的分辨率 |
19403 kb/s | 视频的码率 |
59.94 fps | 视频的帧率 |
tbr、tbn、tbc | 编码器和封装格式的时间基 |
ffprobe -show_format input.mp3
ffprobe version 4.2.2-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2007-2019 the FFmpeg developers
# 省略一些没用的
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/wanghaipeng/Desktop/audi.m4a':
Metadata:
major_brand : M4A
minor_version : 0
compatible_brands: M4A isommp42
creation_time : 2020-06-23T14:44:59.000000Z
iTunSMPB : 00000000 00000440 000000A0 000000000057E720 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Duration: 00:02:00.02, start: 0.022667, bitrate: 127 kb/s
Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2020-06-23T14:44:59.000000Z
handler_name : Core Media Audio
[FORMAT]
filename=/Users/***/Desktop/***.m4a
nb_streams=1
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.022667
duration=120.016667
size=1905418
bit_rate=127010
probe_score=100
TAG:major_brand=M4A
TAG:minor_version=0
TAG:compatible_brands=M4A isommp42
TAG:creation_time=2020-06-23T14:44:59.000000Z
TAG:iTunSMPB= 00000000 00000440 000000A0 000000000057E720 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[/FORMAT]
看一下Stream的信息:
参数 | 解释 |
---|---|
AAC | 音频的一种压缩格式/封装格式 |
LC | AAC格式的一种Profile,低复杂度规则 |
48000Hz | 音频的采样率,每秒钟有多个少音频采样点 |
Stereo | 立体声,双声道,指声音中有多少个音轨,常见的有单声道、双声道、5.1、7.1、Dolby全景声等 |
125 kbps | 音频的码率,每秒钟有多少数据量 |
假如把视频先简单理解成一张一张的图片,一帧视频就是一张图片
使用下面的命令查看视频的帧信息,视频的帧率一般在24-240(常见的),根据视频时长的不同,这个命令会解析出很多数据
//注意frame要加s,因为是复数,
ffprobe -show_frames input.mp4
ffprobe version 4.2.2-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2007-2019 the FFmpeg developers
# 省略一些没用的
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/wanghaipeng/Desktop/AirPods自动切换.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2020-06-23T02:09:34.000000Z
com.apple.quicktime.make: Apple
com.apple.quicktime.model: MacBookPro13,1
com.apple.quicktime.software: Mac OS X 10.15.5 (19F101)
com.apple.quicktime.creationdate: 2020-06-23T10:04:45+0800
Duration: 00:02:21.52, start: 0.000000, bitrate: 19417 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 2880x1800 [SAR 1:1 DAR 8:5], 19403 kb/s, 59.94 fps, 60 tbr, 6k tbn, 12k tbc (default)
Metadata:
creation_time : 2020-06-23T02:09:34.000000Z
handler_name : Core Media Video
encoder : H.264
[FRAME]
media_type=video
stream_index=0
key_frame=1
pkt_pts=0
pkt_pts_time=0.000000
pkt_dts=1700
pkt_dts_time=0.283333
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
pkt_duration=100
pkt_duration_time=0.016667
pkt_pos=36
pkt_size=349820
width=2880
height=1800
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=I
coded_picture_number=0
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
color_range=tv
color_space=bt709
color_primaries=bt709
color_transfer=bt709
chroma_location=left
[/FRAME]
音频的帧概念与视频有些不一样,视频帧是比较容易理解的,音频的稍微绕一些
音频数据的最基本单位是采样点,普通音乐的采样率是44100Hz(1秒钟有44100个采样点),而音频根据编码格式的不同,对帧的定义也不同。音频一帧可能是1024个采样点或者1052个采样点
以aac格式为例,一帧有1024个采样点
音频帧的查询命令与视频是类似的
ffprobe -show_frames input.mp3
音频的帧参数和视频类似,这里就不重复了
视频的包信息和帧信息类似
ffprobe -show_packets input.mp3
//如果是音频,也是一样的命令
ffprobe -show_data -show_packets input.mp4
这里甚至能看到包数据(音频也是类似的),只是个人能力有限,这里解读不动了,如果哪天学习了新知识,再来补充吧