Media
Media entities exposed by the API include:
- PlayableStream
- Streams related to live channels
- Streams related to recordings
- TranscodeProfile (admin)
- TranscodeProfileGroup (admin)
PlayableStream (Entity)
A PlayableStream is media data that can be played by a client.
Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a provider.
Our streams are delivered by servers that are dedicated to this purpose.
Streams can be protected by DRM. This encrypts the stream in transit. Only a trusted client is given the key to decrypt the stream for the user.
Streams can be delivered using different encoding protocols such as MPEG-DASH, HLS, MSS, HDS
Streams should not exist beyond the lifetime of the channel they are for. If you remove a channel then you should remove all of its streams. They are entities and not value objects because we need to track several of them for each channel and they therefore need to have an identity seperate from their attribute values.
A VendorSuppliedStream is a Stream that is supplied by a third-party vendor
TranscodeProfile (Entity)
A TranscodeProfile contains information about how a Stream is transcoded. This could include information such as bitrate, dimensions, format, and so on.
Typical use cases for a TranscodeProfile could be:
- to manage the compute resources required to transcode the stream
- to provide streams that are suitable for a particular type of device
TranscodeProfileGroup
A TranscodeProfileGroup is a logical group of TranscodeProfiles.
We might want to have a group of TranscodeProfiles that are suitable for a particular set of devices, or group TranscodeProfiles that are of a particular quality (HD/SD)