Does pulsesrc work

James Linder jam at tigger.ws
Thu Oct 14 04:38:19 UTC 2021



> On 13 Oct 2021, at 4:28 pm, James Linder via gstreamer-devel <gstreamer-devel at lists.freedesktop.org> wrote:
> 
> 
> 
>> On 12 Oct 2021, at 10:41 pm, Nirbheek Chauhan via gstreamer-devel <gstreamer-devel at lists.freedesktop.org> wrote:
>> 
>> On Tue, Oct 12, 2021 at 7:15 PM James via gstreamer-devel
>> <gstreamer-devel at lists.freedesktop.org> wrote:
>>> gst_rtsp_media_factory_set_launch (factory, "( "
>>>     "videotestsrc ! video/x-raw,width=352,height=288,framerate=15/1 ! "
>>>     "x264enc ! rtph264pay name=pay0 pt=96 "
>>>     "pulsesrc device=0 ! audio/x-raw,rate=8000  ! "
>>>     "alawenc ! rtppcmapay name=pay1 pt=97 " ")");
>>> 
>> 
>> pulsesrc may claim to support 8000Hz and not actually support it
>> correctly. You can try something like:
>> 
>> pulsesrc device=0 ! audio/x-raw,rate=48000 ! audioresample !
>> audio/x-raw,rate=8000 ! allowance
> 
> First thanks for the help/suggestions.
> I’ve implemented each, then all the suggestions. My stutter is down ti 1 sec every 10 sec on this
> 
>  gst_rtsp_media_factory_set_launch (factory, "( "
>      "videotestsrc ! video/x-raw,width=1920,height=1080,framerate=30/1 ! "
>      "x264enc tune=zerolatency !rtph264pay name=pay0 pt=96 "
>      "pulsesrc device=0 ! queue ! audio/x-raw,rate=48000 ! audioresample ! "
>      "audio/x-raw,rate=8000 ! "
>      "alawenc ! rtppcmapay name=pay1 pt=97 " ")”);
> 
> (gst-rtsp-server/examples/test-video.c)
> 
> I’ve got out of my depth here, can anybody see anything in the (GST_DEBUG=4) log
> 
> 0:00:22.596346029 16035 0x7f925000d460 INFO              rtspstream rtsp-stream.c:2293:dump_structure: structure: application/x-rtp-source-stats, ssrc=(uint)4270178285, internal=(boolean)true, validated=(boolean)true, received-bye=(boolean)false, is-csrc=(boolean)false, is-sender=(boolean)true, seqnum-base=(int)402, clock-rate=(int)8000, octets-sent=(guint64)134769, packets-sent=(guint64)1685, octets-received=(guint64)134769, packets-received=(guint64)1685, bytes-received=(guint64)202169, bitrate=(guint64)96110, packets-lost=(int)-1685, jitter=(uint)0, sent-pli-count=(uint)0, recv-pli-count=(uint)0, sent-fir-count=(uint)0, recv-fir-count=(uint)0, sent-nack-count=(uint)0, recv-nack-count=(uint)0, recv-packet-rate=(uint)0, have-sr=(boolean)true, sr-ntptime=(guint64)16505995043005877652, sr-rtptime=(uint)3784889578, sr-octet-count=(uint)134769, sr-packet-count=(uint)1685;
> 0:00:25.550116312 16035 0x7f925000d400 INFO              rtspstream rtsp-stream.c:2293:dump_structure: structure: application/x-rtp-source-stats, ssrc=(uint)3732888534, internal=(boolean)true, validated=(boolean)true, received-bye=(boolean)false, is-csrc=(boolean)false, is-sender=(boolean)true, seqnum-base=(int)7956, clock-rate=(int)90000, octets-sent=(guint64)5185188, packets-sent=(guint64)7571, octets-received=(guint64)5185188, packets-received=(guint64)7571, bytes-received=(guint64)5488028, bitrate=(guint64)2169853, packets-lost=(int)-7571, jitter=(uint)0, sent-pli-count=(uint)0, recv-pli-count=(uint)0, sent-fir-count=(uint)0, recv-fir-count=(uint)0, sent-nack-count=(uint)0, recv-nack-count=(uint)0, recv-packet-rate=(uint)0, have-sr=(boolean)true, sr-ntptime=(guint64)16505995055692244676, sr-rtptime=(uint)2304241129, sr-octet-count=(uint)5185188, sr-packet-count=(uint)7571;
> 0:00:28.165112443 16035 0x7f925000d460 INFO              rtspstream rtsp-stream.c:2293:dump_structure: structure: application/x-rtp-source-stats, ssrc=(uint)4270178285, internal=(boolean)true, validated=(boolean)true, received-bye=(boolean)false, is-csrc=(boolean)false, is-sender=(boolean)true, seqnum-base=(int)402, clock-rate=(int)8000, octets-sent=(guint64)183329, packets-sent=(guint64)2292, octets-received=(guint64)183329, packets-received=(guint64)2292, bytes-received=(guint64)275009, bitrate=(guint64)96045, packets-lost=(int)-2292, jitter=(uint)0, sent-pli-count=(uint)0, recv-pli-count=(uint)0, sent-fir-count=(uint)0, recv-fir-count=(uint)0, sent-nack-count=(uint)0, recv-nack-count=(uint)0, recv-packet-rate=(uint)0, have-sr=(boolean)true, sr-ntptime=(guint64)16505995066923545501, sr-rtptime=(uint)3784938072, sr-octet-count=(uint)183329, sr-packet-count=(uint)2292;
> 0:00:29.879889382 16035 0x7f925000d400 INFO              rtspstream rtsp-stream.c:2293:dump_structure: structure: application/x-rtp-source-stats, ssrc=(uint)3732888534, internal=(boolean)true, validated=(boolean)true, received-bye=(boolean)false, is-csrc=(boolean)false, is-sender=(boolean)true, seqnum-base=(int)7956, clock-rate=(int)90000, octets-sent=(guint64)6369086, packets-sent=(guint64)9328, octets-received=(guint64)6369086, packets-received=(guint64)9328, bytes-received=(guint64)6742206, bitrate=(guint64)2154861, packets-lost=(int)-9328, jitter=(uint)0, sent-pli-count=(uint)0, recv-pli-count=(uint)0, sent-fir-count=(uint)0, recv-fir-count=(uint)0, sent-nack-count=(uint)0, recv-nack-count=(uint)0, recv-packet-rate=(uint)0, have-sr=(boolean)true, sr-ntptime=(guint64)16505995074288387916, sr-rtptime=(uint)2304665274, sr-octet-count=(uint)6369086, sr-packet-count=(uint)9328;

After banging my head for weeks I decided to ditch rtsp streaming and use hls. That works (as I test) but I am struggling with syntax.
I want to tee both video and audio so I can feed hlssink2. Please can someone show me

This is what I’got and what works

#! /bin/bash

gst-launch-1.0 $@ v4l2src device=/dev/video2 ! \
	video/x-h264,width=1920,height=1080,framerate=30/1 ! \
	h264parse ! \
	tee name=t \
	t. ! queue ! avdec_h264 ! xvimagesink \
	t. ! queue ! avdec_h264 ! xvimagesink \
	t. !  queue max-size-buffers=0 max-size-bytes=0 max-size-time=1000000000 ! \
	mux. pulsesrc device=0 ! \
	queue ! \
	audioconvert ! \
	audioresample ! audio/x-raw, rate=48000 ! \
	avenc_aac ! \
	mux. mp4mux name=mux ! \
	filesink location=try11.mp4

Thanks
James


More information about the gstreamer-devel mailing list