Elecard DASH Source

Elecard DASH Source is a GStreamer plugin for stream receipt via the MPEG-DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1) protocol.

Features

Elecard DASH Source has the following features:

  • Supports three adaptive bitrate (ABR) algorithms: Throughput, BOLA, Dynamic;

  • Supports HTTP and HTTPS URI protocols;

  • Works in both Template Duration and Segment Timeline modes;

  • Provides flexible parameter configuration.

Elecard DASH Source supports the following formats:

Audio

  • AAC Audio (ISO/IEC 13818-7 (only ADTS-packetized streams are supported, Raw data is not)).

Video

  • HEVC/H.265 (ISO/IEC 23008-2 MPEG-H Part 2/ITU-T H.265),

  • AVC/H.264 (ISO/IEC 14496-10 | ITU-T Rec. H.264).

Additional data

  • DVB Subtitles,

  • Teletext,

  • SCTE-35,

  • SCTE-104.

Parameter Description

Below is the table describing Elecard DASH Source parameters and their values:

Parameter Name

Description

Value Type

Available Values [range]

Default

Flags

abr-algorithm

Specifies the adaptive bitrate (ABR) algorithm:

  • Throughput — calculates the optimal bitrate based on the download rate;

  • BOLA — calculates the optimal bitrate based on the buffer capacity;

  • Dynamic — uses both algorithms mentioned above by switching to the most suitable option at the current moment. For example, it can use the Throughput algorithm for 10 seconds to fill the buffer and then switch to BOLA. If the input buffer’s capacity is not enough to use BOLA, the algorithm will continue to use Throughput.

Enum

0 — Throughput
1 — BOLA
2 — Dynamic

2

readable, writable

buffer-length

Indicates the buffer length in ms. As a rule, the size equals zero. However, if the network throughput is low, the buffer can start to grow. It means the source sends data slower compared to receiving it. Both the source and output pads have this parameter. For the source, it is the length of the buffer in one of the pins. For each pad, it is the capacity of each pad’s corresponding buffer.

Integer

[0 – 2147483647]

0

readable

connect-timeout

Specifies the timeout for connection to the source by setting the curl option (CURLOPT_CONNECTTIMEOUT). If the value is 0, the timeout will be equal to the default curl value of 300 seconds.

Integer

[0 – 2147483647]

10

readable, writable

current-playlist-bitrate

Indicates the bitrate (bps) specified in the MPD representation for the currently played profile.

Integer

[0 – 2147483647]

0

readable

download-buffer

Specifies buffering for downloading segments in chunks. The chunk number is indicated starting from the end of the playlist. This chunk is where the content download will start. If the value is 0, the source will download the last segment.

Integer

[0 – 2147483647]

3

readable, writable

download-rate

Indicates the download rate.

Integer

[0 – 2147483647]

0

readable

license-state

Indicates the license state.

String

evaluation

readable

location

Specifies the URL or local path to the MPD file.

String

readable, writable

mpd-download-timeout

Specifies the download timeout in seconds. If the value is 0, the waiting time is indefinite. When the timer goes out, curl error will occur. The source will try to download the segment as long as the start time of said segment does not go over the current system time; otherwise, the segment is skipped.

Integer

[0 – 2147483647]

10

readable, writable

name

Specifies the name of the object.

String

dashsrc0

readable, writable

parent

Specifies the parent of the object.

Object of type GstObject

readable, writable

selection-mode

Specifies the representation selection mode:

  • Low representation — representations with minimal bitrate are chosen;

  • Adaptive playback — representations are chosen based on one of the abr_algorithm parameter modes;

  • All representations — segments of all representations will be downloaded;

  • Specific stream — each pin will be created for the corresponding representation from its specific representation ID parameter.

Enum

0 — Low representation
1 — Adaptive playback
2 — All representations
3 — Specific stream

1

readable, writable

status

Indicates the component status.

String

readable