Personal View site logo

User Tools

Site Tools


streamparser

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

streamparser [2012/02/18 19:31]
cbrandin created
streamparser [2012/02/26 21:24] (current)
cbrandin
Line 1: Line 1:
-====== StreamParser 2.======+====== StreamParser 2.======
  
  
  
 StreamParser is a video file analyzer targeted to Panasonic G series DSLR’s.  StreamParser is only compatible with AVC files (“xxx.MTS”).  This document does not explain the meaning of standard MPEG Transport Stream and H.264 elements and flags; it is assumed that the user is familiar with those standards.  Descriptions of such items are readily available on various Wiki’s on the Internet. StreamParser is a video file analyzer targeted to Panasonic G series DSLR’s.  StreamParser is only compatible with AVC files (“xxx.MTS”).  This document does not explain the meaning of standard MPEG Transport Stream and H.264 elements and flags; it is assumed that the user is familiar with those standards.  Descriptions of such items are readily available on various Wiki’s on the Internet.
- 
 ===== Installation ===== ===== Installation =====
  
Line 18: Line 17:
  
  
-There are two ways to start a StreamParser session.  Selecting “File>Open” from the menu will cause an entire video stream file to be opened and analyzed.  Alternatively, one can select “File>Quick Test” which will only open and analyze the first ten seconds of a video stream file (by default; the number of seconds can be changed by selecting “Configuration>Configure Quick Test”).  Large files can take a very long time to analyze and unless there is a specific need to analyze the entire file using “Quick Test” is advised.+Before opening files with StreamParser copy them to your computer’s hard disk.  There are two ways to start a StreamParser session.  Selecting “File>Open” from the menu will cause an entire video stream file to be opened and analyzed.  Alternatively, one can select “File>Quick Test” which will only open and analyze the first ten seconds of a video stream file (by default; the number of seconds can be changed by selecting “Configuration>Configure Quick Test”).  Large files can take a very long time to analyze and unless there is a specific need to analyze the entire file using “Quick Test” is advised.
  
-StreamParser starts up in “Timing Mode”, which contains the most commonly used tools.+StreamParser starts up in “Frames Mode”, which contains the most commonly used tools. 
 + 
 +{{ http://www.personal-view.com/talks/uploads/FileUpload/4d/a70d0fa95e0289a1954cc86ac0f3b5.jpg }}
    
 The StreamParser Frames Mode window consists of several components: The StreamParser Frames Mode window consists of several components:
   * //__A__.// Stream Data panel.  This breaks a stream down into frames.  The first column shows frame number in display order.  The GOP.Frame column shows the frame number in GOP.Frame format.  Offset is the starting address of the frame in the MTS file.  Length is the amount of data in the frame.  Type indicates frame type (I, P, B, or A).  Audio (A) frames are only shown if the “Include Audio” checkbox above the Stream Frames graph has been checked.  Clicking on column headers will cause data to be sorted according to the selected column.   * //__A__.// Stream Data panel.  This breaks a stream down into frames.  The first column shows frame number in display order.  The GOP.Frame column shows the frame number in GOP.Frame format.  Offset is the starting address of the frame in the MTS file.  Length is the amount of data in the frame.  Type indicates frame type (I, P, B, or A).  Audio (A) frames are only shown if the “Include Audio” checkbox above the Stream Frames graph has been checked.  Clicking on column headers will cause data to be sorted according to the selected column.
   * //__B__.// Sel.  Pressing this synchronizes the Frame Data Panel with the Stream Frames graph.  The first frame in the Stream Data Panel is set to the first frame shown in the Stream Frames graph.   * //__B__.// Sel.  Pressing this synchronizes the Frame Data Panel with the Stream Frames graph.  The first frame in the Stream Data Panel is set to the first frame shown in the Stream Frames graph.
-  * //__C__.// Frame Data panel.  This breaks down a frame selected in the Stream Data panel into Transport Stream (TS) packets.  The first column shows the packet number relative to the beginning of the selected frame.   Offset is the starting address of the packet in the MTS file.  E, S, and P are TS header flags.  PID is the TS Packet ID.  SC, AF, and CC are TS header flags.  Type is the packet type – “V” for video and “A” for audio.  Abs Packet is the absolute packet number (i.e. relative to the beginning of the file).  The number next to “Frame Data” is the frame number selected.  Clicking on column headers will cause data to be sorted according to the selected column.+  * //__C__.// Frame Data panel.  This breaks down a frame selected in the Stream Data panel into Transport Stream (TS) packets.  “Packet” shows the packet number relative to the beginning of the selected frame.   Offset” is the starting address of the packet in the MTS file.  ES, and P” are TS header flags. PID” is the TS Packet ID.  SCAF, and CC” are TS header flags.  Type” is the packet type – “VID” for video and “AUD” for audio.  Abs Packet” is the absolute packet number (i.e. relative to the beginning of the file).  The number next to “Frame Data” is the selected frame number.  Clicking on column headers will cause data to be sorted according to the selected column.
   * //__D__.// Pressing this will start up the media player.  The media player is explained in more detail below.   * //__D__.// Pressing this will start up the media player.  The media player is explained in more detail below.
   * //__E__.// Packet Data.  This shows hex data for a packet selected in the Frame Data panel.  The numbers next to “Packet Data” are Packet/Abs Packet number for the selected packet.   * //__E__.// Packet Data.  This shows hex data for a packet selected in the Frame Data panel.  The numbers next to “Packet Data” are Packet/Abs Packet number for the selected packet.
-  * //__F__.// Similar to item C, above; except the first column in the Stream Frames graph is set to the selected frame in the Stream Data panel.+  * //__F__.// Similar to item B, above; except the first column in the Stream Frames graph is set to the selected frame in the Stream Data panel.
   * //__G__.// This slider determines how many columns are displayed in the Stream Frames graph; it is used to zoom the graph in or out.   * //__G__.// This slider determines how many columns are displayed in the Stream Frames graph; it is used to zoom the graph in or out.
   * //__H__.// The Stream Frames graph.  Depending on which “Include” checkboxes are selected video, audio, or both frame types are plotted.  The graph can be set to display frame size in bytes or bits.   * //__H__.// The Stream Frames graph.  Depending on which “Include” checkboxes are selected video, audio, or both frame types are plotted.  The graph can be set to display frame size in bytes or bits.
Line 34: Line 35:
   * //__J__.// Information panel.  This contains information about the Stream, the selected frame and packet.   * //__J__.// Information panel.  This contains information about the Stream, the selected frame and packet.
   * //__K__.// This puts StreamParser into Time mode.   * //__K__.// This puts StreamParser into Time mode.
 +
 +{{ http://www.personal-view.com/talks/uploads/FileUpload/49/44350d5dcaf109a4002da6720e73e6.jpg }}
  
 The StreamParser Time Mode window is similar to Frames Mode except instead of data being broken into frames it is divided by time slices.  The components that differ from Frames Mode are: The StreamParser Time Mode window is similar to Frames Mode except instead of data being broken into frames it is divided by time slices.  The components that differ from Frames Mode are:
Line 40: Line 43:
   * //__C__.// This is a smoothing function (averaging) for the graph’s running bitrate line.   * //__C__.// This is a smoothing function (averaging) for the graph’s running bitrate line.
  
-When “Open Stream Player” is pressed in Frames Mode a Windows Media Player window is opened in the Frame Data panel.  The player can be detached and displayed in a separate window.  When a stream is played a frame marker in the Stream Frames graph follows along.  Also shown in the figure below is the window popped up when “Show Big Information Panel” is pressed.+When “Open Stream Player” is pressed in Frames Mode a Windows Media Player window is opened in the Frame Data panel.  The player can be detached and displayed in a separate window.  When a stream is played a frame marker in the Stream Frames graph follows along.  Also shown in the figure below is the window presented when “Show Big Information Panel” is pressed. 
 + 
 +{{ http://www.personal-view.com/talks/uploads/FileUpload/f2/b3dca59ccb0a7a7bdc3b71e4a8ebb5.jpg }}
    
 +A short-form report suitable for posting on forums can be generated by selecting the “File>Generate Snapshot Report” menu item.  The Snapshot Report can be saved as an image.  Depending on StreamParser’s current operating mode (Frames or Time) one of two reports will be generated.  The graph contained in the Snapshot Report is a copy of the currently displayed graph in the StreamParser main window.
  
-Additional miscellaneous menu options allow the user to check MTS file integrity (“Tools>Check Stream File”), select camera model (“Configuration> Camera”), select slow computer operation (“Configuration>Slow Computer”), and interpret hacked GH1 1080p25 files (“Configure>Interpret GH1 1080i60 as Hacked 1080p25”).+{{ http://www.personal-view.com/talks/uploads/FileUpload/0e/4bd9ba0f7eff3df3af668ba1a17e79.jpg }} 
 +Note: Thumbnail is only shown when Stream Player is opened and not detached.
  
 +{{ http://www.personal-view.com/talks/uploads/FileUpload/c2/09ae3b7aeea2eca97c1f489d7bbbbc.jpg }}
  
 +Additional miscellaneous menu options allow the user to check MTS file integrity (“Tools>Check Stream File”), select camera model (“Configuration> Camera”), select slow computer operation (“Configuration>Slow Computer”), and interpret hacked GH1 1080p25 files (“Configure>Interpret GH1 1080i60 as Hacked 1080p25”).
 ===== The JM-SP Decoder ===== ===== The JM-SP Decoder =====
  
  
  
-StreamParser analyzes data at the Transport Stream (TS) level.  The JM-SP decoder analyzes data at the H.264 Elementary Stream level, offering details about video encoding parameters and results.  With the JM-SP decoder details are provided about quantization levels, scaling tables, skipped frames, and much more.  The JM-SP decoder is based on the H.264 reference codec and as such is a good way to test streams for validity.+StreamParser analyzes data at the Transport Stream (TS) level.  The JM-SP decoder analyzes data at the H.264 Elementary Stream level, offering details about video encoding parameters and results.  With the JM-SP decoder details are provided about quantization levels, scaling tables, skipped frames, and much more.  The JM-SP decoder is based on the H.264 reference codec and as such is a good tool to test streams for validity.
  
 ==== Configuration ==== ==== Configuration ====
Line 65: Line 74:
  
 Before the JM-SP decoder can be run a Video Elementary Stream File (“xxx.264”) must be created by clicking on the “Tools>Create Elementary Stream File” menu item.  The Elementary Stream File can also be used with other video analyzers and is normally much faster than using “MTS” files with analyzers such as Elecard’s StreamEye. Before the JM-SP decoder can be run a Video Elementary Stream File (“xxx.264”) must be created by clicking on the “Tools>Create Elementary Stream File” menu item.  The Elementary Stream File can also be used with other video analyzers and is normally much faster than using “MTS” files with analyzers such as Elecard’s StreamEye.
-The JM-SP decoder is started by clicking on the “Decode Elementary Stream File (JM-SP Decoder)” menu item under “Tools”.  After processing is complete a window is popped up showing the decode log (which is also saved as “xxx.log”). + 
- +The JM-SP decoder is started by clicking on the “Decode Elementary Stream File (JM-SP Decoder)” menu item under “Tools”.  After processing is complete a window is presented showing the decode log (which is also saved as “xxx.log”). 
 + 
 +{{ http://www.personal-view.com/talks/uploads/FileUpload/29/c055211914689482f2470b13a5fd8b.jpg }} 
  
 The log file contains quite a bit of useful data to help determine how well a video clip has been encoded.  The items shown for each frame are: The log file contains quite a bit of useful data to help determine how well a video clip has been encoded.  The items shown for each frame are:
Line 72: Line 83:
   * //__Frame__.//  This is the frame number in display order (the same as used in StreamParser).   * //__Frame__.//  This is the frame number in display order (the same as used in StreamParser).
   * //__Type__.//  This indicates the frame type (IDR, I, P, B).  Note that with interlaced video each displayed frame actually consists of two slices.  For example, an interlaced I frame will show as an “I | P” frame because it is actually an I slice for the top half and a P slice for the bottom.   * //__Type__.//  This indicates the frame type (IDR, I, P, B).  Note that with interlaced video each displayed frame actually consists of two slices.  For example, an interlaced I frame will show as an “I | P” frame because it is actually an I slice for the top half and a P slice for the bottom.
-  * //__QP__.//  This is the general QP setting for the entire frame (in the case of the GH2, the entire frame).+  * //__QP__.//  This is the general QP setting for the entire slice (in the case of the GH2, the entire frame).
   * //__Min__.// This is the lowest QP setting used in any macroblock in the frame.  The H.264 codec uses the frame QP setting as a base and each macroblock can modify the QP setting using an offset value unique to that macroblock.   * //__Min__.// This is the lowest QP setting used in any macroblock in the frame.  The H.264 codec uses the frame QP setting as a base and each macroblock can modify the QP setting using an offset value unique to that macroblock.
   * //__Max__.// This is the highest QP setting used in any macroblock in the frame.   * //__Max__.// This is the highest QP setting used in any macroblock in the frame.
Line 80: Line 91:
   * //__QST-High__.//  If an asterisk appears here the codec has switched to fall-back mode to avoid crashing and is using very low detail (T4) Quantization Scaling Tables.  This should rarely happen and only when panning across extremely detailed subjects using a high shutter speed.   * //__QST-High__.//  If an asterisk appears here the codec has switched to fall-back mode to avoid crashing and is using very low detail (T4) Quantization Scaling Tables.  This should rarely happen and only when panning across extremely detailed subjects using a high shutter speed.
      
-Under normal circumstances the information contained in the JM-SP decoder log should be sufficient to evaluate how well video has been encoded and make changes to patch parameters in response.  The trace feature can be turned to produce a trace file that contains much more information.  The trace file, however, is fairly cryptic (being in H.264 header syntax) and can take a very long time to produce. +Under normal circumstances the information contained in the JM-SP decoder log should be sufficient to evaluate how well video has been encoded and make changes to settings parameters in response.  The trace feature can be turned to produce a trace file that contains much more information.  The trace file, however, is fairly cryptic (being in H.264 header syntax) and can take a very long time to produce.
streamparser.1329593472.txt.gz · Last modified: 2012/02/18 19:31 by cbrandin