Skip to content

Commit 57c68b8

Browse files
author
Thorsten Lannynd
committed
feat(linux): Chromium: Add video streaming documentation
Added documentation for Chromium browser video streaming capabilities. Documented hardware acceleration via V4L2 decoder with Wave5 hardware for HTML5, YouTube, and Vimeo streaming. Included H.264 hardware acceleration details and performance benchmarks comparing hardware versus software decoding across supported platforms. Signed-off-by: Thorsten Lannynd <t-lannynd@ti.com>
1 parent c77beeb commit 57c68b8

File tree

1 file changed

+162
-0
lines changed

1 file changed

+162
-0
lines changed

source/linux/Demo_User_Guides/Chromium_Browser.rst

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,3 +306,165 @@ use the mouse to click the "Run Benchmark" button.
306306
| |__PART_FAMILY_DEVICE_NAMES__| | 177.11 @ 1080p60 |
307307
+---------------------------------+-----------------------------------------------------------------------+
308308

309+
310+
Video Streaming
311+
---------------
312+
313+
.. ifconfig:: CONFIG_part_variant not in ('AM62X', 'AM62AX', 'J721E')
314+
315+
Streaming platforms and demuxed videos support hardware acceleration for video playback.
316+
This is achieved using the V4L2 stateful decoder API that interfaces with the :doc:`Wave5 <../Foundational_Components_Multimedia_wave5>` hardware decoder present on |__PART_FAMILY_DEVICE_NAMES__|.
317+
Hardware acceleration has been successfully verified with the `W3C WebCodecs VideoDecoder Interface <https://www.w3.org/TR/webcodecs/#videodecoder-interface>`_, which serves as the backend technology for streaming platforms such as YouTube and Vimeo.
318+
319+
Tested streaming sources include HTML5 video playback, YouTube, and Vimeo.
320+
321+
**HTML5 Video Playback**
322+
323+
An **HTML5 video** is a standard video element embedded directly into a webpage by using the ``<video>`` tag.
324+
Unlike platforms such as YouTube or Vimeo, which run within complex web applications containing ads, thumbnails, and JavaScript-heavy interfaces, HTML5 video playback delivers the raw video stream directly to the browser's player.
325+
326+
.. ifconfig:: CONFIG_part_variant not in ('AM62X', 'AM62AX', 'J721E')
327+
328+
This makes it ideal for testing hardware decoding performance, as it avoids additional CPU load from webpage rendering and scripting.
329+
330+
.. code-block:: console
331+
332+
$ chromium http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
333+
334+
**Vimeo Streaming**
335+
336+
Vimeo commonly uses the **H.264** codec for playback.
337+
338+
.. ifconfig:: CONFIG_part_variant not in ('AM62X', 'AM62AX', 'J721E')
339+
340+
Vimeo is supported by hardware acceleration through the V4L2 decoder.
341+
Unlike YouTube, Vimeo does not dynamically switch codecs based on system capability and generally delivers consistent H.264 streams across devices,
342+
making it more predictable for hardware decoding tests.
343+
344+
.. code-block:: console
345+
346+
$ chromium https://player.vimeo.com/video/640499893
347+
348+
**YouTube Streaming**
349+
350+
YouTube commonly uses **VP9** or **AV1** codecs for playback, which are **not hardware accelerated** on this platform.
351+
Chromium falls back to **software decoding** when using those codecs, resulting in high CPU usage, especially at higher resolutions.
352+
353+
.. ifconfig:: CONFIG_part_variant not in ('AM62X', 'AM62AX', 'J721E')
354+
355+
To enable hardware acceleration, **Chromium requires an extension** that forces YouTube to use the **H.264 codec**.
356+
Once this extension is installed, YouTube streams can be hardware decoded using the V4L2 decoder.
357+
358+
.. code-block:: console
359+
360+
$ chromium https://www.youtube.com/embed/R6MlUcmOul8
361+
362+
.. note::
363+
364+
- YouTube and Vimeo perform best when played in an **embedded player**, as loading the full webpage and thumbnails is CPU-intensive.
365+
- Chromium performs **Audio decoding** using **software**, as hardware acceleration for audio streams is not supported.
366+
- Tested resolutions are up to **1080p30**. Higher resolutions might work depending on the platform capabilities.
367+
- Hardware accelerated encoding for WebRTC is not currently supported.
368+
- Only H.264 codec videos encoded in YUV420 8-bit format are hardware accelerated. Other codecs and formats will fall back to software decoding.
369+
370+
.. ifconfig:: CONFIG_part_variant not in ('AM62X', 'AM62AX', 'J721E')
371+
372+
**Performance Results**
373+
374+
375+
.. ifconfig:: CONFIG_part_variant in ('AM62PX', 'J722S')
376+
377+
**Hardware Acceleration Performance**
378+
379+
+---------------------------------+----------------------+----------------------+----------------------+
380+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
381+
+---------------------------------+----------------------+----------------------+----------------------+
382+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 41.21% | 10% |
383+
+---------------------------------+----------------------+----------------------+----------------------+
384+
| | Vimeo | 62.39% | 13% |
385+
+---------------------------------+----------------------+----------------------+----------------------+
386+
387+
388+
**Software Acceleration Performance**
389+
390+
+---------------------------------+----------------------+----------------------+----------------------+
391+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
392+
+---------------------------------+----------------------+----------------------+----------------------+
393+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 213.02% | 13% |
394+
+---------------------------------+----------------------+----------------------+----------------------+
395+
| | Vimeo | 157.86% | 11% |
396+
+---------------------------------+----------------------+----------------------+----------------------+
397+
398+
.. ifconfig:: CONFIG_part_variant in ('AM68','J721S2')
399+
400+
**Hardware Acceleration Performance**
401+
402+
+---------------------------------+----------------------+----------------------+----------------------+
403+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
404+
+---------------------------------+----------------------+----------------------+----------------------+
405+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 48.30% | 6% |
406+
+---------------------------------+----------------------+----------------------+----------------------+
407+
| | Vimeo | 60.12% | 7% |
408+
+---------------------------------+----------------------+----------------------+----------------------+
409+
410+
411+
**Software Acceleration Performance**
412+
413+
+---------------------------------+----------------------+----------------------+----------------------+
414+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
415+
+---------------------------------+----------------------+----------------------+----------------------+
416+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 98.24 % | 8% |
417+
+---------------------------------+----------------------+----------------------+----------------------+
418+
| | Vimeo | 123.68% | 11% |
419+
+---------------------------------+----------------------+----------------------+----------------------+
420+
421+
.. ifconfig:: CONFIG_part_variant in ('J742S2')
422+
423+
**Hardware Acceleration Performance**
424+
425+
+---------------------------------+----------------------+----------------------+----------------------+
426+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
427+
+---------------------------------+----------------------+----------------------+----------------------+
428+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 26.88% | 6% |
429+
+---------------------------------+----------------------+----------------------+----------------------+
430+
| | Vimeo | 38.19% | 7% |
431+
+---------------------------------+----------------------+----------------------+----------------------+
432+
433+
434+
**Software Acceleration Performance**
435+
436+
+---------------------------------+----------------------+----------------------+----------------------+
437+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
438+
+---------------------------------+----------------------+----------------------+----------------------+
439+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 107.87% | 9% |
440+
+---------------------------------+----------------------+----------------------+----------------------+
441+
| | Vimeo | 106.30% | 12% |
442+
+---------------------------------+----------------------+----------------------+----------------------+
443+
444+
.. ifconfig:: CONFIG_part_variant in ('AM69','J784S4')
445+
446+
**Hardware Acceleration Performance**
447+
448+
+---------------------------------+----------------------+----------------------+----------------------+
449+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
450+
+---------------------------------+----------------------+----------------------+----------------------+
451+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 25.52% | 5% |
452+
+---------------------------------+----------------------+----------------------+----------------------+
453+
| | Vimeo | 28.88% | 7% |
454+
+---------------------------------+----------------------+----------------------+----------------------+
455+
456+
457+
**Software Acceleration Performance**
458+
459+
+---------------------------------+----------------------+----------------------+----------------------+
460+
| **Platform** | **Website** | **CPU Utilisation** | **GPU Utilisation** |
461+
+---------------------------------+----------------------+----------------------+----------------------+
462+
| |__PART_FAMILY_DEVICE_NAMES__| | YouTube | 138.43% | 9% |
463+
+---------------------------------+----------------------+----------------------+----------------------+
464+
| | Vimeo | 104.19% | 11% |
465+
+---------------------------------+----------------------+----------------------+----------------------+
466+
467+
.. ifconfig:: CONFIG_part_variant not in ('AM62X', 'AM62AX', 'J721E')
468+
469+
.. note::
470+
The tests were performed using the Big Buck Bunny video at 1080p24 for Vimeo and Tears of Steel at 1080p30 for YouTube at full screen.

0 commit comments

Comments
 (0)