Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#1 | Link |
Doom9ing since 2001
Join Date: Oct 2001
Location: Seattle, WA, USA
Posts: 1,988
|
H.264 bitstream analyzer
Any recommendations for H.264 bitstream analysis tools?
I'm looking for something that will tell me for each coded frame its type (IDR, I, P, B), compressed size, quantizer level, SPS/PPS/slice header info, and VUI/SEI metadata if available. And if it can dump all that info into a CSV, that'd be awesome. Free or commercial, though free is always nice. ![]() |
![]() |
![]() |
![]() |
#2 | Link |
Software Developer
![]() Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,177
|
Elecard StreamEye:
http://www.elecard.com/en/products/p...streameye.html CodecVisa (formerly H264Visa): http://www.codecian.com/downloads.html These come to my mind. I don't know if any of them has a CSV export function though...
__________________
There was of course no way of knowing whether you were being watched at any given moment. How often, or on what system, the Thought Police plugged in on any individual wire was guesswork. Last edited by LoRd_MuldeR; 8th February 2013 at 23:10. |
![]() |
![]() |
![]() |
#3 | Link |
Registered User
Join Date: Jan 2003
Location: Silicon Valley
Posts: 458
|
I have something cheap and simple (command prompt only). It will do most of the things you mention, but not quant levels.
http://www.w6rz.net/h264_parse.zip Ron
__________________
HD MPEG-2 Test Patterns http://www.w6rz.net |
![]() |
![]() |
![]() |
#7 | Link |
Registered User
Join Date: Nov 2012
Posts: 41
|
For simple, high-level information dumped to file, I can't help wondering if the most suitable thing is an instrumented decoder. Take the reference decoder, add some prints to stdout and you're done. Could take someone familiar with the standard and JM less than a day.
Quantizer level is a tricky one... Qp can vary throughout the frame so you need to derive and report some sort of picture average for Y, Cr and Cb. This implies deeper decoding than just looking at headers. If this was a question about HEVC, I could help zambelli with some commercial software or at least a trial ![]()
__________________
John @ Parabola Research Limited - HEVC conformance and technology http://www.parabolaresearch.com/ |
![]() |
![]() |
![]() |
#8 | Link |
Moderator
![]() Join Date: Jan 2006
Location: Portland, OR
Posts: 3,460
|
Hey Alex!
This is what I've been using: Tektronix MTS4SA It's what I inherited, so I didn't do a big comparison, but it does everything you're asking about, and more. About the complete opposite of free, though ![]() Last edited by benwaggoner; 12th February 2013 at 00:25. Reason: Left out the link |
![]() |
![]() |
![]() |
#9 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,322
|
I just wonder if LAV Filters/Splitters expose useful data about video streams, or if a fork would help creating some statistical tool based on them, to report details beyond MediaInfo's header analysis, e.g. GOP length distrubution...
|
![]() |
![]() |
![]() |
#10 | Link |
Registered Developer
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,042
|
They just use ffmpeg for parsing and decoding, if you want any extra information, use ffmpeg directly and/or fork it to expose internal information.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders |
![]() |
![]() |
![]() |
#13 | Link | |
Registered User
Join Date: Mar 2006
Posts: 1,044
|
Quote:
Not sure about ffprobe capabilities - typical data are relatively easy to access but more complex? For example - basic info works nicely: @ffprobe -v quiet -pretty -print_format json -show_entries "format=size,bit_rate:frame=coded_picture_number,pkt_pts_time,pkt_pts,pkt_dts_time,pkt_dts,pkt_duration_time,pict_type,interlaced_frame,top_field_first,repeat_pict,width,height,sample_aspect_ratio,display_aspect_ratio,r_frame_rate,avg_frame_rate,time_base,pkt_size" -select_streams v:0 %1 > %1.json provide this as a result { "pkt_pts": 0, "pkt_pts_time": "0:00:00.000000", "pkt_dts": 0, "pkt_dts_time": "0:00:00.000000", "pkt_duration_time": "0:00:00.040000", "pkt_size": "116620", "width": 1920, "height": 1080, "pict_type": "I", "coded_picture_number": 0, "interlaced_frame": 0, "top_field_first": 0, "repeat_pict": 0 }, But not more... ![]() Perhaps some analyzer can be build around ffprobe (ffmpeg)... |
|
![]() |
![]() |
![]() |
#14 | Link |
Retried Guesser
Join Date: Jun 2012
Posts: 1,375
|
Expanding on pandy's post above, here an ffprobe report in CSV format, suitable for importing into a spreadsheet:
Save as <something>.bat, then drag your media file on it to generate the report: Code:
@echo off :: ***** set path to ffprobe.exe if required ***** set FPROB="ffprobe.exe" @echo entry,media_type,key_frame,pkt_pts,pkt_pts_time,pkt_dts,pkt_dts_time,best_effort_timestamp,^ best_effort_timestamp_time,pkt_duration,pkt_duration_time,pkt_pos,pkt_size,^ width,height,pix_fmt,sample_aspect_ratio,pict_type,coded_picture_number,^ display_picture_number,interlaced_frame,top_field_first,repeat_pict > "%~dpn1-ffdump.csv" %FPROB% -select_streams v -print_format csv -show_entries frame "%~dpnx1" >> "%~dpn1-ffdump.csv" if errorlevel 1 pause exit 0 http://forum.doom9.org/showthread.ph...97#post1692797 Last edited by raffriff42; 8th September 2014 at 06:15. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|