-
Notifications
You must be signed in to change notification settings - Fork 6
URL Parameters
The following table should include all URL parameters in either livesim1 or livesim2
Parameter | Values | Description | livesim2 | livesim1 |
---|---|---|---|---|
tsbd | int | TimeShiftBufferDepth in seconds | Yes | Yes |
segtimeline | 1 (=true) | Generate live MPD using SegmentTimeline with $Time$
|
Yes | Yes |
ato | float or "inf" | availabilityTimeOffset in seconds (inf = infinity, all segments available) | Yes | Yes |
chunkdur | float | Chunk duration for on-the-fly chunking | Yes | Yes |
ltgt | int | Low-latency target in milliseconds | Yes | No |
timesubsstpp | string | List of comma-separated languages with auto-generated stpp subtitles |
Yes | No |
timesubswvtt | string | List of comma-separated languages with auto-generated wvtt subtitles |
Yes | No |
timesubsdur | int > 0 | Cue duration of generated time subtitles in ms (default 900) | Yes | No |
timesubsreg | 0 or 1 | Region 0 (bottom) or 1 (top) for time subtitles | Yes | No |
start or ast | int >= 0 | Sets the availabilityStartTime relative to Epoch | Yes | Yes |
stop | int > 0 | Sets the stop time (for time-limited events) | Yes | Yes |
startrel | int | Sets relative startTime via Location with start parameter | Yes | Yes |
stoprel | int | Sets relative stopTime via Location with stop parameter | Yes | Yes |
dur | int | Sets a presentation duration for multiple periods | No | Yes |
timeoffset | int | Sets time offset in second vs NTP | No | Yes |
init | int > 0 | Offset time for early init segment availability | No | Yes |
mup | int | MinimumUpdatePeriod in seconds | Yes | Yes |
modulo | int > 0 | Make this number of time-limited sessions every hour | No | Yes |
tfdt | 1 (=true) | Use 32-bit tfdt (needs more recent availabilityStartTime) | No | Yes |
cont | 1 (=true) | Continuous update of MPD AST and segNr | No | Yes |
periods | int > 0 | Make this number of periods per hour | Yes | Yes |
xlink | int > 0 | Make this number of xlink periods per hour | No | Yes |
etp | int > 0 | Make this number of early terminated periods per hour | No | Yes |
etpDuration | int > 0 | Add early terminated period duration for multiple periods | No | Yes |
insertad | 1 (=true) | Insert an ad via xlink | No | Yes |
continuous | 1 (=true) | Insert period continuity signaling (only valid when periods is set) | Yes | Yes |
segtimelinenr | 1 (=true) | Generate live MPD using SegmentTimeline with $Number$
|
Yes | Yes |
baseurl | url string | Add this top-level BaseURL in all configurations | No | Yes |
statuscode | string | Periodic status code responses to segment requests | Yes | No |
traffic | string | Periodic traffic problems using one or more BaseURLs | Yes | No |
peroff | int > 0 | Period offset in seconds | No | Yes |
scte35 | int > 0 | Add these many SCTE-35 splice insert periods every minute | Yes | Yes |
utc | string | hyphen-separated list of UTCTiming methods and make into list | Yes | Yes |
snr | int | Set startNumber in MPD. -1 translates to no value in MPD (fallback to default = 1) | Yes | Yes |
spd | int > 0 | suggestedPresentationDelay in seconds | Yes | Yes |
sidx | 1 (=true) | Insert sidx box in every segment | No | Yes |
patch | int > 0 | Insert PatchLocation element in the URL | Yes | No |
By using the scte35_x
URL parameter, emsg boxes with SCTE-35 messages will be inserted 1, 2, or 3 times a minute.
x | dur | starts |
---|---|---|
1 | 20s | hh:mm:10 |
2 | 10s | hh:mm:10, hh:mm:40 |
3 | 10s | hh:mm:10, h:mm:36:h:mm:46 |
The SCTE-35 emsg boxes are included in the segment that includes the media time which is 7s before the start of the SCTE-35 break.
The emsg box uses the schemeIdUri "urn:scte:scte35:2013:bin" and should follow SCTE-214-1 2022. This means that emsg version 1 is used, and the timescale of the emsgbox is the same as the media timescale. The emsg payload is a binary SCTE-35 splice_insert message with PTS time based on splice time module MPEG-2 TS wrap-around.
There are a few query-string parameters that can be used to specify the wall-clock time that livesim2 uses to generate a response. In this way, it is possible to get the response corresponding to a request at a specific time in the past or in the future.
The parameters are
parameter | value | meaning |
---|---|---|
nowMs | int | Time since epoch start 1970-01-01 in milliseconds |
nowDate | ISO 8601 timestamp | A UTC time specified (will be converted to nowMS as milliseconds + 1) |
publishTime | ISO 8601 timestamp | similar to nowDate, but used to fetch an MPD with a certain publishTime |
With these timestamps, one can for example ask for a segment at a specific time and see it it is available:
livesim2/asset/video/2323322.cmfv?nowMS=1713528527000
.
It also applies to MPD Patch where one can ask for a patch relative a publishTime with a nowDate 18s later.
/patch/.../Manifest.mpp?publishTime=2024-04-16T07:34:38Z&nowDate=2024-04-16T07:34:56Z"
This request will generate the same MPD patch document totally independent of the current wall-clock time.
Note.In general, it should be possible to use an RFC-3339 timestamp instead of an ISO 8601 timestamp.