Hi everybody,
I am struggling for days on this. I have a an application in which I received a stream for UDP thanks to udpsrc. Streams received can have different codecs (RAW, J2K, MPEG4). I am decoding it if necessary. This pipeline is sink into an appsink element. So it looks like : udpsrc ! rtpdepayloader [rtpvrawdepay, rtpj2kdepay or rtpmp4vdepay] ! (decoder) ! appsink On a different pipeline I retrieve this first stream through the appsrc element. There I would be able to encode it to a different format and sink to to another IP address thanks to udpsink. So it would look something like: appsrc ! encoder ! rtppayloader ! udpsrc But would like to perform a typefind after the encoder: appsrc ! encoder ! typefind ! rtppayloader ! udpsrc The elements appsink and appsrc are synchronize over time: each time a sample arrived on appsink it is push to appsrc using a call back. So that I can choose the right payloader. However, the application blocked on the execution of the typefind, and I checked the logs and saw that there a problem with keyframes lost (obtained with GSt_DEBUG=3): WARN v4l2src gstv4l2src.c:829:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 10 - ts: 0:00:00.948148955 So I tried to add queue before and after encoders, but it does not work. Does any one have an idea on how I could not to lost keyframes? cheers, Hoël _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le jeudi 14 avril 2016 à 18:24 +0200, Hoel Vasseur a écrit :
> WARN v4l2src gstv4l2src.c:829:gst_v4l2src_create:<v4l2src0> lost > frames detected: count = 10 - ts: 0:00:00.948148955 > > So I tried to add queue before and after encoders, but it does not > work. > > Does any one have an idea on how I could not to lost keyframes? This warning means that the driver dropped a frame (you application is not reading fast enough). It does not mean this frame was a keyframe. Note that a control was added since 4.6 to be able to request a new keyframe, it's usually not implement. You can control the keyframe distance though. Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thanks for your reply Nicolas,
Yes I am sorry I said "keyframes", when I meant frames. I am aware the there is a problem with the speed of reading. I assumed it happens around parts of my pipeline that require a lot of CPU (like encoding and decoding). So I was hoping that I could put an element in my pipeline to stores buffers like a queue but it does not work. It there any way to do that? Hoel ----- Mail original ----- > De: "Nicolas Dufresne" <[hidden email]> > À: "gstreamer-devel" <[hidden email]> > Envoyé: Jeudi 14 Avril 2016 21:11:11 > Objet: Re: Typefind block - lost frames detected > Le jeudi 14 avril 2016 à 18:24 +0200, Hoel Vasseur a écrit : >> WARN v4l2src gstv4l2src.c:829:gst_v4l2src_create:<v4l2src0> lost >> frames detected: count = 10 - ts: 0:00:00.948148955 >> >> So I tried to add queue before and after encoders, but it does not >> work. >> >> Does any one have an idea on how I could not to lost keyframes? > > This warning means that the driver dropped a frame (you application is > not reading fast enough). It does not mean this frame was a keyframe. > Note that a control was added since 4.6 to be able to request a new > keyframe, it's usually not implement. You can control the keyframe > distance though. > > Nicolas > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |