我通過ffprobe使用此代碼提取視頻信息:ffprobe選擇音頻和視頻流
ffprobe -show_streams -of json -v quiet -i input.mp4
,而我需要的訴只有所有信息流的信息出現在輸出:0和:0流。
我知道有-select_streams
選項用於流選擇,但它只接受一個參數,如:-select_streams v:0
。
我可以使用-select_streams
兩個參數v:0
和a:0
或使用它兩次嗎?
我通過ffprobe使用此代碼提取視頻信息:ffprobe選擇音頻和視頻流
ffprobe -show_streams -of json -v quiet -i input.mp4
,而我需要的訴只有所有信息流的信息出現在輸出:0和:0流。
我知道有-select_streams
選項用於流選擇,但它只接受一個參數,如:-select_streams v:0
。
我可以使用-select_streams
兩個參數v:0
和a:0
或使用它兩次嗎?
您可以簡單地忽略-select_streams
參數,並使用-show_entries
參數傳遞 領域,你想在輸出看到,像這樣:
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 input.mp4
這應該給你類似這樣的輸出:
{
"programs": [
],
"streams": [
{
"width": 360,
"height": 202,
"display_aspect_ratio": "16:9",
"r_frame_rate": "2997/100",
"duration": "68.601935",
"bit_rate": "449366",
"disposition": {
"default": 1,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0
},
"tags": {
"language": "eng",
"handler_name": "VideoHandler"
}
},
{
"r_frame_rate": "0/0",
"duration": "68.475646",
"bit_rate": "65845",
"disposition": {
"default": 1,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0
},
"tags": {
"language": "eng",
"handler_name": "SoundHandler"
}
}
],
"format": {
"filename": "input.mp4",
"start_time": "0.000000",
"bit_rate": "522013"
}
}
從中你可以只索引到你想要的,如在PowerShell中的數據流,與返回的JSON對象流:
PS C:\Users\User> $json.streams[0]
width : 360
height : 202
display_aspect_ratio : 16:9
r_frame_rate : 2997/100
duration : 68.601935
bit_rate : 449366
disposition : @{default=1; dub=0; original=0; comment=0; lyrics=0; karaoke=0; forced=0; hearing_impaired=0; visual_impaired=0; clean_effects=0; attached_pic=0}
tags : @{language=eng; handler_name=VideoHandler}
PS C:\Users\User> $json.streams[1]
r_frame_rate : 0/0
duration : 68.475646
bit_rate : 65845
disposition : @{default=1; dub=0; original=0; comment=0; lyrics=0; karaoke=0; forced=0; hearing_impaired=0; visual_impaired=0; clean_effects=0; attached_pic=0}
tags : @{language=eng; handler_name=SoundHandler}
有鍵字段名稱的列表,你可以從不同類型的流在這裏得到:https://trac.ffmpeg.org/wiki/FFprobeTips
我知道我遲到了,但如果別人搜索(從here)類似的東西:
:ffprobe -show_streams -select_streams a INPUT
其中一個代表音頻和當然可以被替換
請注意,如果您想查看2個不同的流(如音頻和視頻),則需要運行ffprobe兩次。
對於更多好吃的東西,雖然寫得很一般,但您也可以查看:https://trac.ffmpeg.org/wiki/FFprobeTips