ffprobe 是ffmpeg的一個(gè)工具包辐宾,主要用于探測(cè)音視頻文件的各種信息,這篇文章主要是總結(jié)記錄下ffprobe常用的一些功能
一潦俺、 查看視頻文件的信息:
1怜珍、查看一個(gè)音視頻文件的基本信息:
ffprobe SampleVideo_1280x720_1mb.mp4
2畏陕、查看封裝格式
ffprobe -show_format SampleVideo_1280x720_1mb.mp4
3拓劝、查看流信息
ffprobe -show_streams SampleVideo_1280x720_1mb.mp4
視頻流信息:
音頻流信息:
4视卢、查看數(shù)據(jù)包信息
查看視頻流的數(shù)據(jù)包信息:
ffprobe -show_packets -select_streams video SampleVideo_1280x720_1mb.mp4
最后兩個(gè)數(shù)據(jù)包:
查看音頻流的數(shù)據(jù)包信息:
ffprobe -show_packets -select_streams audio SampleVideo_1280x720_1mb.mp4
最后兩個(gè)數(shù)據(jù)包:
5踱卵、查看音視頻文件解碼后的幀信息
視頻流解碼后的幀信息
ffprobe -show_frames -select_streams video SampleVideo_1280x720_1mb.mp4
音頻流解碼后的幀信息
ffprobe -show_frames -select_streams audio SampleVideo_1280x720_1mb.mp4
6、使用 -select_streams 可以只查看音頻(a)据过、 視頻(v) 惋砂、字幕(s)的信息
#只查看音頻
ffprobe -show_frames -select_streams a -of xml input.mp4
#只查看視頻
ffprobe -show_frames -select_streams v -of xml input.mp4
#只查看字幕
ffprobe -show_frames -select_streams s -of xml input.mp4
二、設(shè)置參數(shù)定制化輸出結(jié)果
- -v 參數(shù)是日志輸出級(jí)別绳锅,設(shè)置為error 則略去了 build 和 generic 信息
- -print_format 是輸出結(jié)果格式西饵,設(shè)置json,則以 json 格式輸出鳞芙,可用of替代
- -show_entries可以裁剪輸出結(jié)果
應(yīng)用舉例:
1眷柔、以json格式輸出指定項(xiàng)
ffprobe -show_streams -show_entries format=bit_rate,filename,start_time:stream=duration,width,height,display_aspect_ratio,r_frame_rate,bit_rate -of json -v quiet -i SampleVideo_1280x720_1mb.mp4
2、只輸出視頻幀計(jì)數(shù):
ffprobe -v error -count_frames -select_streams v:0 \ -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 SampleVideo_1280x720_1mb.mp4
-count_frames計(jì)算每個(gè)流的幀數(shù)原朝,并在相應(yīng)的流部分中報(bào)告驯嘱。
-select_streams v:0僅選擇視頻流。
-show_entries stream = nb_read_frames只顯示讀取的幀數(shù)喳坠。
-of default = nokey = 1:noprint_wrappers = 1將輸出格式(也稱為“writer”)設(shè)置為默認(rèn)值鞠评,不打印每個(gè)字段的鍵(nokey = 1),不打印節(jié)頭和頁(yè)腳(noprint_wrappers = 1)