Advertisement

XMedia Recode

VP9-Codec settings in XMedia Recode: Tips and Techniques

VP9-Codec settings

The VP9 codec is a video compression standard developed by Google. It is the successor to the VP8 codec and is widely used for streaming video on the internet, particularly on platforms like YouTube. The VP9 codec was designed to improve video quality at lower bitrates, resulting in better efficiency and lower bandwidth usage.

VP9 offers better compression than its predecessor, VP8, and can achieve approximately 30 to 50% greater efficiency than older codecs like H.264. This means less data needs to be transmitted while maintaining the same video quality, which is especially important for streaming services.


Advertisement

Mode

  • Convert (convert video stream)
  • Copy (copy video stream)
Stream mode: Convert or Copy

Codec

Determines which video codec to use for encoding.

Language

Sets the language that displays when playing the player.

video stream language

Framerate

Specifies the output video rate.

Level

The Level setting sets the limit for various parameters such as the maximum resolution, the maximum bitrate and the max tiles that can be used in an encode.

Higher levels require more powerful hardware, both for encoding and decoding.

VP9 Level Setting

Tune

The tune function in the VP9 codec optimizes the encoding for certain quality metrics

  • PSNR: This setting aims to maximize the PSNR
  • SSIM: This setting aims to maximize the SSIM
VP9: Tune setting

Tune centent type

The tune content type influences how the codec processes the video and which priorities are set during encoding.

  • Default

    No specific adjustments are made for the content. This is a general setting that works well for most videos.

  • Screen

    Is for screen recordings or videos that contain text and fine details

  • Film

    Optimizes the codec for encoding conventional video content

VP9: Tune centent type setting

Quality

With the VP9 codec, the Quality function determines whether speed or quality is the priority

  • Real-time (Fast processing and low resource consumption, with slightly poorer quality)
  • Good (Better quality than real-time with a moderate compromise in speed)
  • Best
VP9: Quality setting

Min GOP (Group Of Pictures) length

Minimum GOP length, the minimum distance between I-frames.

Keyframe Interval

This determines the maximum distance between I-frames

Very high GOP lengths will result in slightly more efficient compression, but will make seeking in the video somewhat more difficult

CPU Used

This setting allows you to determine how intensively the CPU is used for video encoding.

0: This is the lowest value and means that the encoding is performed with the highest possible quality and the lowest possible resource consumption. The algorithm uses very little parallelization and does not intensively use all CPU cores. The encoding is slower, but the result is of the highest quality.

7 and 8: These values represent the highest optimization for speed and maximize the use of CPU resources. At these settings, encoding will be significantly faster, but quality may be noticeably compromised. These values ​​are mainly suitable for scenarios where speed is more important than quality, such as real-time streaming or fast video processing tasks.

VP9: CPU Used setting

Max Number of Frames to Lag

This setting affects how many frames the encoder can consider in its look-ahead buffering to make predictions and find the optimal encoding for the compressed frames.

In video coding, it is common for a frame to be encoded not only based on the information from the previous frame (for I-frames) or the neighboring frames (for P-frames and B-frames). The encoder can "look" at multiple frames to find the best encoding strategy for future frames.

The encoder can work more efficiently by including more future frames, resulting in a higher compression rate without compromising visual quality.

VP9: Max Number of Frames to Lag setting

Display mode

  • Progressiv
  • Interlaced TFF (Top field first)
  • Interlaced BFF (Bottom field first)

Color mode

Specify output colorspace format.

Threads

Enables parallel encoding by using more than 1 thread to increase speed on multi-core systems

Tile Columns

Tiling splits the video into rectangular regions, which allows multi-threading for encoding and decoding.
The number of tiles is always a power of two. 0=1 tile, 1=2, 2=4, 3=8, 4=16, 5=32.

VP9: Tile Columns setting

Advertisement

Tile Rows

The Tile Rows setting determines the number of vertical "tile" rows into which the image is divided.
The number of tiles is always a power of two: 1, 2, 4, 8, 16, 32.

The more tile rows you choose, the more parallel processing units can be used, which generally improves encoding performance, especially on multi-core processors.

VP9: Tile Rows setting

Error Resilience Mode

In real-time video applications or streaming protocols like WebRTC or DASH (Dynamic Adaptive Streaming over HTTP), enabling the Error Resilience Mode ensures that the video can continue to play even with occasional packet loss or network jitter, making it more reliable in less-than-ideal network conditions.

Row-Based Multi-Threading

Row-Based Multi-Threading in the VP9 codec is a parallel processing technique for video frames that aims to increase the efficiency and speed of video decoding by having multiple threads work simultaneously on different parts of a frame.

Enable Frame Parallel Encode

The "Enable Frame Parallel Encode" feature in the VP9 codec allows multiple frames of a video to be encoded in parallel, resulting in faster processing. This technique efficiently uses multi-core processors, shortens encoding time, and improves scalability, especially when processing large or high-resolution video data.

VP9: Enable Frame Parallel Encode

Share