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.
  • DELAYED or ONTIME frame: 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.

viq-video-model.svg

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

Author: Felipe Tavares

Created: 2026-09-13 Sun 14:52