Viq
Video Queuing Analysis Tool
Table of Contents
1. Quickstart
Start a Viq receiver:
viq receiver \
--initial-queue-depth 1 `# wait for 1 frame then start streaming`\
--fps 20 `# pull frames at 20 FPS`
And afterwards, start a Viq sender:
viq sender localhost:4462 \
--fps 20 `# push frames at 20 FPS`\
--p-to-i 20 `# one I-frame every 1 second`\
--i-to-p-size 5 `# I-frames are 5x larger than P-frames`\
--bitrate 3.5M `# I-frames & P-frames average out to 3.5Mbps`
2. Output Format
The output from viq receiver is formatted as CSV, with the following columns:
- Stream ID: 0-indexed counter, incremented per-stream.
DELAYEDorONTIMEframe: did the frame arrive before the presentation deadline?- Frame number.
- Frame size in bytes.
- Time since stream start, in nanoseconds.
- How long after the frame deadline did the frame actually get displayed, in nanoseconds.
2.1. Example
20,1,1,1.5,3.5M,0,ONTIME,1,32012,150,300
20,1,1,1.5,3.5M,0,ONTIME,2,21341,50000048,118
...
20,1,1,1.5,3.5M,0,DELAYED,14,21341,650197058,197088
20,1,1,1.5,3.5M,0,ONTIME,15,21341,700000049,109
3. Comprehensive Parameter Sweeps
Shell scripts for comprehensive sweeping are available.
scripts/sweep-receiver.sh | tee test-output.csv
scripts/sweep-sender.sh
4. Advanced
4.1. Objectives
Viq is a tool for comprehensive analysis of network quality for video systems.
We specifically target:
- Wireless networks.
- Fixed-framerate systems.
- Fixed-bitrate systems.
- Multiple-sources systems.
4.2. Challenges
“Video” is not a uniform concept. There are many different transport, encapsulation, and compression protocols and codecs available, and each will produce a bitstream with different characteristics, and fail in different ways.
Viq attempts to abstract away all video-specific aspects and instead produce data that broadly describes the behavior of any video system over the entire possible parameter space for video systems.
4.3. Viq Video Model
Viq’s video model simplifies video transmission to the transfer of frames from one host to another, at fixed well timed intervals.
Analysis of quality centers around identifying the required queue depth for reliable video streaming in a given network configuration.
Figure 1: The Viq video model
4.4. Video Parameters
| Parameter | Description |
|---|---|
| Target bitrate | Average total bitrate when all frames are considered. |
| P to I ratio | Ratio of P-frames to I-frames. Common values are 1x or 2x FPS. |
| I to P size ratio | How much larger are I-frames to P-frames. |
| FPS | Fixed frames per second. |
| Initial queue depth | Wait until this queue depth before starting the stream on the receiver side |