<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
Dear all,<br>
<br>
I am using a pipeline to do video streaming with the following
structure:<br>
<br>
V4LSRC -> H264_ENCODER -> MPEGTSMUXER -> UDPSINK<br>
<br>
If I insert a print message into the H264 encoder when some frame must
be discarded because it is late then it happens this:<br>
<br>
1.- Using a high QP (> 25), there is no problem (no frames are
skipped at all).<br>
<br>
2.- When I use a smaller QP (< 10), the encoder element starts
skipping frames (and printing the message I added). But if I change the
MPEGTS and the UDPSINK by a FAKESINK, no frames are skipped at all. So
problem is not the video source and the encoder! But I have also
checked that the MPEGTS muxer and the UDPsink give speed enough for the
bitrate, so they are not the problem neither! Splitting the pipeline
every element is doing well, but the whole pipeline does not work!<br>
<br>
Why? What is happening? It is clear that when you analize each part of
the pipeline, it works perfectly, but when you connect all the elements
they block each other or something like that, and some frames must be
skipped. How can I optimize this? How can I do to have the video source
plus the encoder working "independently" from the other part of the
chain? How many threads are working there? (I have added a 'queue'
element after the encoder, without improvement).<br>
<br>
Thank you very much, any help is appreciated.<br>
Thanks, LD.<br>
<br>
PS: The real pipeline is: <i>gst-launch-0.10 v4lsrc capture-width=720
capture-height=576 fps-n=25 fps-d=1 ! hwencoder width=720 height=576
codec=h264 qp=20 iinterval=50 framerate=25 !
'video/x-h264,width=720,height=576,framerate=25/1' ! mpegtsmux !
rtpmp2tpay ! udpsink host=192.168.0.5 port=5000</i><br>
</body>
</html>