通過ffprobe查看多媒體文件的信息

./ffprobe -select_streams v -show_packets -of json 1.ts


如果是音頻,改 -select_streams a

如果要選擇音軌,可以這樣 -select_streams a:0


./ffprobe -select_streams a:0 -show_packets -of json 1.ts

 

--------------------

ffprobe主要用來查看多媒體文件的信息。本文帶領大家學習ffprobe的常用命令。
常用參數比較多,可以使用ffprobe --help來查看詳細的幫助信息

 

image.png

上圖輸出的幫助信息即使ffprobe的常用的操作參數,也是ffprobe的基礎參數。例如查看log,查看每一個音頻數據包含信息或者視頻數據包信息,查看每一個流有多少幀以及每一個流有多少音視頻包,查看視頻像素點的格式等等。
下面根據以上的輸出參數重點舉幾個栗子:

-show_packets 和 -show_data

使用ffprobe -show_packets input.mp4:

image.png


如上圖所示:-show_packets查看的多媒體數據包信息使用PACKET標籤擴起來了,其中包含的信息內容如下表所示:packet字段說明

 

字段 說明
codec_type 多媒體類型,如視頻包、音頻包等
stream_index 多媒體的stream索引
pts 多媒體的顯示時間值
pts_time 根據不同格式計算過的多媒體的顯示時間
dts 多媒體解碼時間值
dts_time 根據不同格式計算後的多媒體解碼時間值
duration 多媒體包占用的時間值
duration_time 根據不同格式計算後的多媒體包占用的時間值
size 多媒體包的大小
pos 多媒體包所在的文件偏移位置
flags 多媒體包標記,如關鍵包與非關鍵包的標記

除了以上字段和信息之外,還可以通過ffprobe -show_data -show_packets input.mp4組合參數來查看包中的具體數據,輸出結果我就不截圖展示了,就是在每個packet數據下面有一段data數據。
通過ffprobe讀取packets來進行對應的數據分析,使用-show_packets-show_data配合可以進行更加精確的分析

-show_format命令

通過ffprobe -show_format 命令可以查看多媒體餓封裝格式,其使用FORMAT標籤擴起來顯示:

image.png


對輸出信息關鍵字段說明:

 

字段 說明
filename 文件名
nb_stream 多媒體中包含的流的個數
nb_programs 節目數
format_name 使用的封裝模塊的名稱
format_long_name 封裝的完整的名稱
start_time 媒體文件的起始時間
duration 媒體文件的總時間長度
size 媒體文件的大小
bit_rate 媒體文件的碼率

-show_frames

通過ffprobe -show_frames 命令可以查看視頻文件中的幀信息,輸出的幀信息使用FRAME標籤擴起來:

image.png

 

字段 說明
media_type 幀的類型(視頻、音頻、字幕等)
key_frame 是否關鍵幀
pkt_pts Frame包的pts
pkt_pts_time Frame包的pts的時間顯示
pkt_dts Frame包的dts
pkt_duration Frame包的時長
pkt_pos Frame包所在文件的偏移位置
width 幀顯示的寬度
height 幀顯示的高度
pix_fmt 幀的圖像色彩格式
pict_type 幀類型

-show_streams

通過ffprobe -show_frames 命令可以查看視頻文件中的幀信息,輸出的幀信息使用STREAM標籤擴起來:

image.png

 

字段 說明
index 流所在的索引區域
codec_name 編碼名
codec_long_name 編碼全名
profile 編碼的profile
level 編碼的level
has_b_frame 包含B幀信息
codec_type 編碼類型
codec_time_base 編碼的時間戳計算基礎單位
pix_fmt 圖像顯示的色彩格式
coded_width 圖像的寬度
coded_height 圖像的高度
codec_tag_string 編碼的標籤數據
r_frame_rate 實際幀率
avg_frame_rate 平均幀率
time_base 時間基數(用來計算timestamp)
bit_rate 碼率
max_bit_rate 最大碼率
nb_frames 幀數

格式化 ffprobe的命令的輸出格式

默認的輸出格式都是以key - value的格式的顯示方式,由於每個人的閱讀習慣不一樣,有人認爲方便有人認爲不方便;ffprobe支持多種格式的輸出,包括XML、INI、JSON、CSV、FLAT等。
如何定製輸出格式呢,ffprobe -print_format 或者 ffprobe -of 來格式化。舉個栗子:
ffprobe -of xml -show_streams input.mp4

image.png



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章