Elecard HLS Sink

Elecard HLS Sink is a GStreamer plugin intended for content preparation via Apple HTTP Live Streaming (HLS) protocol.

Features

Elecard HLS Sink has the following features:

  • Sets segment parameters precisely;

  • Supports the SMPTE_TT and WebVTT (OCR) subtitles;

  • Works with Kaltura, uDRM, and Verimatrix servers.

Parameter Description

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

Pad Properties

Parameter Name

Description

Value Type

Available Values [range]

Default

Flags

bandwidth

Bandwidth of the stream in bits per second.

Integer

[0 – 2147483647]

0

readable, writable

buffer-fullness

Buffer fullness in %.

Integer

[0 – 100]

0

readable, writable

group-id

Unique identifier of the stream group.

String

null

readable, writable

stream-language

Language of the stream.

String

null

readable, writable

stream-name

Unique identifier of the stream.

String

null

readable, writable

stream-teletext-page

Teletext page of the stream.

String

null

readable, writable

Element Properties

Parameter Name

Description

Value Type

Available Values [range]

Default

Flags

atomic-write-playlist

Enables or disables the recording of atomic playlist.

Boolean

True, False

False

readable, writable

base-url

Specifies a list of directories between the directory that’s broadcast via the HTTP server (NGINX), and the directory targeted by HLS Sink (see output-path). Used when HLS Sink targets a mapped network drive, while NGINX broadcasts to a directory of higher level via HTTP.

String

“”

readable, writable

dvb-subtitles-mode

Specifies the output format for DVB subtitles. Available formats:

  • SMPTE_TT — images to SMPTE-TT subtitles format;

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

Enum

0 — SMPTE_TT
1 — WebVTT (OCR)

0

readable, writable

encryption-fairplay-version

Specifies the Fairplay version (DRM).

String

1

readable, writable

encryption-iv

Specifies the initial encryption vector in XXXXXXXXXXXXXXXX hex format (for tests). Used only along with the encryption-mode parameter with the Simple value.

String

“”

readable, writable

encryption-jwt-token-config

JWT token configuration in a JSON file 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 an 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 (sec). If the value is set to 0, the timeout is infinite.

Integer

[0 – 4294967295]

2

readable, writable

encryption-method

Specifies the HLS encryption method. Available methods:

  • AES_128 — full AES-128 CBC segment encryption;

  • SAMPLE_AES — a sample of AES-128 CBC encryption.

Enum

0 — AES_128
1 — SAMPLE_AES

0

readable, writable

encryption-mode

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

Enum

0 — None
1 — Simple
2 — Verimatrix 3.6
3 — Verimatrix 4.1
4 — Verimatrix 4.2
6 — GSLabs Dreplus
7 — Drmnow

0

readable, writable

encryption-private-key

Specifies the private key for Kaltura uDRM servers.

String

1

readable, writable

encryption-session-id

Specifies the content ID for Verimatrix 4.x servers.

String

hls_$Name$

readable, writable

encryption-site-id

Specifies the site ID for Verimatrix 4.x servers.

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 HLS Sink.

Pointer

readable, writable

id

Specifies the unique channel identifier.

String

default

readable, writable

internal-state

Lets the user get the current state or set the certain state at the start. CodecWorks can use this parameter to get the number of the current chunk and set it. The parameter is used when it is required to continue the numeration of chunks.

String

“”

readable, writable

key-frame-playlist

Specifies the playlist of key frames.

Boolean

True, False

True

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

master-playlist-filename

Specifies the master playlist file name.

String

$Name$.m3u8

readable, writable

media-playlist-filename

Specifies the media playlist file name.

String

$Name$/$StreamName$.m3u8

readable, writable

multistream-mode

Enables or disables the multistream mode. Available modes:

  • no substreams;

  • mixed;

  • only separated substreams.

Integer

0 — no substreams
1 — mixed
2 — only separated substreams

0

readable, writable

name

Specifies the name of the object.

String

elecardhlssink0

readable, writable

oem-name

Indicates the OEM name.

String

readable

output-path

Specifies the output directory where the playlists and media segments will be saved.

String

“/”

readable, writable

parent

Specifies the parent of the object.

Object of type GstObject

readable, writable

playlist-duration

Specifies the duration of a playlist for live content in seconds.

Integer

[1 – 3600]

60

readable, writable

protocol-version

Specifies a version of the playlist file protocol.

Integer

[1 – 3]

3

readable, writable

rewrite-master-playlist

Enables or disables the rewriting of the master playlist after each segment. If disabled, the master playlist is rewritten after start and restart.

Boolean

True, False

False

readable, writable

scte-format

Specifies the SCTE-35 format.

Enum

0 — ANSI
1 — AWS
2 — Daterange

0

readable, writable

segment-duration

Specifies media segment duration in seconds.

Integer

[1 – 60]

10

readable, writable

segment-filename

Specifies the media segment file name.

String

$Name$/$StreamName$/$Number$.ts

readable, writable

status-info

Shows status information.

String

“”

readable

time-format

Specifies the time format. Available formats:

  • YYYY_MM_DDThh_mm_ss_ SSS_offset — time within a time zone, where SSS stands for milliseconds, and offset—for the +7 time zone;

  • YYYY_MM_DDThh_mm_ssZ — time without a time zone, where Z stands for the +0 time zone;

  • YYYY_MM_DDThh_mm_ss_ SSSZ — time without a time zone, milliseconds included.

Enum

0 — YYYY_MM_DDThh_mm_ss_SSS_offset
1 — YYYY_MM_DDThh_mm_ssZ
2 — YYYY_MM_DDThh_mm_ss_SSSZ

0

readable, writable

webdav-allow-delete

Enables or disables the WebDAV allow delete.

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 WebDAV server if an error or a timeout is received.

Unsigned Integer

[0 – 4294967295]

2

readable, writable

webdav-segment-upload-confirmation-timeout

Specifies a timeout for upload confirmation from the WebDAV server (ms).

Unsigned Integer

[0 – 4294967295]

0

readable, writable

webdav-server-response-timeout

Specifies a timeout for getting the WebDAV server response (ms). If the value is set to 0, the timeout is disabled.

Integer

[0 – 2147483647]

0

readable, writable

webdav-ssl-verify-peer

Enables or disables the verification of the peer’s SSL certificate.

Boolean

True, False

True

readable, writable

webdav-uploading-timeout

Specifies the timeout of WebDAV upload (sec).

Unsigned Integer

[1 – 60]

10

readable, writable

webdav-url

Specifies the output WebDAV URL.

String

“”

readable, writable

1

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