2016-12-13 1 views
1

내가 ffprobe으로 비디오 정보를 추출하기위한이 코드를 사용 스트림 :오디오 선택 ffprobe 및 비디오

ffprobe -show_streams -of json -v quiet -i input.mp4 

내가 V의 정보 만 필요 동안 모든 스트림의 정보가 출력에 나타납니다 : 0과를 : 0 스트림.

스트림 선택을위한 -select_streams 옵션이 있지만, 하나의 인수 (예 : -select_streams v:0) 만 허용한다는 것을 알고 있습니다.

-select_streams을 두 개의 인수 v:0a:0으로 사용하거나 두 번 사용할 수 있습니까?

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 

당신이 유사한 출력을 제공해야한다 :

답변

1

당신은 단순히 당신이 출력에서 ​​볼과 같이하고 싶은 -select_streams 인수를 생략하고 필드를 전달하는 -show_entries 인수를 사용할 수 있습니다 :

{ 
    "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" 
    } 
} 

있는 할 수 있습니다 반환 된 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

0

나는 파티에 늦었어요,하지만 알고 경우 사람에서 다른 검색에 대한 (here에서) 비슷한는 :

:

ffprobe -show_streams -select_streams a INPUT 

오디오의 약자는 물론 대체 할 수있는 곳

  • v비디오;
  • A : 인덱스 1을 가진 오디오 스트림에 속하는 오디오 패킷 1;
  • V : 인덱스 99 등으로 비디오 스트림 속하는 비디오 패킷 99.

두 개의 서로 다른 스트림 (예 : 오디오 및 비디오)을 보려면 ffprobe를 두 번 실행해야합니다.

더 일반적으로 작성되었지만 다음을 확인할 수도 있습니다. https://trac.ffmpeg.org/wiki/FFprobeTips

관련 문제