Configure CMAF live streaming packetization in Wowza Streaming Engine

Wowza Streaming Engine™ media server software version 4.7.8 and later provides several optional properties that you can use to customize how live streams are packetized for delivery using CMAF, the open, extensible standard that allows streams to be played over both the Apple HLS and MPEG-DASH protocols.

Configure CMAF packetization properties


Wowza Streaming Engine supports the optional packetization properties for CMAF streams described in this section.

Note: Similar properties are available for the standalone HLS (Cupertino) and MPEG-DASH packetizers. For more information, see:

You can configure these custom CMAF packetization properties in one of the following ways:

  • From Wowza Streaming Engine Manager, add the properties from the Custom section of your CMAF application's Properties tab using the /Root/Application/LiveStreamPacketizer path.
  • From the Application.xml file for your CMAF application ([install-dir]/conf/[application-name]), add the properties within the <LiveStreamPacketizer>/<Properties> container element.

See Add a custom property for more information about using custom properties.

CMAF live packetization property reference

 
Name Type Description
cmafEnableAudio Boolean Enables audio for CMAF streams. The default is True.
cmafEnableVideo Boolean Enables video for CMAF streams. The default is True.
cmafMaxSegmentCount Integer

The maximum number of fMP4 segments stored in the list of segments, available for playback. The default is 10.

cmafMinPlaylistSegmentCount 
(4.8.28 and later)
Integer Sets the minimum number of items returned in the HLS media playlist or MPEG-DASH manifest. The default value is 2.

When using a CMAF live stream repeater (origin/edge) configuration, this property facilitates playback by ensuring at least one complete segment is available on the edge before returning the playlist to the player.

Note: This value can't be higher than the cmafPlaylistSegmentCount. Otherwise, a warning is logged, and the cmafPlaylistSegmentCount value is used instead.

cmafPlaylistSegmentCount Integer

The number of fMP4 segments returned in the MPEG-DASH manifest, or HLS media playlist, when a player requests the stream. The default is 5.

Note: If you use a value greater than cmafMaxSegmentCount, Wowza Streaming Engine uses the cmafMaxSegmentCount value and sends a warning.

cmafRepeaterSegmentCount Integer

The number of fMP4 segments that are immediately sent from the origin server to the edge server after initial connection. You can use any integer equal to or greater than 1. The default is 5.

Note: Typically only for live origin applications in an origin/edge configuration. Configure cmafRepeaterSegmentCount on the origin server only.

cmafSegmentBreakOnPTS Boolean If true (default), CMAF segments align on a keyframe's presentation time stamp (PTS) metadata. If false, segments align on a keyframe's decoding time stamp (DTS).
cmafSegmentDurationTarget Integer

Specifies, in milliseconds, the duration of the fMP4 segments in the stream. The value must be greater than 0. The default is 6000 (6 seconds).

Note: If used in a repeater configuration, cmafSegmentDurationTarget must be specified identically on the origin server and each edge server.

cupertinoCanSkipUntil
(4.8.13 and later)
Boolean

Controls whether to include the CAN-SKIP-UNTIL attribute with the EXT-X-SERVER-CONTROL tag in CMAF HLS and Low-Latency HLS media playlists.

If true (default), the EXT-X-SERVER-CONTROL tag in media playlists includes the CAN-SKIP-UNTIL attribute, which advertises the server can respond to Playlist Delta Updates that skip older segments and indicates the server can skip to a specific moment. The duration at which skipping can occur is calculated as six times the segment target duration, which can be configured with the cmafSegmentDurationTarget property.

More resources