Closed slifty closed 3 years ago
Some configuration options (all WIP):
period
(milliseconds): the number of milliseconds that the clock will track (e.g. 60000 would be a clock that can track up to one minute).
origin
(timestamp): what time does the clock start (what is the first instance of "0" when identifying segments). Default could be now()
. We could provide some helper methods in the appliance for calculating some common values (e.g. midnight, beginning of the week, first day of the year, etc).
segments
: array of objects and / or numbers specifying segment start times. If the value is an object the offset
attribute is used to convey the segment start offset.
offset
(milliseconds): the period offset that demarks the start of the segment.data
(json): the data to associate with the new segment.The default value of segments
would be [0] (meaning it would create a new segment for every timestamp period)
One question I'm trying to think through: should segments be pre-announced, or triggered on the timestamp (e.g. after the fact).
pre-announcing puts greater burden on downstream appliances to anticipate new segments, but without pre-announcing, the segment will always be announced slightly too late (e.g. the 1:00:00
segment wouldn't be triggered until after a timestamp at-or-after 1:00:00
has been distributed).
Task
Description
Segmentation is about marking high-level breakpoints within a given video stream. Segments are less about literal video features (e.g. scene changes) and more about the logical context blocks of a video according to a given application (e.g. in a TV station the stream might be split up into programs according to specific timestamps.)
Segments will be announced via a new payload type. We need to create an appliance that produces payloads of that type.
Once that's hashed out, we should add the type to the official list of types.
This appliance could be narrow or broad in intended scope. The immediate need is timestamp-based-segmentation (announcing new segments on the hour / half hour / etc). Ideally the segment payloads could include custom metadata such as program name, etc.
Related Issues