Latest beta version (0.2) of the liveMediaStreamer (LMS) includes MPEG-DASH support for live streaming. It has been successfully tested to produce live MPEG-DASH streams for an HbbTV application, tested in a broadcaster laboratory with different commercial connected TV sets.
liveMediaStreamer, is an open source multimedia framework that allows the manipulation of multiple audio and video streams in real-time. It is designed following a pipeline pattern, so it consists in a number of filters (encoder, decoder, receiver, transmitter, dasher, mixer, etc.) that can be concatenated or connected with each other in order to process a data flow. The framework is developed in a Linux environment (currently the only supported platform) using C++ standard libraries and it makes use of several mature media related libraries such as libavcodec, live555, x264, etc. This software is licensed under a GPL license and the source code is published in Github here. The framework is designed to be managed remotely through a simple network interface. Further information on how to use it and install it can be found here and here.
liveMediaStreamer as an MPEG-DASH transcoder
liveMediaStreamer can be used in many different ways, for real-time RTP streaming in performing arts (see here) using mixing features or as a “simple” streamer transcoding sources to MPEG-DASH as it could be needed for an HbbTV application with live streaming. In each scenario is needed to configure the appropriate media processing pipe in order to get the desired functionality. For an MPEG-DASH transcoder the configuration could be achieved with a configuration as the one described below.
Filters in the pipe:
- Receiver: This is a network streams receiver, up to now only RTP/RTSP sessions are supported in plain raw coded data. Demuxing features (RTMP or Transport Stream) are on the way, expected to be included in the next beta release 0.3.
- Decoder: This filter decodes incoming frames to some RAW format (usually YUV 420 or YUV 422 in H264).
- Resampler: This filter adapts the colour space and the resolution of the incoming frames to the specified values.
- Encoder: This filter encodes incoming frames to H264 or HEVC.
- Dasher: This filter aggregates incoming frames into ISO Base Media File Format segments for MPEG-DASH and produces the related manifest file, all written to a configurable folder in the hard-disk.