HLS .ts error

Hello

I am seeing an occasional error in the HLS stream generated by Wowza. Not every chunk will have these problems, but I’m seeing roughly 50% do have them right now:

ERROR: (-12703) failed to create format reader: unknown error

ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES

(this is gathered from the mediastreamvalidator tool)

VLC doesn’t seem too bothered by it, unfortunately it interrupts playback with Quicktime and Safari’s

Edit:

This error seemed to be caused by my encoder emitting 0-size AAC packets at the beginning of the stream. Fixing that fixed this problem. Thanks for your help.

Update: reducing the cupertinoChunkDurationTarget to 2000 ms seems to reduce the number of errors significantly, but they still happen occasionally and it interrupts Safari and Quicktime playback.

Hi James,

After the stream is published, Wowza starts cupertino packetizing and the first 10 of those are logged. They look something like this:

LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/Stream1]: Add chunk: id:1 mode:TS[H264,AAC] a/v/k:176/270/3 duration:11250

Find those lines and show us all 10 of them.

Above those lines, you will see audio and video info from the cupertino packetizer that look something like this:

LiveStreamPacketizerCupertino.handlePacket[live/_definst_/Stream1][mp4a.40.2]: AAC Audio info: {AACFrame: codec:AAC, channels:2, frequency:48000, samplesPerFrame:1024, objectType:LC}
LiveStreamPacketizerCupertino.handlePacket[live/_definst_/Stream1][avc1.66.30]: H.264 Video info: {H264CodecConfigInfo: codec:H264, profile:Baseline, level:3.0, frameSize:424x240, displaySize:424x240, frameRate:24.0, crop: l:0 r:4 t:0 b:0}

Please show those two also.

Richard

Strangely these errors only seem to happen in the first 30-60 seconds of the stream, afterward it seems to work fine.

Thanks for the reply, here’s the log info you requested:

2014-05-23	10:20:30	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:1 mode:TS[H264,AAC] a/v/k:33/60/1 duration:2100
2014-05-23	10:20:32	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:2 mode:TS[H264,AAC] a/v/k:36/60/1 duration:2000
2014-05-23	10:20:34	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:3 mode:TS[H264,AAC] a/v/k:32/60/1 duration:2000
2014-05-23	10:20:36	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:4 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000
2014-05-23	10:20:38	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:5 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2067
2014-05-23	10:20:40	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:6 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000
2014-05-23	10:20:42	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:7 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000
2014-05-23	10:20:44	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:8 mode:TS[H264,AAC] a/v/k:28/60/1 duration:2000
2014-05-23	10:20:46	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:9 mode:TS[H264,AAC] a/v/k:30/60/1 duration:2100
2014-05-23	10:20:48	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:10 mode:TS[H264,AAC] a/v/k:31/60/1 duration:2100
2014-05-23	10:20:50	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:11 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2066

2014-05-23	10:20:28	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.handlePacket[live/_definst_/myStream]: Video codec:H264 isCompatible:true	-	-	-	87868.614
2014-05-23	10:20:28	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.handlePacket[live/_definst_/myStream]: Audio codec:AAC isCompatible:true	-	-	-	87868.615
2014-05-23	10:20:28	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.handlePacket[live/_definst_/myStream][mp4a.40.2]: AAC Audio info: {AACFrame: codec:AAC, channels:2, frequency:44100, samplesPerFrame:1024, objectType:LC}	-	-	-	87868.615
2014-05-23	10:20:28	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.handlePacket[live/_definst_/myStream][avc1.66.30]: H.264 Video info: {H264CodecConfigInfo: codec:H264, profile:Baseline, level:3.0, frameSize:568x320, displaySize:568x320, crop: l:0 r:4 t:0 b:0}	-	-	-	87868.615

Here are two packets that correspond to errors I got from the mediastreamvalidator tool:

2014-05-23	11:58:44	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:2 mode:TS[H264,AAC] a/v/k:33/60/1 duration:2000	-	-	-	93764.51
2014-05-23	11:58:46	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:3 mode:TS[H264,AAC] a/v/k:29/60/1 duration:2000	-	-	-	93766.528

And one that did not have an error:

2014-05-23	11:58:48	PDT	comment	server	INFO	200	-	LiveStreamPacketizerCupertino.endChunkTS[live/_definst_/myStream]: Add chunk: id:4 mode:TS[H264,AAC] a/v/k:28/60/1 duration:2000	-	-	-	93768.48

This is the mediastreamvalidator output (I’m assuming the _{x}.ts in the chunk filenames corresponds to the id in the log file):

mediastreamvalidator: Beta Version 1.1(131115)
Validating http://127.0.0.1:1935/live/myStream/playlist.m3u8
Validating child playlist chunklist_w1907198250.m3u8 [751.37 kbits/sec]
Segment processing interrupted: chunklist_w1907198250.m3u8 - 31 out of 31 segments processed...
--------------------------------------------------------------------------------
http://127.0.0.1:1935/live/myStream/playlist.m3u8
--------------------------------------------------------------------------------
Playlist Syntax: 
	Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
	--> #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=751372,CODECS="avc1.66.30, mp4a.40.2",RESOLUTION=568x320
Alternate playlist(s):
--------------------------------------------------------------------------------
chunklist_w1907198250.m3u8
--------------------------------------------------------------------------------
Playlist Syntax: 	OK
Processed 31 out of 31 segments:
media_w1907198250_2.ts:
	ERROR: (-12703) failed to create format reader: unknown error
	ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES
media_w1907198250_3.ts:
	ERROR: (-12703) failed to create format reader: unknown error
	ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES
media_w1907198250_19.ts:
	ERROR: (-12703) failed to create format reader: unknown error
	ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES
media_w1907198250_25.ts:
	ERROR: (-12703) failed to create format reader: unknown error
	ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES
media_w1907198250_28.ts:
	ERROR: (-12703) failed to create format reader: unknown error
	ERROR: (-12703) failed to parse segment as either an MPEG-2 TS or an ES
Average segment duration: 1.68 seconds
Playlist target bitrate: 751.37 kbits/sec
Segment bitrate: Average: 695.85 kbits/sec, Max: 769.30 kbits/sec
Average segment structural overhead: 163.74 kbits/sec (23.53 %)

This error seems to correspond to kCMBlockBufferBadOffsetParameterErr which according to the Apple documentation “Indicates that the offset provided to an API is out of the range of the relevant CMBlockBuffer.”