Open main menu

DAVE Developer's Wiki β

Changes

XUELK-AN-006: Video playing on i.MX6UL-based platforms

425 bytes added, 10:36, 30 December 2020
no edit summary
{{InfoBoxTop}}
{{AppliesToAXELULite}}
{{AppliesToAXEL ULite AN}}
{{AppliesToSBCLynx}}
{{AppliesTo SBC Lynx AN}}
{{InfoBoxBottom}}
{{WarningMessage|text=This application note was validated against specific versions of the kit only. It may not work with other versions. Supported versions are listed in the ''History'' section.}}
== History ==
{| class="wikitable" border="1"
!Version
!Xuelk version
!Date
!Notes
|-
|1.0.0
|1.1.3
|May 2017
|First release
|-
|}
 
==Introduction==
As known, i.MX6UL SoC is not designed to implement rich complex user interfaces (UI), even though it integrates an LCD controller. However, even simple UIs might require playing some sort of low-resolution videos.
Starting from original Debian root file system provided [https://mirror.dave.eu/lynx/debian/20170403/20170403-sbclynx-debian-8-usd.zip here], more packages need to be added for using the well known multimedia framework [https://gstreamer.freedesktop.org gstreamer]
More info about gstreamer can be found on [https://gstreamer.freedesktop.org here] and on Github [https://github.com/GStreamer gstreamer] server
We assume that network interface has been already configured as described on [[XUELK-AN-002:_Running_Debian_distribution|XUELK-AN-002: Running Debian distribution]].
===Adding gstreamer packages===
It is possibile to install the complete '''gstreamer 1.0''' suite (easy way to have the richest rfs configuration for gstreamer usage)
</pre>
as it's shown on installation log, apt-get asks for installing 713MB of additional packages. In case you are looking for a reduced space installation, you may need to select the minimum required packages required for video decoding.
Tipically, it is enough to install:
but required packages are strictly related to the gstreamer pipeline invoked and what kind of video/audio stream want to be decoded.
===gstreamer pipeline===
The pipeline used is the easiest one for decoding a local file on rfs
* pipeline:
<pre class="board-terminal">
gst-launch-1.0 -vvv playbin uri=file:///root/video/BigBuckBunny_640x320BigBuckBunny_640x360.mp4 video-sink=fbdevsink
</pre>
* top process shows that cpu is running at 99%
</pre>
This is the reasonable ''maximum video resolution'' that can be fully decoded fully in software (this is due to iMX6UL absence of 3D hardware accelerator)
===Use case #2: MPEG2 MPEG4 320x180@24fps===
This use case is similar to the previous one, but the same video file has been scaled to 1/4 the original dimension (0.5 horizontal and 0.5 vertical)
</pre>
This can be a more ''real use case'' where the cpu used for video decoding is partially devoted to video decoding and can be perform the other usual tasks (graphics, user interaction, peripherals controls, etc.) without major impacts. ==Demo on youtube== {| class="wikitable" | width="100%"| {{#ev:youtube|AsgtEc1jwVY|500|center|Video MPEG and QT5.9 running on i.MX6 UL |frame}}|}
dave_user, Administrators
5,185
edits