 <p>Another tee - encoder problem.. there is problem with tee that it does not redistribute latency event or something resulting in queue hanging.. you can use <a href="http://gstreamer-devel.966125.n4.nabble.com/Pipeline-Freezes-When-Adding-In-Tee-With-x264enc-td4301890.html" rel="nofollow">bigger queue sizes</a> its about x264enc but the principle is the same - set queue to unlimited buffers (or some big value - but this is just fine tunning)</p> <p>Try to experiment with the values and write back if not working - maybe there is different problem with vpuenc.</p> <pre><code>gst-launch v4l2src device=/dev/video2 ! 'video/x-raw-yuv,width=704,height=576, framerate=25/1' ! tee name=liveTee ! queue name=mfw_queue max-size-time=0 max-size-bytes=0 max-size-buffers=0 ! mfw_isink liveTee. ! queue name=vpuenc_queue ! videorate ! vpuenc ! avimux ! filesink location=/home/RecordingFile.avi </code></pre> <p>I set bigger queue on opposite side of vpuenc as the problem that happens is that vpuenc buffers a lot of data which causes to symetrically buffer data at the other branch of tee which causes the queue to block.</p> <p>If you can check if this is indeed the cause of your problem try debugging with:</p> <pre><code>GST_DEBUG=queue_dataflow:5,3 your ! pipe ! etc </code></pre> <p>and look which queue was blocked and when.. do not forget to give queues names so you can track which one was blocked..</p> <p>Also you can experimentaly use leaky attribute for queue like</p> <pre><code>! queue leaky=2 ! ... </code></pre> <p>or maybe leaky=1 will do the trick (try that on queue which is on mfw_isink branch of tee)</p>