RTP Stream Audio and video together i have stuttering

mpe tc.marc.peter at gmail.com
Sun Jun 2 12:44:28 UTC 2019


Hello all,

When i decode audio and video together from an rtp live stream i have audio
and some video stuttering. 
Play each separately i have no problem with both,

When i record the stream as ts and playback decode it together all works
fine.

I think the issue is in the rtp part but what i can do?

Main pipeline:

sudo gst-launch-1.0 -vvv udpsrc address=239.186.68.7 port=10000
buffer-size=90000000
caps="application/x-rtp,media=(string)video,clock-rate=(int)80000,encoding-name=(string)MP2T-ES"
! rtpjitterbuffer ! rtpmp2tdepay ! tsdemux name=demuxer demuxer. ! queue !
ac3parse ! avdec_ac3 ! audioresample ! audioconvert ! autoaudiosink demuxer.
! queue ! decodebin ! autovideoconvert ! videorate ! videoscale !
autovideosink

Debug Output:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0/GstAutoConvert:autoconvertchild:
factories = (null)
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps =
application/x-rtp, media=(string)video, clock-rate=(int)80000,
encoding-name=(string)MP2T-ES
/GstPipeline:pipeline0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps
= application/x-rtp, media=(string)video, clock-rate=(int)80000,
encoding-name=(string)MP2T-ES
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps
= application/x-rtp, media=(string)video, clock-rate=(int)80000,
encoding-name=(string)MP2T-ES
/GstPipeline:pipeline0/GstRtpMP2TDepay:rtpmp2tdepay0.GstPad:src: caps =
video/mpegts, packetsize=(int)188, systemstream=(boolean)true
/GstPipeline:pipeline0/GstTSDemux:demuxer.GstPad:sink: caps = video/mpegts,
packetsize=(int)188, systemstream=(boolean)true
/GstPipeline:pipeline0/GstRtpMP2TDepay:rtpmp2tdepay0.GstPad:sink: caps =
application/x-rtp, media=(string)video, clock-rate=(int)80000,
encoding-name=(string)MP2T-ES
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-h264,
stream-format=(string)byte-stream, alignment=(string)nal
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-ac3
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/x-h264,
stream-format=(string)byte-stream, alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink.GstProxyPad:proxypad1:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-ac3
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstAc3Parse:ac3parse0.GstPad:sink: caps = audio/x-ac3
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:sink:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:sink:
caps = video/x-h264, stream-format=(string)byte-stream,
alignment=(string)nal
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:sink: caps =
video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal
/GstPipeline:pipeline0/GstAc3Parse:ac3parse0.GstPad:src: caps = audio/x-ac3,
framed=(boolean)true, rate=(int)48000, channels=(int)2,
alignment=(string)frame
/GstPipeline:pipeline0/avdec_ac3:avdec_ac3-0.GstPad:sink: caps =
audio/x-ac3, framed=(boolean)true, rate=(int)48000, channels=(int)2,
alignment=(string)frame
/GstPipeline:pipeline0/avdec_ac3:avdec_ac3-0.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/GstAudioResample:audioresample0.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/GstAudioConvert:audioconvert0.GstPad:src: caps =
audio/x-raw, rate=(int)48000, format=(string)F32LE, channels=(int)2,
layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink.GstProxyPad:proxypad0:
caps = audio/x-raw, rate=(int)48000, format=(string)F32LE, channels=(int)2,
layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
Redistribute latency...
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse.GstPad:sink:
caps = audio/x-raw, rate=(int)48000, format=(string)F32LE, channels=(int)2,
layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink:
caps = audio/x-raw, rate=(int)48000, format=(string)F32LE, channels=(int)2,
layout=(string)interleaved, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps =
audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved,
rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstAudioResample:audioresample0.GstPad:sink: caps =
audio/x-raw, format=(string)F32LE, layout=(string)non-interleaved,
rate=(int)48000, channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstH264Parse:h264parse0.GstPad:src:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080,
framerate=(fraction)25/1, interlace-mode=(string)mixed,
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
bit-depth-chroma=(uint)8, parsed=(boolean)true, profile=(string)high,
level=(string)4,
codec_data=(buffer)01640028ffe1001c67640028ac133140780447de03ea020203e00000030020000006528002000468fa8f2c0005685ea3cc03
Redistribute latency...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/avdec_h264:avdec_h264-0.GstPad:sink:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080,
framerate=(fraction)25/1, interlace-mode=(string)mixed,
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
bit-depth-chroma=(uint)8, parsed=(boolean)true, profile=(string)high,
level=(string)4,
codec_data=(buffer)01640028ffe1001c67640028ac133140780447de03ea020203e00000030020000006528002000468fa8f2c0005685ea3cc03
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstCapsFilter:capsfilter0.GstPad:src:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080,
framerate=(fraction)25/1, interlace-mode=(string)mixed,
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
bit-depth-chroma=(uint)8, parsed=(boolean)true, profile=(string)high,
level=(string)4,
codec_data=(buffer)01640028ffe1001c67640028ac133140780447de03ea020203e00000030020000006528002000468fa8f2c0005685ea3cc03
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstCapsFilter:capsfilter0.GstPad:sink:
caps = video/x-h264, stream-format=(string)avc, alignment=(string)au,
pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080,
framerate=(fraction)25/1, interlace-mode=(string)mixed,
chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
bit-depth-chroma=(uint)8, parsed=(boolean)true, profile=(string)high,
level=(string)4,
codec_data=(buffer)01640028ffe1001c67640028ac133140780447de03ea020203e00000030020000006528002000468fa8f2c0005685ea3cc03
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/avdec_h264:avdec_h264-0.GstPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0.GstGhostPad:sink.GstProxyPad:proxypad2:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0/GstAutoConvert:autoconvertchild/GstVideoConvert:videoconvert0.GstPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0/GstAutoConvert:autoconvertchild.GstPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0.GstGhostPad:src:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstVideoRate:videorate0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstVideoScale:videoscale0.GstPad:src: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad4:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstXvImageSink:autovideosink0-actual-sink-xvimage.GstPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstVideoScale:videoscale0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstVideoRate:videorate0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0.GstGhostPad:src.GstProxyPad:proxypad3:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0/GstAutoConvert:autoconvertchild/GstVideoConvert:videoconvert0.GstPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0/GstAutoConvert:autoconvertchild.GstPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstAutoVideoConvert:autovideoconvert0.GstGhostPad:sink:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstDecodePad:src_0.GstProxyPad:proxypad5:
caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080,
interlace-mode=(string)mixed, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)25/1
Redistribute latency...
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse:
volume = 1
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse:
mute = false
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse:
current-device = alsa_output.pci-0000_05_00.1.hdmi-stereo
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse:
volume = 1
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse:
mute = false
/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse:
current-device = alsa_output.pci-0000_05_00.1.hdmi-stereo
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:15.218942168
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Br,

Marc



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list