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 following optional packetization properties for CMAF streams.

Note: Similar properties are available for the standalone HLS (Cupertino) and MPEG-DASH packetizers. For more information, see Configure Apple HLS packetization in Wowza Streaming Engine and Configure MPEG-DASH packetization in Wowza Streaming Engine.

You can configure these custom 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.

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.

cupertinoSegmentHoldBack
(4.8.0 and later)
Double Specifies, in floating-point seconds, the server-recommended minimum distance from the live edge at which clients should begin to play or to which they should seek. If set, the value must be at least three times the cmafSegmentDurationTarget value. This property is valid for non-low latency HLS only, however it's only compatible with players that support the EXT-X-SERVER-CONTROL tag. There is no default value.
cupertinoCanSkipUntil
(4.8.13 and later)
Boolean If true (default), the EXT-X-SERVER-CONTROL tag in media playlists includes the CAN-SKIP-UNTIL attribute, which advertises that the server can respond to Playlist Delta Updates that skip older segments.

More resources