24-26 September 2023
Europe/Madrid timezone

Adding W3C Media Source Extensions and Encrypted Media Extensions to GStreamer

25 Sep 2023, 11:20
Room 1 (Palexco)

Room 1



Jordan Yelloz


There are several existing media player frameworks based on client-side web technology that rely on Media Source Extensions (MSE) API within web browsers. A new GStreamer library has implemented the MSE API in GObject C to make it possible for these players to run on top of GStreamer without depending on a web browser library. Separately, since there is currently no complete solution within GStreamer to support the playback of DRM-protected media, a new GStreamer API was designed which maps closely to the Encrypted Media Extensions (EME) specification. Usage of the GStreamer MSE and EME APIs may be combined by applications, though both APIs are designed to function independently.

This presentation will discuss the WebKit origins of the MSE library, its design, and the differences between the original implementation and the GStreamer library. The presentation will also provide an overview of the GStreamer EME API design from two perspectives: one of a developer writing an application designed to play protected media, and the second of a developer making a content decryption module (CDM) available to GStreamer. Finally, an end-to-end solution will be shown of a GStreamer application using the EME API to play encrypted content using a commercially available CDM.

Speaker bio Jordan Yelloz is a Software Engineer at Collabora based in Northern Colorado, USA. He has been developing primarily with GStreamer projects since early 2022 and has previously worked for Amazon Prime Video and a few smaller companies over the years in areas such as digital printing automation and digital audio.

Primary author

Presentation Materials

2023 Platinum Sponsor
2023 Gold Sponsors
2023 Silver Sponsors
The Linux Foundation
2023 Bronze Sponsors
Khronos Group
2023 Supporters
A Coruña Turismo
Raspberry Pi