Usage¶
Note
By default, Video Tester looks for a configuration file called VT.conf in the current working directory. You can specify another file and location using the global command-line option -c (or --conf):
$ VT -c path/to/another.conf [server|client]
Server mode¶
You can run Video Tester in server mode with the following command:
$ VT server
No more operation is required. The server waits for client requests in standalone mode.
Note
Use Ctrl + C to stop it.
Client mode¶
You can launch Video Tester in client mode with the following command:
$ VT client
Note
VT client requires root privileges (for network sniffing).
You can use VT client with a graphical user interface (GUI). Activate it with the option -g (or --gui):
$ VT client -g
Generated files¶
After the client execution, you will find a set of result files inside your temporary directory organised as follows: temp/<video>_<codec>_<bitrate>_<framerate>_<protocol>/* (e. g., temp/video0_h263_128_25_udp-unicast/*). The name of those files starts with a numerical prefix (e. g., 00, 01...):
00.cap: PCAP file.00.h263: received video (coded).00.yuv: received video (YUV).00_ref.h263: reference video (coded but not transmitted).00_ref.yuv: reference video (coded and decoded).00_ref_original.yuv: original reference video (uncompressed original file).00_<measure>.pkl: serialized measure in Pickle format.
Pickle files can be read with the GUI ().
Measures output¶
Video Tester returns a list of measures. Each measure is a Python dictionary with the following keys:
name(mandatory): the name.type(mandatory): the type (plot,barorvalue).units(mandatory): the units (a string forvaluemeasures, a tuple of strings forplotorbarmeasures).axes(only forplotandbarmeasures): a tuple with X and Y axes. Each axis is a list of values.min(only forplotandbarmeasures): minimum value.max(only forplotandbarmeasures): maximum value.mean(only forplotandbarmeasures): mean value.value(only forvaluemeasures): the value.width(only forbarmeasures): bar width.
An example of plot measure:
{ 'name':'Bandwidth', 'type':'plot', 'units':('time (s)', 'kbps'), 'axes':([...], [...]), 'min':(3, 7), 'max':(5, 0), 'mean':5 }
An example of bar measure:
{ 'name':'PLD', 'type':'bar', 'units':('time (s)', 'Packet Loss Rate'), 'axes':([...], [...]), 'min':(3, 7), 'max':(5, 0), 'mean':5, 'width':1 }
An example of value measure:
{ 'name':'Latency', 'type':'value', 'units':'ms', 'value':50 }