Wowza Community

Issues running an HEVC HLS Adaptive Live Stream with CMAF Segments

Hello There,

I’m trying to loop a single file as adaptive hls live stream.

I have pre-transcoded all the variants I need (for now), I’m not intending to use Transcoder to do that work at all.
Please keep in mind bitrates are not finalized yet since I just wanted to get something running.

This is my scheduler smil:

    <stream name="1280x640"></stream>
    <stream name="1920x960"></stream>
    <stream name="3840x1920"></stream>
    <stream name="7680x3840"></stream>

    <playlist name="pl1" playOnStream="1920x960" repeat="true" scheduled="2016-04-15 16:00:00">
        <video src="mp4:1920x960.mp4" start="0" length="-1"/>
    <playlist name="pl2" playOnStream="1280x640" repeat="true" scheduled="2016-04-15 16:00:00">
        <video src="mp4:1280x640.mp4" start="0" length="-1"/>
    <playlist name="pl3" playOnStream="3840x1920" repeat="true" scheduled="2016-04-15 16:00:00">
        <video src="mp4:3840x1920.mp4" start="0" length="-1"/>
    <playlist name="pl4" playOnStream="7680x3840" repeat="true" scheduled="2016-04-15 16:00:00">
        <video src="mp4:7680x3840.mp4" start="0" length="-1"/>

The 1920/1280 variants are h.264, 3840/7680 are hevc.
My streaming smil looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<smil title="">
			<video height="640" src="1280x640" systemBitrate="8000000" width="1280">
				<param name="videoBitrate" value="7817341" valuetype="data"></param>
				<param name="videoCodecId" value="avc1.4d4029" valuetype="data"></param>
				<param name="audioCodecId" value="mp4a.40.2" valuetype="data"></param>
			<video height="960" src="1920x960" systemBitrate="15000000" width="1920">
				<param name="videoBitrate" value="14575045" valuetype="data"></param>
				<param name="videoCodecId" value="avc1.640029" valuetype="data"></param>
				<param name="audioCodecId" value="mp4a.40.2" valuetype="data"></param>
			<video height="1920" src="3840x1920" systemBitrate="30000000" width="3840">
				<param name="videoBitrate" value="28282107" valuetype="data"></param>
				<param name="videoCodecId" value="hvc1.1.60000000.H150.90" valuetype="data"/>
				<param name="audioCodecId" value="mp4a.40.2" valuetype="data"></param>
			<video height="3840" src="7680x3840" systemBitrate="90000000" width="7680">
				<param name="videoBitrate" value="84208392" valuetype="data"></param>
				<param name="videoCodecId" value="hvc1.1.60000000.H180.90" valuetype="data"/>
				<param name="audioCodecId" value="mp4a.40.2" valuetype="data"></param>

Since I’m using HEVC I figured I’d need CMAF containers and I tried to set it up by setting LiveStreamPacketizers to cmafstreamingpacketizer in my Application.xml.

Unfortunately this doesn’t seem to work.

Opening live/smil:switch.smil/playlist.m3u8 in Safari loads for a while but ultimately nothing happens and it breaks.

Interestingly, the single streams, e.g. live/1280x640/playlist.m3u8 all work just fine, even the 8K one.
This is an excerpt from the debug log:

2022-05-10      18:45:05        GMT     comment server  WARN    200     -       HTTPStreamerAdapterCupertinoStreamer.onPlaylist: Rendition is not supported [live/smil:switch.smil/chunklist_w1827565764_b8000000.m3u8]: AUDIOVIDEO     _defaultVHost_  live_definst_        145.557 -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -

2022-05-10      18:45:05        GMT     comment server  WARN    200     -       PlaylistDelegate.getManifest[app[live] stream[1280x640] format[CMAF], type[AUDIOVIDEO]]: Manifest doesn't exist: live/smil:switch.smil/chunklist_w1827565764_b8000000.m3u8  _defaultVHost_   live    _definst_       145.557 -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -

I’m a bit out of ideas right now.