IP Library Granted Patent US 12707130
Granted Patent B2
US 12707130 · App. 18/254,367 · Granted Aug 11, 2026

Decoding a video stream within a browser

Inventors: Robert Johnson (London, GB); Guido Meardi (London, GB); Fabio Murra (London, GB)
Assignee: V-NOVA INTERNATIONAL LIMITED
H04N21/8173H04N19/39H04N21/234327H04N21/440227H04N21/4884
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12707130
App. No.
18/254,367
Granted
Aug 11, 2026
Kind
B2
Abstract

Certain examples described herein relate to decoding a video stream within a browser. An encoded multi-layer video stream is received in a source buffer. An encoded base stream is extracted from the source buffer and decoded using a markup video element to obtain a decoded base stream. The decoded base stream is rendered in a first markup video display region, wherein the first markup video display region is hidden. An encoded enhancement stream is extracted from the source buffer and decoded to obtain a decoded enhancement stream. The decoded base stream is obtained from the first markup video display region and combined with the decoded enhancement stream to generate a reconstructed video stream, which is rendered in a second markup video display region that is visible within the browser.

Claims (33)

1 . A method of decoding a video stream within a browser, the method comprising:

receiving, in a source buffer, an encoded multi-layer video stream, which includes an encoded base stream and an encoded enhancement stream, wherein a combination of the encoded base stream and the encoded enhancement stream are usable to reconstruct an original video stream;

extracting the encoded base stream from the source buffer;

decoding the encoded base stream using a markup video element to obtain a decoded base stream;

rendering the decoded base stream in a first markup video display region, wherein the first markup video display region is hidden, the rendering being performed to expose decoded base stream video data to an enhancement stream decoder operating within the browser;

extracting the encoded enhancement stream from the source buffer;

decoding the encoded enhancement stream to obtain a decoded enhancement stream;

causing the enhancement stream decoder to obtain the decoded base stream from the first markup video display region by extracting video frames of the decoded base stream as the video frames are rendered in the hidden first markup video display region;

combining the decoded base stream obtained from the hidden first markup video display region with the decoded enhancement stream to generate a reconstructed video stream; and

rendering the reconstructed video stream in a second markup video display region that is visible within the browser.

2 . The method according to claim 1 , wherein the encoded multi-layer video stream is a Low Complexity Enhancement Video Coding (LCEVC)-encoded video stream.

3 . The method according to claim 1 , wherein the markup video element, the first markup video display region, and the second markup video display region are each Hypertext Markup Language (HTML) elements, respectively.

4 . The method according to claim 3 , wherein the second markup video display region is an HTML canvas element.

5 . The method according to claim 1 , further comprising:

obtaining subtitle data associated with the encoded multi-layer video stream; and

rendering subtitles based on the subtitle data using a further additional markup element.

6 . The method according to claim 1 , wherein the rendering of the decoded base stream uses a function call to at least one of:

an operating-system-implemented decoding resource; and

a browser-implemented decoding resource.

7 . The method according to claim 1 , wherein the decoding the encoded enhancement stream comprises using at least one of a JavaScript library or a WebAssembly library.

8 . The method according to claim 1 , wherein the markup video element comprises a JavaScript player.

9 . The method according to claim 1 , comprising using a web worker function to extract metadata from the encoded multi-layer video stream for use in generating the reconstructed video stream.

10 . The method according to claim 1 , wherein the second markup video display region overlaps the first markup video display region.

11 . The method according to claim 1 , further comprising, before generating the reconstructed video stream, detecting a capability of decoding the encoded enhancement stream of at least one of: the browser and an operating system of a client device comprising the browser.

12 . A decoder for decoding a video stream within a browser, the decoder configured to:

obtain an encoded multi-layer video stream, which includes an encoded base stream and an encoded enhancement stream, from a source buffer, wherein a combination of the encoded base stream and the encoded enhancement stream are usable to reconstruct an original video stream;

decode the encoded enhancement stream to obtain a decoded enhancement stream;

obtain the decoded base stream of the encoded multi-layer video from a first markup video display region, wherein the first markup video display region is hidden, the decoded base stream being rendered in the first markup video display region to allow access to decoded base stream video data by the decoder, which is operating within the browser, wherein obtaining the decoded base stream is performed by extracting video frames of the decoded base stream as the video frames are rendered in the hidden first markup video display region; and

combine the decoded base stream obtained from the hidden first markup video display region with the decoded enhancement stream to generate a reconstructed video stream for rending in a second markup video display region that is visible within the browser.

13 . The decoder of claim 12 , wherein the encoded multi-layer video stream is a Low Complexity Enhancement Video Coding (LCEVC)-encoded stream.

14 . The decoder of claim 12 , wherein the decoder is a plug-in to the browser.

15 . A browser comprising the decoder of claim 12 .

16 . A non-transitory computer-readable storage medium storing instructions executable by at least one processor to perform the method of claim 1 .