2012-01-21 5 views
26

Как я могу получить конкретную видеоинформацию h264 из видеофайла? Мне нужно знать профиль (Baseline/Main/High) и есть ли B-Frames в фильме?Как получить видеоинформацию h264?

+1

Просто получить информацию в целом? Звучит не по теме для этого сайта. Если вы пытаетесь получить его в коде, расскажите нам больше о коде. Язык, среда и т. Д. – David

+0

Что такое видеофайл? Существуют различные форматы контейнеров, способные или не сохраняющие видео H.264. –

+0

Я ищу любой возможный способ определить это, любую библиотеку, любое приложение из командной строки. В моей работе я использую C# и ffmpeg приложение, но он не может дать мне специальную информацию о кодеках. – Zelenov

ответ

35

Я обнаружил, что лучший способ для этого является использование FFprobe с параметром -show_streams. Он показывает как профиль h.264, так и использование B-кадров для видеопотоков фильма.

ffprobe -show_streams -i "file.mp4"

[STREAM] 
index=0 
codec_name=h264 
codec_long_name=H.264/AVC/MPEG-4 AVC/MPEG-4 part 10 
profile=High 
codec_type=video 
codec_time_base=1001/48000 
codec_tag_string=avc1 
codec_tag=0x31637661 
width=1920 
height=1080 
has_b_frames=0 
sample_aspect_ratio=0:1 
display_aspect_ratio=0:1 
pix_fmt=yuv420p 
level=40 
timecode=N/A 
is_avc=1 
nal_length_size=4 
id=N/A 
r_frame_rate=24000/1001 
avg_frame_rate=24000/1001 
time_base=1/48000 
start_time=0.000000 
duration=252.168583 
bit_rate=5617233 
nb_frames=6046 
nb_read_frames=N/A 
nb_read_packets=N/A 
TAG:creation_time=1970-01-01 00:00:00 
TAG:language=und 
TAG:handler_name=VideoHandler 
[/STREAM] 
+1

В последнем Ubuntu:' avprobe -show_streams file.mp4' – Pitel

+3

С помощью какого инструмента я могу получить некоторую информацию, такую ​​как размер GOP ?! Значение для CRF и т. Д. ?! –

3

Используйте G-Spot, чтобы определить информацию.

Получить его here

+0

Но он не отображает число для GOP размер или B-рамка !? –

10

ли MediaInfo обеспечить вывод, что нужно? http://mediainfo.sourceforge.net/en

(если вы на Mac, вы можете легко установить с варевом.> Заварить установить медиа-инфо)

$ mediainfo Dream.House.sample.mkv 
General 
Unique ID      : 247222296143464620093895254679791638636 (0xB9FD4845398D136BB4A1628DB750986C) 
Complete name     : Dream.House.sample.mkv 
Format       : Matroska 
Format version     : Version 2 
File size      : 126 MiB 
Duration       : 1mn 56s 
Overall bit rate     : 9 042 Kbps 
Encoded date      : UTC 2011-12-15 03:44:07 
Writing application    : mkvmerge v3.0.0 ('Hang up your Hang-Ups') built on Dec 12 2009 15:20:35 
Writing library     : libebml v0.7.9 + libmatroska v0.8.1 

Video 
ID        : 1 
Format       : AVC 
Format/Info      : Advanced Video Codec 
Format profile     : [email protected] 
Format settings, CABAC   : Yes 
Format settings, ReFrames  : 4 frames 
Codec ID       : V_MPEG4/ISO/AVC 
Duration       : 1mn 56s 
Bit rate       : 5 843 Kbps 
Width       : 1 280 pixels 
Height       : 544 pixels 
Display aspect ratio    : 2.40:1 
Frame rate      : 23.976 fps 
Color space      : YUV 
Chroma subsampling    : 4:2:0 
Bit depth      : 8 bits 
Scan type      : Progressive 
Bits/(Pixel*Frame)    : 0.350 
Stream size      : 81.5 MiB (65%) 
Language       : English 

Audio #1 
ID        : 2 
Format       : DTS 
Format/Info      : Digital Theater Systems 
Codec ID       : A_DTS 
Duration       : 1mn 56s 
Bit rate mode     : Constant 
Bit rate       : 1 510 Kbps 
Channel(s)      : 6 channels 
Channel positions    : Front: L C R, Side: L R, LFE 
Sampling rate     : 48.0 KHz 
Bit depth      : 24 bits 
Compression mode     : Lossy 
Delay relative to video   : 67ms 
Stream size      : 21.1 MiB (17%) 
Language       : Russian 

Audio #2 
ID        : 3 
Format       : DTS 
Format/Info      : Digital Theater Systems 
Codec ID       : A_DTS 
Duration       : 1mn 56s 
Bit rate mode     : Constant 
Bit rate       : 1 510 Kbps 
Channel(s)      : 6 channels 
Channel positions    : Front: L C R, Side: L R, LFE 
Sampling rate     : 48.0 KHz 
Bit depth      : 24 bits 
Compression mode     : Lossy 
Delay relative to video   : 67ms 
Stream size      : 21.1 MiB (17%) 
Language       : English 
+0

+1 работал с ubuntu 12.10 '$ sudo apt-get install mediainfo; ' – YumYumYum

+0

mediainfo проверяет настройки формата 264 (например, CABAC), а ffprobe не – Harvey

3

ffprobe, в версии 1.0.7 обеспечивает хорошо отформатированный вывод JSON с помощью переключателя команд JSON -print_format.

Вы можете использовать его как это:

ffprobe -v тихий -print_format -show_format Ramp JSON \ - \ Apathy.mp3

Который производит follwing вывод:

{ 
    "format": { 
     "filename": "Ramp - Apathy.mp3", 
     "nb_streams": 2, 
     "format_name": "mp3", 
     "format_long_name": "MP2/3 (MPEG audio layer 2/3)", 
     "start_time": "0.000000", 
     "duration": "203.638856", 
     "size": "4072777", 
     "bit_rate": "159999", 
     "tags": { 
      "title": "Apathy", 
      "artist": "Ramp", 
      "album": "Evolution Devolution Revolution", 
      "date": "1999", 
      "genre": "Metal" 
     } 
    } 
} 
+1

@ ρss Я обновил ответ соответствующим содержанием. –