rtsp to hlssink with audio

Rand Graham rand.graham at zenith.com
Tue Dec 17 22:41:39 UTC 2019


Hi,

The first thing I notice is that it looks like you have an extra aacparse in your pipeline. The last aacparse before the queue and then the mux seems unneeded.

Here is an example of an hlssink pipeline that I have used with a file source.

// HLS Sink example
gst-launch-1.0 -v -e mpegtsmux name=m m. ! queue ! hlssink filesrc location=/home/rdg/data/the_canoe_h265.ts ! tsdemux name=d d. ! queue max-size-buffers=1200 max-size-buffers=0 max-size-time=0 ! h265parse ! mfxhevcdec ! videoconvert ! mfxvpp width=1280 height=720  ! mfxh264enc rate-control=cbr bitrate=1500 insert-aud=true ! "video/x-h264, stream-format=byte-stream, profile=high" ! m. d. ! queue max-size-buffers=1200 max-size-buffers=0 max-size-time=0 ! aacparse ! avdec_aac ! audioconvert ! voaacenc bitrate=128000 ! m

I use queues after the demux. (I have never used a queue prior to the mux)

Regards,
Rand

From: gstreamer-devel [mailto:gstreamer-devel-bounces at lists.freedesktop.org] On Behalf Of Jerry Geis
Sent: Tuesday, December 17, 2019 2:29 PM
To: gstreamer-devel at lists.freedesktop.org
Subject: rtsp to hlssink with audio

HI - all I am taking RTSP camera to hlssink and trying to get audio to work.

gst-launch-1.0 mpegtsmux name=m ! hlssink playlist-root=/ location=hlssink.camera.1636.%05d.ts target-duration=1 max-files=3 playlist-length=2 playlist-location=playlist.camera.1636.m3u8 rtspsrc latency=0 location=rtsp://192.168.2.5<http://192.168.2.5> name=d d. ! rtph264depay ! h264parse config-interval=-1 ! queue ! m. d. ! rtpmp4gdepay ! aacparse ! avdec_aac ! audioconvert ! audioresample ! audiorate ! avenc_aac bitrate=96000 compliance=-2 ! aacparse ! queue ! m.

This "sort" or works. I get video. Just no audio.
Below is some of the data. Not sure what the error is on libva() - that may be the whole issue.

also there is about a 3 second latency - any way to reduce that ??/

gst-inspect-1.0 | grep aac
libav:  avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
libav:  avdec_aac_latm: libav AAC LATM (Advanced Audio Coding LATM syntax) decoder
libav:  avdec_aac_fixed: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac: libav AAC (Advanced Audio Coding) decoder
libav:  avenc_aac: libav AAC (Advanced Audio Coding) encoder
fluaacdec:  fluaacdec: Fluendo AAC Decoder (HE enabled, stereo downmix)
voaacenc:  voaacenc: AAC audio encoder
typefindfunctions: audio/aac: aac, adts, adif, loas
audioparsers:  aacparse: AAC audio stream parser

jerry

libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://192.168.2.5<http://192.168.2.5>
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: latency = 0
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: ntp-sync = false
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: rfc7273-sync = false
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: ntp-time-source = NTP time based on realtime clock
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: drop-on-latency = false
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: max-rtcp-rtp-time-diff = 1000
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: buffer-mode = Slave receiver to sender clock
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc0: timeout = 5000000000
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc0: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc1: caps = application/x-rtcp
Progress: (request) SETUP stream 1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc2: timeout = 5000000000
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc2: caps = application/x-rtp, media=(string)audio, payload=(int)97, clock-rate=(int)44100, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)1, profile-level-id=(string)41, streamtype=(string)5, mode=(string)AAC-hbr, objecttype=(string)64, constantduration=(string)1024, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, config=(string)12100000000000000000000000000000, ssrc=(uint)4000664930
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc3: caps = application/x-rtcp
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager: buffer-mode = Slave receiver to sender clock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc0: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc2: caps = application/x-rtp, media=(string)audio, payload=(int)97, clock-rate=(int)44100, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)1, profile-level-id=(string)41, streamtype=(string)5, mode=(string)AAC-hbr, objecttype=(string)64, constantduration=(string)1024, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, config=(string)12100000000000000000000000000000, ssrc=(uint)4000664930, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc1.GstPad:src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstFunnel:funnel0.GstFunnelPad:funnelpad0: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstFunnel:funnel1.GstFunnelPad:funnelpad1: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_0: caps = application/x-rtcp
Progress: (request) Sent PLAY request
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc2.GstPad:src: caps = application/x-rtp, media=(string)audio, payload=(int)97, clock-rate=(int)44100, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)1, profile-level-id=(string)41, streamtype=(string)5, mode=(string)AAC-hbr, objecttype=(string)64, constantduration=(string)1024, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, config=(string)12100000000000000000000000000000, ssrc=(uint)4000664930, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_1.GstProxyPad:proxypad4: caps = application/x-rtp, media=(string)audio, payload=(int)97, clock-rate=(int)44100, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)1, profile-level-id=(string)41, streamtype=(string)5, mode=(string)AAC-hbr, objecttype=(string)64, constantduration=(string)1024, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, config=(string)12100000000000000000000000000000, ssrc=(uint)4000664930, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc3.GstPad:src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstFunnel:funnel2.GstFunnelPad:funnelpad2: caps = application/x-rtp, media=(string)audio, payload=(int)97, clock-rate=(int)44100, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)1, profile-level-id=(string)41, streamtype=(string)5, mode=(string)AAC-hbr, objecttype=(string)64, constantduration=(string)1024, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, config=(string)12100000000000000000000000000000, ssrc=(uint)4000664930, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_1: caps = application/x-rtp, media=(string)audio, payload=(int)97, clock-rate=(int)44100, encoding-name=(string)MPEG4-GENERIC, encoding-params=(string)1, profile-level-id=(string)41, streamtype=(string)5, mode=(string)AAC-hbr, objecttype=(string)64, constantduration=(string)1024, sizelength=(string)13, indexlength=(string)3, indexdeltalength=(string)3, config=(string)12100000000000000000000000000000, ssrc=(uint)4000664930, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_1.GstProxyPad:proxypad5: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstFunnel:funnel3.GstFunnelPad:funnelpad3: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_1: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc0: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:d/GstUDPSrc:udpsrc2: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstFunnel:funnel0.GstPad:src: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0164001fffe1000f2764001fac56c05005ba6a0202020401000428ee3cb0, level=(string)3.1, profile=(string)high
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0164001fffe1000f2764001fac56c05005ba6a0202020401000428ee3cb0, level=(string)3.1, profile=(string)high
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d.GstGhostPad:recv_rtp_src_0_3065589820_96.GstProxyPad:proxypad8: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:d/GstRtpBin:manager.GstGhostPad:recv_rtp_src_0_3065589820_96.GstProxyPad:proxypad7: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, sprop-parameter-sets=(string)"J2QAH6xWwFAFumoCAgIE\,KO48sA\=\=", profile-level-id=(string)64001F, ssrc=(uint)3065589820, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, parsed=(boolean)true
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, parsed=(boolean)true
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, parsed=(boolean)true
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20191217/bd422441/attachment-0001.htm>


More information about the gstreamer-devel mailing list