Wowza Community

Live UDP Multicast and playlist issues

Trying to create a playlist out of recorded files from a UDP multicast stream (H.264/AAC).

I’m using the live recorder to save the files (MP4). The first problem I’m having is that when I play the multicast stream via a .stream file I only get audio… and I can only get it to play back through flash. If I try to use an http play request… it just fails. Server side it says it can’t find the stream.

The second issue I’m having is when I take those saved files and dynamically add them to a playlist of a serverside stream… I am unable to play that stream back. Wowza complains that it can’t find files.

If I publish from flash then all works perfectly fine… but when I use the live recorder to record a pulled udp multicast stream it fails miserably.

Am I mismatching what is possible with server side playlists and http streams?

An ffprobe analysis of a recorded file yields:

ffprobe -i myStream.stream-22789278.mp4

ffprobe version N-52508-g7becddd Copyright © 2007-2013 the FFmpeg developers

built on Apr 26 2013 18:01:30 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)

configuration: --enable-libx264 --enable-libmp3lame --disable-debug --enable-libfaac --enable-libspeex --enable-gpl --enable-pthreads --disable-debug --enable-shared --enable-nonfree --enable-libvpx --enable-libfreetype

libavutil 52. 27.101 / 52. 27.101

libavcodec 55. 6.100 / 55. 6.100

libavformat 55. 3.100 / 55. 3.100

libavdevice 55. 0.100 / 55. 0.100

libavfilter 3. 60.102 / 3. 60.102

libswscale 2. 2.100 / 2. 2.100

libswresample 0. 17.102 / 0. 17.102

libpostproc 52. 3.100 / 52. 3.100

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Missing reference picture, default is 0

[h264 @ 0x2061720] decode_slice_header error

[h264 @ 0x2061720] Invalid mix of idr and non-idr slices

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2060160] max_analyze_duration 5000000 reached at 5014000 microseconds

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x2060160] decoding for stream 0 failed

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘myStream.stream-22789278.mp4’:

Metadata:

major_brand : f4v

minor_version : 0

compatible_brands: isommp42m4v

creation_time : 2013-04-30 21:18:17

Duration: 00:00:38.49, start: 0.000000, bitrate: 221 kb/s

Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 424x240, 0 kb/s, 0k fps, 24 tbr, 90k tbn, 48 tbc

Metadata:

creation_time : 2013-04-30 21:18:17

handler_name : WowzaMediaServerPro

Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 99 kb/s

Metadata:

creation_time : 2013-04-30 21:18:17

handler_name : WowzaMediaServerPro

So something odd is going on…

I can clarify further if need be.

Thanks for any and all help on this.

Jake

Hi,

The quickest way to see what Wowza thinks of the files is to enable a HLS packetizer, so Cupertino is good, get Wowza to listen for the stream and see which codecs are in use. You should also see the fragments being built, the first 10 are shown by default. Each one is built based on the keyframe intervals in the stream along with chunkdurationtarget settings within Wowza, 10 seconds by default. If you do not see segments being built for the packetizer this will give a hint at where the problem is. Given the errors you are seeing in ffmpeg it suggests the stream has no or very few keyframes.

Andrew.

In looking at the logs for the Cupertino fragments… I’m seeing this:

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.init[x/definst/myStream.stream]: chunkDurationTarget: 10000 - - - 40.627 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.init[x/definst/myStream.stream]: chunkDurationTolerance: 500 - - - 40.628 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.init[x/definst/myStream.stream]: audioGroupCount: 3 - - - 40.629 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.init[x/definst/myStream.stream]: playlistChunkCount:3 - - - 40.63 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: cupertinostreamingpacketizer:myStream.stream - - - 40.637 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - CupertinoPacketHandler.startStream[x/definst/myStream.stream] - - - 40.641 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[x/definst/myStream.stream]: Video codec:H264 isCompatible:true - - - 40.642 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[x/definst/myStream.stream]: Audio codec:AAC isCompatible:true - - - 40.643 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:24 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[x/definst/myStream.stream][mp4a.40.2]: AAC Audio info: {AACFrame: codec:AAC, channels:2, frequency:48000, samplesPerFrame:1024, objectType:LC} - - - 40.645 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:28 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.handlePacket[x/definst/myStream.stream][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} - - - 44.397 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:28 MDT comment server INFO 200 - LiveStreamPacketizerCupertino.endChunkTS[x/definst/myStream.stream]: Add chunk: id:1 mode:TS[H264,AAC] a/v/k:61/0/0 duration:-30008578 - - - 44.508 - - - - - - - - - - - - - - - - - - - - - - - - -

I’m seeing the following from the smoothstream packetizer:

2013-04-30 15:18:30 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.flushPendingAudio: Bitrate[x/definst/myStream.stream]: 105474 - - - 46.448 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:30 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:0 count:94 duration:2005 - - - 46.485 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:32 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:1 count:94 duration:2005 - - - 48.446 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:34 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:2 count:94 duration:2006 - - - 50.463 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:36 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:3 count:94 duration:2005 - - - 52.513 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:38 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:4 count:94 duration:2005 - - - 54.474 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:40 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.handlePacket[x/definst/myStream.stream]: Fragment durations: [0.0,0.0,0.0] - - - 56.36 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:40 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:2 count:3 duration:0 - - - 56.364 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:40 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:5 count:94 duration:2006 - - - 56.471 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:42 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:6 count:94 duration:2005 - - - 58.469 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:44 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:3 count:3 duration:0 - - - 60.373 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:44 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:7 count:94 duration:2005 - - - 60.487 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:46 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:8 count:94 duration:2006 - - - 62.464 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:47 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:4 count:2 duration:0 - - - 63.106 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:48 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:5 count:1 duration:0 - - - 64.382 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:48 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:9 count:94 duration:2005 - - - 64.502 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:50 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:audio id:10 count:94 duration:2005 - - - 66.504 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:51 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:6 count:2 duration:0 - - - 67.052 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:55 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:7 count:3 duration:0 - - - 71.054 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:18:59 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:8 count:3 duration:0 - - - 75.047 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-04-30 15:19:03 MDT comment server INFO 200 - LiveStreamPacketizerSmoothStreaming.addFragment[x/definst/myStream.stream]: Add chunk: type:video id:9 count:3 duration:0 - - - 79.054 - - - - - - - - - - - - - - - - - - - - - - - - -

I’m running the udp multicast from vlc using the buck bunny mp4 that ships with Wowza. I’m not applying any transcoding on it. If you can reccomend specific settings for a vlc udp multicast that may solve this that would be great… otherwise I’m thinking it may have something to do with the way the udp file is being saved by Wowza.

Thanks for all your help.

Jake

I applied some transcoding to the udp stream and now it seems to have fixed the issue with the file. But I am still seeing issues with playing from a playlist.

I have created a serverside stream… added files to it dynamically but every time I try to play it via quicktime for example… I get the following:

2013-05-01 09:36:57 MDT comment server WARN 200 - HTTPStreamerAdapterCupertinoStreamer.getAppInstance: Stream not found [x/myStream.stream-1/playlist.m3u8]: myStream.stream-1

myStream.stream-1 is the serverside stream with items having been added to it’s playlist. Is there a naming convention I should stay away from with the .stream in the name?

Prior to the play I have started the serverside stream and we can see streams being dynamically added to the playlist:


2013-05-01 09:36:00 MDT comment server INFO 200 - 1367422560618 onWriteComplete name: myStream.stream - - - 58.714 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-05-01 09:36:00 MDT comment server INFO 200 - 1367422560620 onWriteComplete path: /usr/local/WowzaMediaServer-3.5.2/content/myStream.stream-22790375.mp4 - - - 58.715 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-05-01 09:36:00 MDT comment server INFO 200 - 1367422560621 adding file to playlist stream: myStream.stream-1 file: myStream.stream-22790375.mp4 - - - 58.716

Serverside streams with mp4 files is possible correct? I’m seeing this when I try to open a playlist on a stream:

013-05-01 10:10:33 MDT comment server INFO 200 - 1367424633676 supposed to be opening the playlist with stream: myStream.stream-1 - - - 45.857 - - - - - - - - - - - - - - - - - - - - - - - - -

2013-05-01 10:10:33 MDT comment server INFO 200 - Stream.switch[x/definst/myStream.stream-1]: index: 0 name:myStream.stream-22790409.mp4 start:0 length:-1 - - - 45.871

2013-05-01 10:10:33 MDT comment server WARN 200 - MediaReaderFLV.open: Metadata appears to be bad: myStream.stream-1 - - - 45.892

Why would Wowza use an FLV media reader on an mp4?

Thanks,

Jake

I’m slowly working it out… seems I need to append “mp4:” to the front of the stream when added to the playlist.

Slowly but surely… will report back.

Thanks,

Jake

Got it all sorted out. Once I appended the mp4: prefix on the front of files added to the playlist it started to work much better.

Thank you for the help in getting this sorted.

Jake