UDP multicast from Wowza to hlssink

Dan Rossi electroteque at protonmail.com
Tue Nov 30 18:22:05 UTC 2021


I believe there is missing flags for a raw mpeg-ts udp multicast stream not wrapped in RTP from Wowza. Ive tried looking elsewhere but failed. A simple playbin drops frames as is the other pipeline commands.

I may be looking into appsink to append the frames directly than generate hls. But there is no HLS output because of this dropping frame problem. publish and subscribe on the same machine for testing.

gst-launch-1.0 playbin3 uri=udp://224.0.0.0:4000 -v

The output of this
https://pastebin.com/v54tyU2t

Sent with [ProtonMail](https://protonmail.com/) Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, November 26th, 2021 at 4:45 AM, Dan Rossi via gstreamer-devel <gstreamer-devel at lists.freedesktop.org> wrote:

> Hi. I am having some trouble getting the right flags for ingesting a udp multicast from Wowza to hlsink. No segment or playlist is generated. But I am able to get test output although its dropping frames. In VLC its ok.
>
> If I locate to udp://@224.0.0.0:4000 in VLC its ok and no frame dropping. I am however trying to test on the same machine.
>
> Is there anything wrong with this ? its gstreamer in windows.
>
> gst-launch-1.0 -v udpsrc multicast-group=224.0.0.0 auto-multicast=true port=4000 ! decodebin3 ! hlssink max-files=5 playlist-root=http://localhost:8081/ location=D:/www/hls/hlssink.%05d.ts playlist-location=D:/www/hls/playlist.m3u8
>
> Debug output
>
> e is PREROLLED ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTSDemux:tsdemux0.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, stream-format=(string)adts
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstParsePad:src_0: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstParsePad:src_0.GstProxyPad:proxypad4: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: group-id = 4
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_1: group-id = 2
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_0: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)2, base-profile=(string)lc, profile=(string)lc, rate=(int)48000, channels=(int)2, stream-format=(string)adts
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:src_0: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstParsePad:src_1: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)2, base-profile=(string)lc, profile=(string)lc, rate=(int)48000, channels=(int)2, stream-format=(string)adts
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:sink_1: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)2, base-profile=(string)lc, profile=(string)lc, rate=(int)48000, channels=(int)2, stream-format=(string)adts
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstParsePad:src_1.GstProxyPad:proxypad5: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)2, base-profile=(string)lc, profile=(string)lc, rate=(int)48000, channels=(int)2, stream-format=(string)adts
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueue0.GstMultiQueuePad:src_1: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)2, base-profile=(string)lc, profile=(string)lc, rate=(int)48000, channels=(int)2, stream-format=(string)adts
> Redistribute latency...
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/avdec_h264:avdec_h264-0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)bt709, parsed=(boolean)true, alignment=(string)au, profile=(string)constrained-baseline, level=(string)3.1, codec_data=(buffer)0142c01fffe1001b6742c01fda014016e9a808080a000003000200000300791e30654001000468ce3c80
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/avdec_aac:avdec_aac0.GstPad:sink: caps = audio/mpeg, framed=(boolean)true, mpegversion=(int)4, level=(string)2, base-profile=(string)lc, profile=(string)lc, rate=(int)48000, channels=(int)2, stream-format=(string)adts
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/avdec_aac:avdec_aac0.GstPad:src: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0.GstGhostPad:audio_0: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0.GstGhostPad:audio_0.GstProxyPad:proxypad7: caps = audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved, rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/avdec_h264:avdec_h264-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0.GstGhostPad:video_0: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstHlsSink:hlssink0.GstGhostPad:sink.GstProxyPad:proxypad1: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstHlsSink:hlssink0/GstMultiFileSink:multifilesink0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstHlsSink:hlssink0.GstGhostPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
> /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0.GstGhostPad:video_0.GstProxyPad:proxypad6: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)30/1
> Redistribute latency...
>
> Sent with [ProtonMail](https://protonmail.com/) Secure Email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20211130/ef90d81c/attachment-0001.htm>


More information about the gstreamer-devel mailing list