Hi, I use Gstreamer 1.0 to receive and decode Opus stream from RTP/UDP.
To do this I use a 'rtpjitterbuffer' plugin between 'udpsrc' and 'rtpopusdepay'. My pipeline looks like this : udpsrc uri='udp://hostname:port' caps='-some-long-caps-' ! rtpjitterbuffer name=jbuf latency=70 drop-on-latency=True ! rtpopusdepay ! opusdec ! … If I do (using python3) : jbuf.get_property('latency') I get 70, and audio stream is ~70ms late If I do : jbuf.set_property('latency', 700) jbuf.get_property('latency') I get 700, value seems set correctly… But in fact nothing happens : audio stream is always ~70ms late, and if I create disturbance on the network, rtpjitterbuffer seems to drop when packet are 70ms late, not 700ms late ! For comparison, when I change another property on another plugins ('freq' fort 'audiotestsrc', 'bitrate' for 'opusenc'…), change occurs immediately. Also, I have tried to restart the plugin doing something like this : pipeline.set_state(Gst.State.NULL) pipeline.set_state(Gst.State.PLAYING) The pipeline does'nt restart correctly and I get this (GST_DEBUG=3) : 0:43:56.642353180 7732 0x9ef70a0 WARN bin gstbin.c:2488:gst_bin_do_latency_func:<pipeline2> failed to query latency <enum GST_STATE_CHANGE_ASYNC of type StateChangeReturn> >>> 0:43:56.666258378 7732 0x9ded460 WARN gstrtpjitterbuffer gstrtpjitterbuffer.c:2114:gst_rtp_jitter_buffer_sink_query:<jbuf:sink> unhandled serialized query ** (python3:7732): CRITICAL **: gst_audio_decoder_finish_frame: assertion `buf == NULL || GST_AUDIO_INFO_IS_VALID (&ctx->info)' failed 0:43:57.468472281 7732 0x9ded460 WARN basesrc gstbasesrc.c:2791:gst_base_src_loop:<src> error: Erreur interne de flux de données. 0:43:57.468568945 7732 0x9ded460 WARN basesrc gstbasesrc.c:2791:gst_base_src_loop:<src> error: streaming task paused, reason error (-5) So, rtpjitterbuffer seems to uses latency property only at startup, and does not support the changes on the fly. I use Debian (squeeze/sid), and "gst-inspect-1.0 rtpjitterbuffer" said me : Version: 1.0.4 Source release date: 2012-12-18 Is this normal? Is this a bug? How can I change rtpjitterbuffer on the fly ? Thank you in advance for your answers -- Thomas DEBESSE RCF Méditerrannée _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi all,
1. Can somebody tell me what is the difference between rtpbin latency and jitterbufer latency. 2. Can we use both of them togather like: my pipeline for receiving videos is jitterbuffer = gst_element_factory_make ("gstrtpjitterbuffer","jitterbuffer"); g_object_set(G_OBJECT (jitterbuffer), "latency",100, NULL); gst_bin_add_many (GST_BIN(pipeline),jitterbuffer,videodepay,h264parse,videodec,videoqueue,videoconv, videosink,NULL); rtpbin = gst_element_factory_make ("gstrtpbin", "rtpbin"); g_object_set (G_OBJECT (rtpbin),"latency",100,NULL); |
On Do, 2016-03-24 at 19:20 -0700, gagankumarnigam wrote:
> Hi all, > > 1. Can somebody tell me what is the difference between rtpbin latency and > jitterbufer latency. > 2. Can we use both of them togather like: my pipeline for receiving videos > is There is no difference between the two. rtpbin's latency is just proxied to the properties on the rtpjitterbuffer(s). -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
In reply to this post by gagankumarnigam
Le jeudi 24 mars 2016 à 19:20 -0700, gagankumarnigam a écrit :
> 1. Can somebody tell me what is the difference between rtpbin latency > and > jitterbufer latency. > 2. Can we use both of them togather like: my pipeline for receiving > videos > is rtpbin simply propagate that property to it's jitterbuffer. Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (188 bytes) Download Attachment |
Hi Nicolos,
i am having another problem not able to solve it. I am having UAV video (mpeg2 video) which is in USB drive(normal pen drive for storing data). This USB drive is connected to my DVD player from which i am taking video feed (out via RSA cable) to my laptop via analog port. And i am using the pipeline which is given below: gst-launch v4l2src device=/dev/video0 ! ffenc_mpeg2video ! ffmpegcolorspace ! xvimagesink but this can't play the video or not getting any output nor any error printed on terminal. All relative codec are installed. However same procedure is used for other formats like AVI i am getting video on my laptop. Can you please help me to find out what is the problem? Thanx |
Free forum by Nabble | Edit this page |