ffmpeg/ffprobe查看音頻視頻文件信息并輸出為json格式

|

ffprobe -i 輸入視頻路徑 -v quiet -print_format json -show_format -show_streams

|

./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主要用來查看多媒體文件的信息。本文帶領(lǐng)大家學(xué)習(xí)ffprobe的常用命令。
常用參數(shù)比較多,可以使用ffprobe --help來查看詳細的幫助信息

image

image.png

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

-show_packets 和 -show_data

使用ffprobe -show_packets input.mp4:

image

-show_packets查看的多媒體數(shù)據(jù)包信息使用PACKET標簽擴起來了,其中包含的信息內(nèi)容如下表所示:packet字段說明

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

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

-show_format命令

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

image

對輸出信息關(guān)鍵字段說明:

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

-show_frames

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

image
字段 說明
media_type 幀的類型(視頻、音頻、字幕等)
key_frame 是否關(guān)鍵幀
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
字段 說明
index 流所在的索引區(qū)域
codec_name 編碼名
codec_long_name 編碼全名
profile 編碼的profile
level 編碼的level
has_b_frame 包含B幀信息
codec_type 編碼類型
codec_time_base 編碼的時間戳計算基礎(chǔ)單位
pix_fmt 圖像顯示的色彩格式
coded_width 圖像的寬度
coded_height 圖像的高度
codec_tag_string 編碼的標簽數(shù)據(jù)
r_frame_rate 實際幀率
avg_frame_rate 平均幀率
time_base 時間基數(shù)(用來計算timestamp)
bit_rate 碼率
max_bit_rate 最大碼率
nb_frames 幀數(shù)

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

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

image

源地址:ffmpeg/ffprobe查看音頻視頻文件信息并輸出為json格式 - VirusCIH - 博客園 (cnblogs.com)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容