GStreamer, Shaka Player, and the open-source path to LCEVC adoption

Fabio Murra

April 30, 2026

For years, the hardest part of adopting a new codec has not been compression science, but the integration work: forking player code, patching build systems, and maintaining custom branches that drift further from upstream with every release. LCEVC, the MPEG-5 Part 2 standard, is now available in multiple open-source projects, perfect for streaming engineers and the executives who fund their roadmaps. GStreamer and Shaka Player support is the moment LCEVC integration shifts from “custom project” to “standard pipeline component.”

The open-source milestone

LCEVC operates as a thin layer that sits on top of your existing base codec, whether H.264, HEVC, AV1, or VVC. Released in March 2025, GStreamer 1.26, includes two new plugins: lcevcdec and lcevcenc. Developed by Collabora in collaboration with V-Nova, these plugins treat LCEVC as a first-class element in the GStreamer pipeline. You can slot them into an existing playback or transcoding graph the same way you would add any other codec element. No proprietary forks. No side-loaded libraries that break on the next GStreamer point release.

On the web side, Shaka Player now supports LCEVC decoding for DASH and HLS streams. Because Shaka is Google’s reference player for DASH and a widely deployed open-source option, this integration means web-based LCEVC playback no longer requires a custom player. The LCEVC enhancement layer hooks into the existing MediaSource Extensions pipeline through V-Nova’s lcevcdec-js JavaScript open-source project.

V-Nova’s SDK supports over 20 encoder implementations and provides reference integrations for ExoPlayer on Android, VLCKit on Apple platforms, and dash.js for web.

Integration architecture: Where LCEVC sits in the pipeline

LCEVC-enhanced streams contain two layers: a base layer encoded with a conventional codec, typically at a lower resolution, and a lightweight enhancement layer that carries residual correction data. At decode time, the base layer is decoded and upscaled, then the LCEVC residuals are applied to restore full-resolution detail. The enhancement data can be carried as supplemental enhancement information (SEI) within the base codec container, or as a separate track in an MP4 container as specified by CMAF and in DASH.

For DASH and HLS delivery, LCEVC-enhanced streams are compatible with standard container formats. CMAF with fMP4 segments works out of the box. The enhancement data travels alongside the base codec data, so existing CDN infrastructure, DRM systems, and manifest generators do not require changes.

In a GStreamer pipeline, the base codec stream is first demuxed (e.g., qtmux), and then decoded with an appropriate decoder (e.g., avdec_h264, vah265dec). The decoded base is then piped to the lcevcdec element, which applies to the LCEVC enhancement, and outputs the full-resolution frame. From the rest of the pipeline’s perspective, it behaves like any other decoder element. Downstream sinks, filters, and renderers require no modification (e.g., videoconvert, autovideosink, etc.).

Code walkthrough: Getting started

A minimal GStreamer pipeline for LCEVC-enhanced playback looks like this:

gst-launch-1.0 filesrc location=sample_lcevc.mp4 ! qtdemux ! h264parse ! avdec_h264 ! lcevcdec ! videoconvert ! autovideosink

Demuxers and parsers for many base codecs have been updated to support LCEVC and allow the lcevcdec element to be dropped into most existing pipelines. For web-based players, hls.js integration follows a similar pattern. Initialize the LCEVC decoder from V-Nova’s JavaScript SDK, attach it to your hls.js instance, and point it at an LCEVC-enhanced HLS manifest. The SDK hooks into the player’s rendering pipeline and applies the enhancement layer before frames reach the canvas.

For ExoPlayer on Android, V-Nova provides a custom Renderer implementation that intercepts decoded frames, applies the LCEVC enhancement, and passes the result to the standard output surface.

What to build first

If you are evaluating LCEVC for your streaming stack, start where the value is highest and the risk is lowest. VOD enhancement is the most straightforward entry point. You control the encoding pipeline end to end to A/B test quality and bandwidth against your existing encodes with a representative content library using LCEVC. Then compare VMAF scores at various bitrates and measure the bandwidth delta. Most teams see 30–40% savings at equivalent perceptual quality.

Low latency live is the second natural step. LCEVC’s lightweight encoder and decode overhead makes it well suited for latency-sensitive workflows where you cannot afford to trade processing time for compression efficiency. The enhancement layer adds minimal decode latency because the residual correction is computationally simple compared to a full frame decode pass.

Edge delivery is the third application to consider, particularly if you operate infrastructure at the network edge where bandwidth costs are a direct line item. LCEVC’s bandwidth reduction translates directly to lower egress costs without requiring a full codec migration, which makes the business case straightforward to model.

For quality comparison, use VMAF as your primary metric, or better yet, watch the output picture. Test across a range of content types: high-motion sports, high-detail gaming content, animation, and film, grain-heavy cinematic content. LCEVC’s enhancement effect varies by content complexity, and the most useful evaluation covers the range your service delivers.

When a codec enhancement ships as a native plugin in the two most widely used open-source media frameworks, the integration story changes fundamentally. Developers no longer need to evaluate whether LCEVC is worth the custom engineering effort. The open-source integrations in GStreamer 1.26 and Shaka Player mark a turning point.

LCEVC is no longer a technology you need to build custom tooling to evaluate. It is a pipeline component you can test this week using tools you already know. The code is available, the documentation is public, and the bandwidth savings are measurable from day one. The question is no longer whether LCEVC is ready for your stack. It is whether your stack is ready to stop leaving 30-40% of its bandwidth on the table.

Fabio Murra is an expert in video compression and video systems, with over 25 years in the media industry. As Senior Vice President of Product & Marketing at V-Nova, he leads product strategy, marketing, and professional services, driving the adoption of cutting-edge compression technologies across diverse applications, including broadcast, streaming, social media, and pixel streaming. Fabio played a key role in the ratification and deployment of TV 3.0 in Brazil, a next-generation television standard that is set to transform digital broadcasting. As a contributor to multiple video systems patents, Fabio is pushing the boundaries of video technology, influencing standards and innovations that define the modern media landscape including MPEG-5 LCEVC and SMPTE VC-6, working on both software and hardware implementations.

Related insights