How Dynamic Multiview works
A multiview is assembled from several MediaLive channels that deliver into one MediaPackage channel group. This section describes how those pieces fit together and what each one contributes.
How the pieces fit together
-
One MediaLive channel per source feed. Each MediaLive channel has a MediaPackage output group that delivers CMAF Ingest outputs to a MediaPackage V2 channel.
-
All source channels deliver into the same MediaPackage channel group. The channel group also contains a multiview channel, which reads segments from the source channels.
-
The player requests a layout and an ordered list of sources as query parameters on the manifest request. Because the layout is a request parameter, an application can change the arrangement during playback.
-
The multiview channel assembles the matching segments on demand and returns one HLS or DASH stream — one video track, one decoder, one DRM key, whichever layout the viewer chose.
Because the combining happens at delivery, your encoding footprint scales with the number of source feeds, not with the number of arrangements viewers can request.
What MediaLive contributes
MediaLive encodes each source feed using encoder settings that make the resulting renditions combinable downstream. MediaLive does not composite feeds together and has no awareness of which arrangement a viewer will eventually request.
What MediaLive produces is a ladder of renditions per feed, where every rendition is:
-
encoded with settings that make it multiview compatible, so that MediaPackage can combine it with renditions from other feeds, and
-
sized so that it fits the view positions of the layouts you want to support.
Each participating output also declares one or more multiview usages in the
outputUsage field, which tells MediaLive which view positions the
rendition is intended to fill. MediaLive uses that declaration to apply the multiview
validations. For the enum values and the validation rules they trigger, see Dynamic Multiview: MediaLive Configuration Reference.
Views and layouts
MediaPackage supports combining two to four feeds per layout. All feeds in one multiview must be channels in the same MediaPackage channel group.
A layout is either equal-size, where every view is the same size, or primary/secondary, where one large view is accompanied by smaller ones. In a primary/secondary layout, a secondary view is always exactly half the width and half the height of its primary.
| Layout | Views | Arrangement | Views required |
|---|---|---|---|
2EH |
2 | Two equal, side by side | equal-size |
3EL |
3 | Three equal, one left and two right | equal-size |
4E |
4 | Four equal, 2×2 grid | equal-size |
2PL |
2 | One large primary on the left, one secondary | primary + secondary |
3PL |
3 | One large primary on the left, two secondary | primary + secondary |
4PL |
4 | One large primary on the left, three secondary | primary + secondary |
These diagrams show how each layout arranges its views.
Audio and captions
A multiview stream carries the audio and caption tracks of every view, not only one. The viewer chooses which to play.
Each source feed's audio and captions are packaged as selectable renditions in the manifest — audio rendition groups and caption tracks in HLS, adaptation sets in DASH. A viewer watching several feeds can listen to any one of them, and switch between them, without changing the visual layout.
Identifying audio and captions for each view
MediaPackage labels each audio and caption rendition in the stitched manifest so that you can tell which view it belongs to. You supply the label from your MediaLive channel:
-
For audio, set the Stream Name field in the Stream settings section of each audio description — for example,
EnglishorSpanish. -
For captions, set the Language description field of each caption description — for example,
EnglishorSpanish.
MediaPackage prefixes that label with the view position. An audio rendition labeled
English on your first source appears as
View1_English. A rendition labeled English on your
second source appears as View2_English.
In an HLS manifest, this name appears in the NAME attribute on
the EXT-X-MEDIA tag. In a DASH manifest, it appears in the
Label element on the corresponding adaptation set.
The view number matches the order in which you listed the source channels in
the sources parameter of your request. The first source is view 1,
the second is view 2, and so on. For information about the sources
parameter, see Multiview in the AWS Elemental MediaPackage User Guide.