Elecard DASH Sink

Elecard DASH Sink is a GStreamer plugin intended for content preparation via the MPEG-DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1) protocol.

Features

Elecard DASH Sink has the following features:

  • Enables ordering of audio tracks;

  • Supports the SMPTE_TT and WebVTT (OCR) subtitles;

  • Works with Kaltura uDRM and Verimatrix servers.

Parameter Description

Below is the table describing Elecard DASH Sink parameters and their values.

Pad Properties

Parameter Name

Description

Value Type

Available Values [range]

Default

Flags

adaptation-set-id

Specifies an ID that identifies media content groups based on their type (video, audio, subtitles). This parameter is assigned by CodecWorks automatically and usually doesn’t require configuring.

Integer

[-1 – 2147483647]

-1

readable, writable

bandwidth

Specifies stream bandwidth in bits per second.

Integer

[0 – 2147483647]

0

readable, writable

buffer-fullness

Specifies buffer occupancy in %.

Integer

[0 – 100]

0

readable, writable

enable-encryption

Enables or disables segment encryption.

Boolean

true, false

true

readable, writable

hls-autoselect

Works only of the playlist-type parameter corresponds to HLS or HLS and DASH. If the value is true, player will choose the given profile for playback even if no user configuration was involved due to it being related to the given playback context. This could be based on the system language, for example.

Boolean

true, false

true

readable, writable

hls-default

Works only of the playlist-type parameter corresponds to HLS or HLS and DASH. If the value is true, player will be forced to choose the current version of media content (video or audio profile)—in case the user doesn’t point toward a different profile.

Boolean

true, false

false

readable, writable

hls-forced

Works only of the playlist-type parameter corresponds to HLS or HLS and DASH. If the value is true, it means the profile contains media content for forced playback. Player will be forced to choose the profile that suits the playback context the most (based on language, for example). The false value implies that the profile contains media content meant for playback in response to the user’s request.

Boolean

true, false

false

readable, writable

hls-group

Works only of the playlist-type parameter corresponds to HLS or HLS and DASH. Specifies the HLS GROUP-ID attribute.

String

null

readable, writable

stream-label

Specifies the label element in DASH MPD.

String

null

readable, writable

stream-language

Specifies the stream language.

String

null

readable, writable

stream-name

Specifies the unique stream identifier.

String

null

readable, writable

stream-role

Specifies Role element in AdaptationSet. Roles define and describe specifics and/or structural functions related to media content components.

Enum

0 — No
1 — caption
2 — subtitle
3 — Main
4 — alternate
5 — supplementary
6 — commentary
7 — dub
8 — description
9 — sign
10 — metadata
11 — enhance audio intelligibility
12 — emergency

0

readable, writable

stream-teletext-page

Specifies the stream teletext page.

String

null

readable, writable

stream-timescale

Specifies the timescale of a stream.

Integer

[0 – 2147483647]

0

readable, writable


Element Properties

Parameter Name

Description

Value Type

Available Values [range]

Default

Flags

atomic-write-playlist

Enables or disables the writing of the atomic manifest. The old manifest is substituted by a new one, eliminating the chances of null manifest error popping up.

Boolean

true, false

false

readable, writable

audio-priority

Specifies the order of audio tracks. This is useful for prioritizing a certain audio track, which is indicated by a 3-letter descriptor.

String

«»

readable, writable

aws-scte-dash-element-type

Specifies the Event element type for DASH MPD.

Enum

0 — ClearXML
1 — Base64Binary

0

readable, writable

channel-name

Specifies the unique channel identifier.

String

Default

readable, writable

correction-timeout

Specifies OTT correction timeout in seconds. This is the minimum time frame for DASH SINK to enforce correction. After detecting another instance of time shift, DASH SINK will generate/discard a certain number of segments, remember the current system time and, after detecting another time shift, will enforce correction after the specified timeout expires.

Unsigned Integer

[0 – 4294967295]

0

readable, writable

dvb-subtitles-mode

Specifies the output format for DVB subtitles. Available formats:

  • SMPTE_TT — images to SMPTE-TT subtitles;

  • WebVTT (OCR) — recognize subtitles and save as WebVTT.

Enum

0 — SMPTE_TT
1 — WebVTT (OCR)

0

readable, writable

encryption-iv

Specifies the initial encryption vector in XXXXXXXXXXXXXXXX hex format (for tests). Generally, this parameter’s value is overrode by IV—issued CAS; used for testing only.

String

«»

readable, writable

encryption-jwt-token-config

JWT token configuration in a JSON format meant for signing a CPIX document when requesting an encryption key. Used along with the encryption-mode parameter with the Drmnow value. Minimum configuration format 1:

{“header”:{“alg”:“RS256”,}, “payload”:{},“private_key”:private_key_in_base64_format}

String

«»

readable, writable

encryption-key-update-interval

Specifies the interval between requests for a new encryption key from the Verimatrix and DRMnow key servers.

Integer

[0 – 2147483647]

1800

readable, writable

encryption-key-update-timeout

Specifies the timeout for getting an encryption key from the DRM server in seconds. If the value is set to 0, the timeout is infinite. If the time is out, DASH Sink will refuse to record segments and signal to CodecWorks that encryption key receipt failed.

Unsigned Integer

[0 – 4294967295]

2

readable, writable

encryption-mode

Specifies the segment encryption mode. If the value is set to 0, the encryption is disabled.

Enum

0 — None
3 — Vmx4.1
4 — Vmx4.2
5 — Kaltura
7 — Drmnow

0

readable, writable

encryption-private-key

Specifies the private key for Kaltura uDRM servers.

String

«»

readable, writable

encryption-session-id

Specifies the content ID for Verimatrix 4.x servers.

String

dash_$Name$

readable, writable

encryption-site-id

Specifies the site ID for Verimatrix 4.x servers.

Unsigned Integer

[0 – 4294967295]

1

readable, writable

encryption-url

Specifies the encryption key address.

String

«»

readable, writable

event-handler

Specifies the pointer to the handler for events signalled by DASH Sink.

Pointer

readable, writable

file-extension

Specifies the file extension.

String

«»

readable, writable

hls-dvb-subtitles-mode

Specifies the output format for DVB subtitles in the HLS mode. Available formats:

  • SMPTE_TT — images to SMPTE-TT subtitles;

  • WebVTT (OCR) — recognize subtitles and save as WebVTT.

Enum

0 — SMPTE_TT
1 — WebVTT (OCR)

0

readable, writable

hls-master-playlist-filename

Specifies the master playlist file name for the HLS mode.

String

$Name$/$Name$.m3u8

readable, writable

hls-media-playlist-filename

Specifies the media playlist file name for the HLS mode.

String

$Name$/$StreamName$.m3u8

readable, writable

hls-scte-format

Specifies the SCTE-35 format for the HLS mode.

Enum

0 — ANSI
1 — AWS
2 — Daterange

0

readable, writable

init-segment-filename

Specifies the file name of the initialization segment.

String

$Name$/$StreamName$/$StreamName$_init

readable, writable

internal-state

Specifies the internal state.

String

«»

readable, writable

license-state

Indicates the license state.

String

evaluation

readable

live-mode

Enables or disables the live content mode.

Boolean

true, false

true

readable, writable

mpd-mode

Specifies the MPD period mode.

Enum

0 — Single-Period
1 — Multi-Period

0

readable, writable

name

Specifies the name of the object.

String

elecarddashsink0

readable, writable

oem-name

Indicates the OEM name.

String

readable

ott-correction

Enables or disables the correction of deviation between the actual and calculated segment numbers. It functions in combination with the timeline-mode parameter in the Template@Duration mode.

Boolean

true, false

true

readable, writable

output-path

Specifies the output directory for the playlists and media segments to be saved in.

String

«/»

readable, writable

parent

Specifies the parent of the object.

Object of type GstObject

readable, writable

playlist-duration

Specifies the playlist duration for live content in seconds.

Unsigned Integer

[1 – 4294967295]

60

readable, writable

playlist-filename

Specifies the playlist file name.

String

$Name$/$Name$.mpd

readable, writable

playlist-type

Specifies the playlist type.

Enum

0 — DASH
1 — HLS
2 — DASH and HLS

0

readable, writable

playlist-update-period

Specifies the playlist update period (ms).

Unsigned Integer

[0 – 4294967295]

0

readable, writable

scte-splice-removal-mode

Specifies a mode for removing SCTE splices from the manifest. Available modes:

  • After stop time — Erase SCTE splice from MPD after splice stop time;

  • After start time — Erase SCTE splice from MPD after splice start time.

Enum

0 — After stop time
1 — After start time

0

readable, writable

segment-duration

Specifies the media segment duration in ms. If segment-duration-gop equals 0, then this parameter will be relevant—otherwise use segment-duration-gop. segment-duration-gop takes precedence over segment-duration.

Unsigned Integer

[1 – 4294967295]

10000

readable, writable

segment-duration-gop

Specifies the media segment duration in groups of pictures (GOP).

Unsigned Integer

[0 – 4294967295]

0

readable, writable

segment-filename

Specifies the media segment file name.

String

$Name$/$StreamName$/$Number$

readable, writable

segments-generate-max-depth

Specifies the segment generation time if the input stream is interrupted. Dash Sink generates segments with same content, the duration of which is segments-generate-max-depth seconds. This is necessary to avoid interruptions in broadcasting.

Integer

[0 – 2147483647]

30

readable, writable

status-info

Indicates status information.

String

«»

readable

target-period-duration

Specifies the target period duration in seconds. Used along with the mpd-mode parameter with the Multi-Period value.

Integer

[0 – 2147483647]

0

readable, writable

teletext-subtitles-mode

Specifies the output format for teletext subtitles. Available modes:

  • TTML — the TTML subtitles format;

  • WebVTT — the WebVTT subtitles format.

Enum

0 — TTML
1 — WebVTT

0

readable, writable

timeline-mode

Specifies the timeline mode. Available modes:

  • SegmentTimeline — The manifest contains the list of segments;

  • Template@Duration — The manifest does not contain the list of segments, but stores the segment duration and recording time of the first segment.

Enum

0 — SegmentTimeline
1 — Template@Duration

0

readable, writable

webdav-allow-delete

Enables or disables the WebDAV allow delete mode.

Boolean

true, false

false

readable, writable

webdav-current-bitrate

Indicates the current WebDAV bitrate.

String

«»

readable

webdav-error

Indicates the WebDAV error.

String

«»

readable

webdav-reupload-attempts

Specifies the number of attempts to resend a chunk or another file to the WebDAV server if an error or a timeout is received.

Unsigned Integer

[0 – 4294967295]

2

readable, writable

webdav-segment-upload-confirmation-timeout

Specifies the timeout for confirming the upload from the WebDAV server in milliseconds.

Unsigned Integer

[0 – 4294967295]

0

readable, writable

webdav-server-response-timeout

Specifies the timeout for getting the WebDAV server response in milliseconds. Setting the value to 0 disables the timeout.

Integer

[0 – 2147483647]

0

readable, writable

webdav-uploading-timeout

Specifies the WebDAV uploading timeout in seconds.

Unsigned Integer

[1 – 60]

10

readable, writable

webdav-url

Specifies the output WebDAV URL.

String

«»

readable, writable

1

Header and payload structures may contain other fields required by the CAS.