Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Removed

Table of Contents

Introduction

...

Advanced Adaptive Media Player (AAMP) is an application which uses gstreamer (AAMP) to present clear/encrypted HTTP Live Streams.(HLS)

HLS is a Media Streaming Protocol used for delivering visual and audio media over the internet. HLS uses the HTTP protocol and hence users can stream media from their regular web server. To Stream HLS data,source files are encoded at different data rates and will be split into chunks with the .ts file extension  and  manifest file  .M3U8  file is created  for maintaining index for the video chunks. For example, M3U8 file may give references to online files for an internet radio station. M3U8(MP3 URL that uses  UTF-8-encoding)is a computer file format for a multimedia playlist.Although originally designed for audio files, such as MP3, it is now used to point  both audio and video sources

Gstreamer Plugin Information

...


root@raspber-rdk-hybrid-westeros:~# root@qemux86hyb-morty:/# gst-inspect-1.0 aamp
Factory Details:
Rank                   marginal   Rank                     marginal (64)
  Long-
name              name                Advanced Adaptive Media Player
Klass                    Klass                    Demux
Description            Description              Advanced Adaptive Media Player
Author                 Comcast
 
 
  Author                   Comcast

Plugin Details:
Name                 aamp
Description            Name                     aamp
  Description              Advanced Adaptive Media Player
Filename             Filename                 /usr/lib/gstreamer-1.0/libgstaamppluginlibgstaamp.so
Version              Version                  0.0.1
License              Proprietary
Source module        RDK
Binary package       aamp
Origin URL             License                  LGPL
  Source module            RDK
  Binary package           aamp
  Origin URL               https://rdkcentral.com/
root@raspberrypi-rdk-hybrid-westeros:~#

root@qemux86hyb-morty:/# gst-inspect-1.0 aampsrc
Factory Details:
Rank                 Rank                     primary (256)
  Long-
name          name                AAMP Source
Klass                Klass                    Source
Description          Description              Advanced Adaptive Media Player Source
Author               Author                   Comcast
 

Plugin Details:
Name                Name                     aamp
Description         Description              Advanced Adaptive Media Player
Filename           Filename                 /usr/lib/gstreamer-1.0/libgstaamppluginlibgstaamp.so
Version            Version                  0.0.1
License          Proprietary  License                  LGPL
  Source
module    module            RDK
  Binary
package   package           aamp
  Origin
URL       URL               https://rdkcentral.com/

HLS Playback using AAMP

...

Playbintest

This utility is available in /usr/bin  to test aamp plugin which by default takes aamp HLS  as aamps://tungsten.aaplimg.com/VOD/bipbop_adv_example_v2/master.m3u8 .

#export WAYLAND_DISPLAY=WPE
#export XDG_RUNTIME_DIR=/run/user/0/
#export PLAYERSINKBIN_USE_WESTEROSSINK=1

#/usr/bin/playbintest http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8


gst-launch 

AAMP can be tested with gst-launch using playbin.

#export WAYLAND_DISPLAY=WPE
#export XDG_RUNTIME_DIR=/run/user/0/

#gst-launch-1.0 playbin uri=aamp://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 video-sink=westerossink audio-sink=omxhdmiaudiosink

WPELauncher 

AAMP can be tested with WPELauncher. Please make sure environmental variables are set.

#export LD_PRELOAD=$LD_PRELOAD:/usr/lib/libopenmaxillibwesteros_gl.so:/usr/lib/libwayland-client.so.0.0.0
#export WAYLAND_DISPLAY=WPE
#export XDG_RUNTIME_DIR=/run/user/0/
#WPELauncher http://127.0.0.1:50050/player.html

Pipeline Diagram


player.html needs to created with below content in /opt/www

Image Removed<html><head><title>AAMP Test Page</title></head>
<body>
<video id="video"></video>
<script type="text/javascript">
var video = document.getElementById('video');
video.src = 'aamps://mnmedias.api.telequebec.tv/m3u8/29880.m3u8'
video.load();
video.play();
</script>
</body></html>


DEBUG Logs

...

To Enable logs,please export following 

export GST_DEBUG=2,aamp:3,webkitmediaplayer:5

Sample HLS URL

...

aamp://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8

...