Elecard StreamEye Command line tool

Features 637 views May 11, 2017

With StreamEye command line tool, the complex analysis operations become as fast and easy as a few lines of commands.

Using this tool you'll be able to: 

  • Analyze the whole array of video files automatically;
  • Address specific and complex challenges with a few lines of commands;
  • Retrieve submitted results as a text file in CSV format for easy viewing in Excel;
  • Customize a sequence of commands to perform your specific tasks;
  • Accelerate and automate your regular tasks;
  • Get access to most of StreamEye functionality and resources through StreamEye Console.

Table of contents

How to use StreamEye Command line tool

Sample Config.xml file

List of commands

Examples

 

How to use StreamEye Command line tool:

To streamline automatic analysis of several files the following rules are introduced. They reassign input and output parameters for configuration files.

Get to the command prompt by clicking Start->Run and type 'cmd'. Then enter the command to start the application first and proceed with the command line options. In general, the syntax is as follows:

SEyeConsole.exe <config path> [/lc:<settings path>][/in:<file path>] [/out:<file prefix>] [/ref:<file path>] [sfx:<suffix>]

Notes on the command line rules:

1. Parameters with default value are not required and can be omitted;

2. Rules for input and output file names:

• parameter /in:<file path> in the command line overwrites the value of the tag <input/> in the configuration file;

• parameter /out:<file prefix> in the command line overwrites the value of the tag <output/> in the configuration file;

• if <output/> tag is missing (or not specified), output file names are formed from input file name plus suffix (if the latter is specified);

• if output file for a tag/section is not specified, the output file name for the tag/section is formed from the name specified in the <output/> tag plus suffix depending on the name of the tag/section, e.g. ".stream.csv", ".picture.csv", etc.

Back to table of contents


 

Sample Config.xml file:

<?xml version="1.0"?>
    <stream version="1">
    <input file="…"/>
    <output separator=";(default)/," delimiter=".(default)/," file="…"/>
    <reference type="yv12(default)" file="…"/>
    <range span="all(default)/start - stop" order="display(default)"/>
    <info>
        <stream distribution="on(default)/off" file="…"/>
        <picture distribution="on(default)/off" file="…"/>
        <prediction file="…"/>
        <data type="decoded(default)/predicted/unfiltered…" format="yv12(default)" file="…"/>
        <message level="all(default)/message/warning/error" file="…"/>
        <header level="struct(default)/parameter"  file="…">
            <condition parameter="name" comparison="full/substring(default)"> 
                <range value="min-max"/>
                <equal value="value"/>
                <less value="min"/>
                <more value="max"/>
                <not value="value"/>
            </condition>
        </header>
        <index distribution="on(default)/off" order="stream(default)/display" file="…"/>
        <metrics type="psnr(dfault)" source="decoded(default)\predicted\unfiltered" file="…"/>
        <difference type="compare\subtraction\temperature" source="decoded(default)\predicted\unfiltered" file=""/>
        <block file="..."/>
        <dpb description="on(default)/off" file="…"/>
    </info>
</stream>

Back to table of contents


 

List of commands:

<input/> The tag is used to configure the input file
file Sets the input file path
<output/>  The tag is used to configure the input file
separator Defines the symbol/string to separate the output data
file Sets the output file path
<reference/>   The tag is used to configure the reference file
type Defines the format of the raw data.(The YV12 is used by default now. More formats to be supported in the next updates)
file Sets the path to the reference file
<range/> The tag is used to define the range of analyzed frames
span Defines the range of frames (all(default)/start - stop), 'start' - number of the first analyzed frame, 'stop' - number of the last analyzed frame
order Specifies the order of frames. Display is set by default.
<info/> The tag is used to define the type/-s of information for output.
<stream/> The tag is used to output general information about the analyzed stream
distribution Contains information on data distribution by type of coding units (on(default)/off)
file Sets the path for the output stream information
<picture/> The tag is used to output picture information
distribution Contains information on data distribution by type of coding units  (on(default)/off)
file Sets the path for the output picture information
<prediction/> The tag is used to output information on prediction types
file Sets the path for the output prediction information
<data/> The tag is used to save output decoder information on any decoding step
type Specifies the type of data for saving (decoded(default) / predicted / unfiltered / residual / raw data / difference)
format Defines the format for saving data (IYUV(default))
file Sets the output file path where the data will be saved
<message/> The tag is used to output messages that appear during analysis
level Defines the level of the saved messages (all(default)/message/warning/error)
file Sets the output file path where the messages will be saved
<index/> The tag is used to output information on frames (offset, frame type, frame size, average quantizer, etc.)
distribution Contains information on data distribution by type of coding units (on(default)/off)
file Sets the output file path where the messages will be saved
<metrics/> The tag is used to output information on quality metrics
type Specifies the metric type: PSNR (default)
source Defines the type of the source for metrics calculation (decoded(default) / predicted / unfiltered / residual)
file Sets the output file path where information on metrics will be saved
<difference/> The tag is used to output information on difference metrics
type Defines the type of difference (compare/subtraction/temperature). This is the required parameter for this tag. Its default value should be set. If the value is not set, this tag will be skipped.
source Specifies the source type for difference calculation (decoded(default)/predicted/unfiltered/residual)
file Sets the output file path where information on difference will be saved
<header/> The tag is used to define the output headers information
level Defines the type of header output information (struct(default) / parameter), 'struct' - full information on the header will be saved, 'parameter' - only information  on the specified parameter(s) from the headers will be saved
file Sets the path to the output file with the headers information.
<condition/> The tag is used to specify the required header parameters. If this section does not exist, all headers will be dumped
parameter Specifies the header parameter name
comparison Specifies the type of comparison check for the parameter name  (full/substring (default))
<range/> The tag is used to specify the range of parameter values to be searched
value Defines the range of searching parameter values in the format “min-max&rdquo".
<equal/> The tag is used to set the search parameter value equal to the specified value
value Sets the parameter value for comparison
<less/> The tag is used to set the search parameter value less than the specified value
value Sets the parameter value for comparison
<more/> The tag is used to set the search parameter value exceeding the specified value
value Sets the parameter value for comparison
<not/> The tag is used to set the search parameter value NOT equal to the specified value
value Sets the parameter value for comparison
<block/> The tag is used to define information about each encoding block
<dpb/> The tag is used to save information about decoded picture buffer for each frame; description on/off is used to display or not the additional information about the frame

Back to table of contents


 

Examples

These examples show how to perform some of the typical tasks from the command-line:

  1. Saving the general information on the stream and on each picture;
  2. Retrieving information on the number of IDR_W_RADL slices and offsets;
  3. Searching for all slices with the slice_type value equal to "2";
  4. Saving YUV data on the prediction step;
  5. Saving the block info data of the picture;
  6. Retrieving information on frame sizes and PSNR values for the first 10 frames.

 

1. Saving the general information on the stream and on each picture

config.xml:

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <stream/> 
            <picture/> 
      </info> 
      </stream>

Output files:

test_12_0_sei.stream.csv:

name; value; 
stream type; HEVC/H.265;
profile; Main;
compatibility; Main; Main 10;
level / tier; Undefined / Main;
chroma format; 4:2:0;
resolution; 832 x 480;
frame rate; 50.00;
bitrate; 1 024 000 000;

 ...
test_12_0_sei.stream.csv:

Picture #0;  
name;  value;
resolution;  416 x 240;
size (bytes);   
cu;  21 476;
prediction; 520;
transform;  19 264;
qp;  
min / max; 23 / 23;
pixels;  
count; 99 840;
intra; 99 840 (100.00%);
distribution (bits);  
total;  174 352 (100.00%);
split_cu_flag; 297 (0.17%);
cu_skip_flag; 0 (0.00%);
prediction;   
intra_prediction;  16 653 (9.55%);
...  
Picture #1:  
name; value;
resolution; 416 x 240;
size (bytes);   
cu;  978;
prediction;  352;
transform;  511;
...    

Back to list of examples


 

2. Retrieving information on the number of IDR_W_RADL slices and offsets

config.xml:

<?xml version="1.0"?>
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <header level="parameter"> 
                  <condition parameter="IDR_W_RADL" comparison="substring"/>
            </header>  
      </info> 
</stream> 

Output file: 

test_12_0_sei.header.csv:

offset; name; value;
0x000000AA; slice_segment_layer() { IDR_W_RADL };   
0x00025F47; slice_segment_layer() { IDR_W_RADL };  

Back to list of examples


 

3. Searching for all slices with the slice_type value equal to "2"

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\test_12_0_sei"/> 
      <info> 
            <header> 
                  <condition parameter="slice_type">  
                        <equal value="2"/> 
                  </condition> 
            </header> 
      </info> 
</stream>

Output file:

test_12_0_sei.header.csv: 

offset; name; value;
0x0000009C; slice_segment_layer() { IDR_W_RADL };  
  first_slice_segment_in_pic_flag; 1;
  no_output_of_prior_pics_flag; 0;
  slice_pic_parameter_set_id; 0;
  slice_type; 2;
  slice_sao_luma_flag; 1;
  slice_sao_chroma_flag; 1;
  slice_qp_delta; 6;
  slice_loop_filter_across_slices_enabled_flag; 1;
0x0000D21A;  slice_segment_layer() { CRA_NUT };   
  first_slice_segment_in_pic_flag; 1;
  no_output_of_prior_pics_flag; 0;
  slice_pic_parameter_set_id; 0;
  slice_type; 2;
  slice_pic_order_cnt_lsb;  32;
  short_term_ref_pic_set_sps_flag; 0;
  short_term_ref_pic_set(12);   
  if(stRpsIdx != 0);   
...      

Back to list of examples




4. Saving YUV data on the prediction step

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <data type="predicted"/> 
      </info> 
</stream>

Output file:

test_12_0_sei.data.416x240.yuv

Back to list of examples



5. Saving the block info data of the picture

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <block/> 
      </info> 
</stream>

Output file:

test_12_0_sei.block10.csv  

name;  value;
lcu location; 0x0;
lcu slice\tile idx; 0\0;
lcu size total\prediction\transform; 17\17\0;
cu type\location\dimension\depth; PART_2Nx2N\0x0\64x64\0;
cu size total\prediction\transform; 17\17\0;
tu dimensions\qp; 64x64\35;
pu inter dimension\merge_flag\mvp_l0_flag\mvp_l1_flag; 64x64\0\0\0;
pu inter type\dimension; 2 (Pred_BI)\64x64;
pu L0 mv\mvd; -1, 0, 1 / -1, 0;
pu L1 mv\mvd; -1, 1, 0 / -1, 1;
pu mv candidates; *[0]\mvL0(0,0)\[1]\mvL0(0,0)\*0]\mvL1(0,0)\1]\mvL1(0,0);
lcu location;  64x0;
lcu slice\tile idx; 0\0;
...  

Back to list of examples



6. Retrieving information on frame sizes and PSNR values for the first 10 frames.

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/>
      <reference file="C:\Media\raw\BasketballDrill_832x480_50.yuv"/> 
      <range span="0-10"/> 
      <info> 
            <metrics type="psnr"/>
            <index distribution="off" order="display"/>
      </info> 
</stream>

Output file:

test_12_0_sei.index.csv: 

stream; display; offset; poc; type; time; quant; psnr y;
0; 0; 0x00000000; 0; I; 00:00:00:000; 32; 36.065069;
1; 8; 0x000042B3; 8; B; 00:00:00:160; 33; 36.065069;
2; 4; 0x00005790; 4; B; 00:00:00:160; 34; 36.065069;
...              
10; 12;  0x00008343; 12; B; 00:00:00:240; 34; 34.808986;

Back to list of examples

Back to table of contents

Resources

On the topic

Product: StreamEye
Category: Features

Feedback

Related questions

More questions?

Chat now Ask a question