When we try to transcode a stream coming from WebRTC in order to publish it using mpegdashstreamingpacketizer or cmafstreamingpacketizer eventually (the time is completely random) we start seeing the following exception:
HTTPStreamerMPEGDashLiveIndex.indexFile[live/_definst_/streamName_720p] : java.lang.NullPointerException
at com.wowza.wms.httpstreamer.mpegdashstreaming.livestreampacketizer.MPEGDashWriterHandler.indexStream(MPEGDashWriterHandler.java:2274)
at com.wowza.wms.httpstreamer.mpegdashstreaming.livestreampacketizer.LiveStreamPacketizerMPEGDash.indexStream(LiveStreamPacketizerMPEGDash.java:377)
at com.wowza.wms.httpstreamer.cmafstreaming.livestreampacketizer.LiveStreamPacketizerCmaf.indexStream(LiveStreamPacketizerCmaf.java:374)
at com.wowza.wms.httpstreamer.mpegdashstreaming.file.HTTPStreamerMPEGDashLiveIndexItem.indexStream(HTTPStreamerMPEGDashLiveIndexItem.java:354)
at com.wowza.wms.httpstreamer.mpegdashstreaming.file.HTTPStreamerMPEGDashLiveIndex.indexFile(HTTPStreamerMPEGDashLiveIndex.java:423)
at com.wowza.wms.httpstreamer.mpegdashstreaming.httpstreamer.HTTPStreamerSessionMPEGDash.createIndexLive(HTTPStreamerSessionMPEGDash.java:85)
at com.wowza.wms.httpstreamer.mpegdashstreaming.httpstreamer.HTTPStreamerSessionMPEGDash.getIndexLive(HTTPStreamerSessionMPEGDash.java:122)
at com.wowza.wms.httpstreamer.mpegdashstreaming.httpstreamer.HTTPStreamerAdapterMPEGDashStreamer.onManifest(HTTPStreamerAdapterMPEGDashStreamer.java:1481)
at com.wowza.wms.httpstreamer.mpegdashstreaming.httpstreamer.HTTPStreamerAdapterMPEGDashStreamer.serviceMsg(HTTPStreamerAdapterMPEGDashStreamer.java:240)
at com.wowza.wms.httpstreamer.mpegdashstreaming.httpstreamer.HTTPStreamerAdapterMPEGDashStreamer.service(HTTPStreamerAdapterMPEGDashStreamer.java:202)
at com.wowza.wms.server.ServerHandler.a(ServerHandler.java:703)
at com.wowza.wms.server.ServerHandler.a(ServerHandler.java:423)
at com.wowza.wms.server.ServerHandler.messageReceived(ServerHandler.java:552)
at com.wowza.wms.server.ServerHandlerThreaded.messageReceived(ServerHandlerThreaded.java:79)
As a result the stream can not be played anymore in MPEG-DASH player. Neither restart of the app nor the server restart solves the problem. The problem just appears and disappears randomly and only when we publish using WebRTC. With a RTMP stream coming from OBS everything works fine.
Our configuration:
WebRTC stream (H.264/Opus) is being transcoded into H.264/AAC (Key Frame Interval: we tried “Same as source”, 15 and 30 frames).
- WebRTC client based on your example: https://github.com/WowzaMediaSystems/webrtc-examples
- Wowza Streaming Engine ver. 4.8.8.1
- CMAF Streaming Packetizer Settings:
- cmafSegmentDurationTarget = 1000
- cmafMaxSegmentCount = 50
- cmafPlaylistSegmentCount = 12
- cmafRepeaterSegmentCount = 12