Как получить видеоинформацию h264?
Как я могу получить конкретную видеоинформацию h264 из видеофайла? Мне нужно знать профиль (базовый/основной/высокий) и есть ли B-кадры в фильме?
4 ответа:
Я обнаружил, что лучший способ для этого-использовать 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]
Обеспечивает ли mediainfo нужный вам результат? http://mediainfo.sourceforge.net/en
(Если вы находитесь на Mac, вы можете легко установить его с помощью brew. > brew install media-info)
$ 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 : High@L4.1 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
Ffprobe, начиная с версии 1.0.7, предоставляет красиво оформленный вывод JSON с помощью командного переключателя-print_format json.
Вы можете использовать его следующим образом:
Ffprobe-v quiet-print_format json-show_format Ramp\ - \ 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" } } }