@vpalmisano/webrtcperf
    Preparing search index...

    The configuration properties are applied in the following order (from higher to lower precedence):

    • arguments passed to the executable in kebab case (e.g. --url-query);
    • environment variables in uppercase snake format (e.g. URL_QUERY);
    • config.json configuration file;
    • default values.

    The page url to load.

    Type: string

    Default: ""

    The query string to append to the page url; the following template variables are replaced: $p the process pid, $s the session index, $S the total sessions, $t the tab index, $T the total tabs per session, $i the tab absolute index.

    Type: string

    Default: ""

    This argument specifies the file path for the custom page URL handler that will be exported by default. The custom page URL handler allows you to define custom URLs that can be used to open your application, and provides the following variables for customization: $p: the process pid, $s: the session index, $S: the total sessions, $t: the tab index, $T: the total tabs per session, $i: the tab absolute index. You can use these variables to create custom URL schemes that suit your application's needs.

    Type: string

    Default: ""

    The fake video path; if set, the video will be used as fake media source. It accepts a single path or a comma-separated list of videos paths that will be used in round-robin by the started sessions. The docker pre-built image contains a 2 minutes video sequence stored at /app/video.mp4. It accepts a local file, an http endpoint or a string starting with generate: (example: generate:null will generate a black video with silent audio). The temporary files containing the raw video and audio will be stored at ${VIDEO_CACHE_PATH}/video.${VIDEO_FORMAT} and ${VIDEO_CACHE_PATH}/audio.wav.

    Type: string

    Default: "https://github.com/vpalmisano/webrtcperf/releases/download/v2.0.4/video.mp4"

    The fake video resize width.

    Type: positive int

    Default: 1280

    The fake video resize height.

    Type: positive int

    Default: 720

    The fake video framerate.

    Type: positive int

    Default: 25

    The fake audio/video seek position in seconds.

    Type: positive int

    Default: 0

    The fake audio/video duration in seconds.

    Type: positive int

    Default: 120

    If the temporary video and audio raw files can be reused across multiple runs.

    Type: boolean

    Default: true

    The path where the video and audio raw files are stored.

    Type: string

    Default: "/home/runner/.webrtcperf/cache"

    The fake video file format presented to the browser.

    Type: [ "y4m", "mjpeg" ]

    Default: "y4m"

    If true, the audio/video/screenshare will be generated using the browser fake device. Otherwise, the audio and video streams will be captured from a video element attached to the page, while the screenshare will be captured from a new browser tab.

    Type: boolean

    Default: true

    If greater than 0, the test will stop after the provided number of seconds.

    Type: positive int

    Default: 0

    A JSON5 string with a valid throtter configuration (https://github.com/vpalmisano/throttler).

    Type: string

    Default: ""

    If not zero, it specifies the maximum period in seconds after which a new random active tab is selected, enabling the getUserMedia audio tracks in that tab and disabling all of the other tabs.

    Type: positive int

    Default: 0

    When using random audio period, it defines the probability % that the selected audio will be activated (value: 0-100).

    Type: positive int

    Default: 100

    When using random audio period, it defines the number of pages to be included into the random selection.

    Type: positive int

    Default: 0

    The Chromium executable path.

    Type: string

    Default: ""

    The Chromium version. It will be downloaded if the chromium path is not provided.

    Type: string

    Default: "131.0.6778.204"

    The remote Chromium URL (http://HOST:PORT). If provided, the remote instance will be used instead of running a local chromium process.

    Type: string

    Default: ""

    Chromium additional field trials.

    Type: string

    Default: ""

    The browser window width.

    Type: positive int

    Default: 1920

    The browser window height.

    Type: positive int

    Default: 1080

    The browser device scale factor.

    Type: float

    Default: 1

    Specifies the maximum number of concurrent WebRTC video decoder instances that can be created on the same host. If set it will disable the received video resolution and jitter buffer stats. This option is supported only when using the custom chromium build. The total decoders count is stored into the virtual file /dev/shm/chromium-video-decoders

    Type: number

    Default: -1

    Applies the maxVideoDecoders option starting from this session ID.

    Type: number

    Default: -1

    Runs the browser in incognito mode.

    Type: boolean

    Default: false

    If unset, the browser will run in headless mode. When running on MacOS or Windows, set it to any not-empty string. On Linux, set it to a valid X server DISPLAY string (e.g. :0).

    Type: string

    Default: ""

    The number of browser sessions to start.

    Type: positive int

    Default: 1

    The number of tabs to open in each browser session.

    Type: positive int

    Default: 1

    The starting ID assigned to sessions.

    Type: positive int

    Default: 0

    The start timestamp (in milliseconds). If 0, the value will be calculated using Date.now()

    Type: positive int

    Default: 0

    If detailed participant metrics values should be collected.

    Type: index

    Default: ""

    The pages spawn rate (pages/s).

    Type: float

    Default: 1

    If true, the pages console logs will be shown on console.

    Type: boolean

    Default: true

    If set, only the logs with the matching text will be printed on console. Regexp string allowed.

    Type: string

    Default: ""

    If set, page console logs will be saved on the selected file path.

    Type: string

    Default: ""

    The user agent override.

    Type: string

    Default: ""

    One or more JavaScript file paths (comma-separated). If set, the files contents will be executed inside each opened tab page; the following global variables will be attached to the webrtcperf global object: WEBRTC_PERF_SESSION the session number (0-indexed); WEBRTC_PERF_TAB the tab number inside the same session (0-indexed); WEBRTC_PERF_INDEX the page absolute index (0-indexed).

    Type: string

    Default: ""

    Additional parameters (in JSON format) that will be exposed into the page context as webrtcperf.params.

    Type: string

    Default: ""

    A string with the video codecs to disable (comma-separated); e.g. vp9,av1

    Type: string

    Default: ""

    A JSON string with the localStorage object to be set on page load.

    Type: string

    Default: ""

    A JSON string with the sessionStorage object to be set on page load.

    Type: string

    Default: ""

    If true, all the page cookies are cleared.

    Type: boolean

    Default: false

    It enables the GPU acceleration (experimental). Set to "desktop" to use the host X server instance.

    Type: string

    Default: ""

    It enables the Chromium browser logging for the specified session indexes.

    Type: index

    Default: ""

    A comma-separated list of request URLs that will be automatically blocked.

    Type: string

    Default: ""

    A dictionary of headers keyed by the url in JSON5 format (e.g. { "https://url.com/*": { "header-name": "value" } }).

    Type: string

    Default: ""

    A dictionary of content replacements keyed by the url in JSON5 format. Examples:

    • replace strings using a regular expression: { "https://url.com/*": [{ search: "searchString": replace: "anotherString" }] }
    • completely replace the content: { "https://url.com/file.js": [{ file: "path/to/newFile.js" }] }

    Type: string

    Default: ""

    An array of url responses that will be saved to the disk, keyed by the url in JSON5 format. Example: [{ urlPattern: "https://url.com/*", output: "save/directory" }]

    Type: string

    Default: ""

    A string with a CSS styles to inject into each page. Rules containing "important" will be replaced with "!important".

    Type: string

    Default: ""

    A string with an array of CookieParam to set into each page in JSON5 format.

    Type: string

    Default: ""

    A comma-separated list of permissions to grant to the opened url.

    Type: string

    Default: ""

    When set, it overrides the navigator.hardwareConcurrency property.

    Type: positive int

    Default: 0

    The chrome debugging port. If this value != 0, the chrome instance will listen on the provided port + the start-session-id value.

    Type: positive int

    Default: 0

    The chrome debugging listening address. If unset, the network default interface address will be used.

    Type: string

    Default: "127.0.0.1"

    If the statistics should be displayed on the console output.

    Type: boolean

    Default: true

    The log file path; if set, the stats will be written in a .csv file inside that file.

    Type: string

    Default: ""

    The log file path; if set, the detailed stats will be written in a .csv file inside that file.

    Type: string

    Default: ""

    The stats collect interval in seconds. It should be lower than the Prometheus scraping interval.

    Type: positive int

    Default: 15

    The timeout in seconds after which the RTC stats coming from inactive hosts are removed. It should be higher than the statsInterval value.

    Type: positive int

    Default: 60

    A dictionary of custom metrics keys in JSON5 format (e.g. '{ statName1: { labels: ["label1"] } }').

    Type: string

    Default: ""

    If set, logs are sent to the specified Prometheus Pushgateway service (example: "http://127.0.0.1:9091").

    Type: string

    Default: ""

    The Prometheus Pushgateway job name.

    Type: string

    Default: "default"

    The Prometheus Pushgateway basic auth (username:password).

    Type: string

    Default: ""

    Allows to use gzip encoded pushgateway requests.

    Type: boolean

    Default: true

    Alert rules definition (in JSON format).

    Type: string

    Default: ""

    The alert rules report output filename.

    Type: string

    Default: ""

    The alert rules report fails percentile (0-100). With the default value the alert will be successful only when at least 95% of the checks pass.

    Type: positive int

    Default: 95

    The URL to push the collected stats.

    Type: string

    Default: ""

    The ID of the collected stats to push.

    Type: string

    Default: "default"

    The HTTP server listening port.

    Type: positive int

    Default: 0

    The HTTP server basic auth secret. The auth user name is set to admin by default.

    Type: string

    Default: "secret"

    If true, the server will use the HTTPS protocol.

    Type: boolean

    Default: false

    An optional path that the HTTP server will expose with the /data endpoint.

    Type: string

    Default: ""

    When set, it runs the VMAF calculator for the video files saved under the provided directory path.

    Type: string

    Default: ""

    If true, for each VMAF comparison it creates a side-by-side video with the reference and degraded versions.

    Type: boolean

    Default: false

    If true, the VMAF intermediate files will not be deleted.

    Type: boolean

    Default: false

    If true, the VMAF source files will not be deleted.

    Type: boolean

    Default: true

    If set, the reference and degraded videos will be cropped using the specified configuration in JSON5 format. Crop configuration should be expressed using the ffmpeg crop filter syntax (https://ffmpeg.org/ffmpeg-filters.html#crop). E.g. { "Participant-000001_recv-by_Participant-000000': { ref: { w: "iw-10", h: "ih-5" }, deg: { w: "200", h: "200" } } }

    Type: string

    Default: ""

    When set, it prepares the selected video applying a timestamp overlay on top of it. The filename must be provided in the format <video path>,<ID>, where the selected ID will be used unique video identifier in the overlay.

    Type: string

    Default: ""

    When set, it runs the VMAF video preprocessor, that converts a video file into the IVF format with timestamps matching the overlay recognition. The filename must contain a recv or send string to identify if the video was a reference (send) or a degraded version (recv), e.g. Participant1_recv.mp4.

    Type: string

    Default: ""

    If set, the vmaf prepared/processed video will be cropped using the specified configuration in JSON5 format. Crop configuration should be expressed using the ffmpeg crop filter syntax (https://ffmpeg.org/ffmpeg-filters.html#crop). E.g. { w: "iw-10", h: "ih-5", x: "10", y: '5' }

    Type: string

    Default: ""

    When set, it runs the visqol calculator for the audio files saved under the provided directory path.

    Type: string

    Default: ""

    If true, the visqol source files will not be deleted.

    Type: boolean

    Default: true