Introduction
ew-vodingest
The ew-vodingest
command may be used to perform either VoD ingest or to perform live recordings from an
ew-live-ingest
(esb3003) circular buffer.
VoD ingest
ew-vodingest
(ESB3021) reads and ingests an MP4/ts audio and video + subtitles asset
defined by a SMIL file into
an ESF (Edgeware Storage Format) asset in a way that is compatible with the
DASH OnDemand profile. A corresponding DASH MPD file is generated.
The SMIL-file syntax and usage is explained in the SMIL section.
It is also possible to specify a .ts
-file, an .mp4
-file or a directory-path as input.
For example:
ew-vodingest --input hitchcock/vertigo/index.smil --output esf/vertigo
Note: A main focus of this tool is to ingest VoD content that can be used to
generate live content by combining VoD assets using ESB3019 ew-vod2cbm
.
There is therefore a restriction on the ingested content that it must be possible
to discover a common constant GoP duration (sync-frame distance)
for all video tracks, and that all sample durations are exactly the same
in their respective timescales. The timescales may differ, but only
by integer factors, for example 50 for 50Hz video and 25 for 25Hz
video.
Codec and input format
Please refer to Supported codecs to get more information.
Input locations
This tables shows the possible combinations of input types and locations:
filesystem | http/https | S3 | FTP | |
---|---|---|---|---|
directory | yes | no | yes | yes |
SMIL | yes | yes | yes | yes |
MP4 | yes | no | no | no |
ts | yes | no | no | no |
DASH On-Demand | yes | yes | yes | yes |
HLS | yes | yes | yes | yes |
Unencrypted ISM/MSS | yes | yes | yes | yes |
For ingesting large assets (or for slow locations) the --maxtime
command-line
parameter can be used to increase the timeout threshold.
Output locations
Output locations can always be local filesystem, or network locations, as above. By default the content_id
in
content_info.json
of the output asset will equal the output directory. This can be overridden by specifying
any other ID with the --content-id
command-line parameter.
Live recordings
The input for live recordings is an ew-live-ingest
(esb3003) with a circular buffer available on
the instance specified by --host
and --port
(default localhost:8090
).
The output locations are the same as for VoD ingest above.
The --cbm
flag triggers a live recording (and cannot be combined with --i
).
The start/stop times are specified in epoch seconds, and must be in the past. The recording will consist
of integral segments, matching the specified time range as closely as possible. The time-stamps in the
resulting VoD will be shifted to start from zero. Any “holes” in the specified intervals will be removed,
thus resulting in a recording shorter than the specified interval.
SCTE-35 markers are transferred from the CBM interval and stored in a separate file.
For example:
ew-vodingest --cbm --start-epoch 1678190071 --stop-epoch 1678190099 --channel tv1 -o tv1-mar-7-2023
Usage
ew-vodingest
is a command-line tool that is run as:
ew-vodingest [options]
Run as ew-vodingest [options]
-i, --input string SMIL file, dir or file pattern defining the asset (mandatory)
-o, --output string output directory (mandatory)
-w, --minseg int minimum output segment duration (milliseconds) (default 4000)
-y, --maxseg int maximum output segment duration (milliseconds) (default 12000)
--cbm set to use esf export from cbm
--start-epoch uint recording start time given in epoch seconds. Only works with --cbm
--stop-epoch uint recording stop time given in epoch seconds. Only works with --cbm
--channel string channel name to record from. Only works with --cbm
--drop-non-aligned-track drop track with abnormal segment duration. Only works with --cbm
-c, --content-id string explicit content-id (instead of ingest path)
-m, --maxtime int maximal execution time to ingest asset (seconds) (default 1800)
--hls output HLS playlists (experimental)
--slim only output content_info and dat files
--leavepartial leave partial ingested content on failure
--s3file string path to S3 credentials file
-t, --template string path to content template file, for asset comapatibility verification
--licensefile string license file path (default "/etc/edgeware/ew-vodingest/license.json")
-l, --logfile string log file [default stdout]
--log-file string see above
--logformat string format and type of log: [consolejson consolepretty discard] (default "consolepretty")
--loglevel string initial log level (default "info")
-v, --version print version and date
--host string cbm host to connect to. Only works with --cbm (default "localhost")
--port uint16 cbm port to connect to. Only works with --cbm (default 8090)
--source-rate-limit uint32 maximum read rate in Mbps from source. Only works with --cbm. Setting 0 will disable source rate limiting
--help extended tool help
The following options -i, -o, -w, -y, --cbm, --start-epoch, --stop-epoch, --channel, -l, --source-rate-limit
are the same as for the ESB3005 ew-recorder
.