<div dir="ltr">Hi,<br><br>I am developing an Android RTSP player using Gstreamer 1.0. The basic requirement is to make the player load RTSP stream fast and and also allow the user to take snapshots from the video and save it as an image file, without influencing the video stream.<br><br>I forked the demo app and made some small changes on the demo code to meet the basic requirements. This is the forked repo: <a href="https://github.com/liutingdu/gst-launch-remote">https://github.com/liutingdu/gst-launch-remote</a><br><br>The pileline I am using is:<br><br>rtspsrc protocols=4 location=rtsp://<a href="http://172.16.0.21:9021/h264/ch1/main/av_stream">172.16.0.21:9021/h264/ch1/main/av_stream</a> user-id=admin user-pw=12345 latency=0 drop-on-latency=1 ! decodebin ! videoconvert ! autovideosink<div><br></div><div>While the video is playing,  I tried to launch a new pipeline for taking snapshot using filesink:</div><div><br></div><div>rtspsrc protocols=4 location=rtsp://<a href="http://172.16.0.21:9021/h264/ch1/main/av_stream">172.16.0.21:9021/h264/ch1/main/av_stream</a> user-id=admin user-pw=12345 latency=0 drop-on-latency=1 ! jpegenc ! filesink location=/sdcard/snapshot.jpeg<br><br></div><div>It saves the snapshot image but always interrupt the video that is currently playing, tried to launch the pileline in a new Java thread but got no luck.</div><div><br></div><div>After searching around, there seems are some possible approaches:</div><div><br></div><div>1. Use the 'tee' plugin to attach and detach the filesink</div><div><br></div><div>    rtspsrc ...... ! decodebin ! tee name=t ! queue ! videoconvert ! autovideosink t. ! queue ! jpegenc ! filesink location=/snapshot.jpeg</div><div><br></div><div>    But by simply launching this pipeline, it doesn't seem to be working.</div><div><br></div><div>    Maybe it requires making lots of changes on the C code to dynamically attach new pipeline?</div><div><br></div><div>2. I've got a suggestion from someone who knows about Gstreamer, to use 'tee' with 'intervideosink' and 'intervideosrc'.</div><div><br></div><div>    But the 'intervideosink' element is not installed on the Android distribution at all?</div><div><br></div><div>Then I am stuck with all approaches.. so the questions are: </div><div><br></div><div>1. Is any of the approaches listed above will definitely work and is leading me to the right direction?</div><div>2. If any of them will work, what are the necessary changes that need to be made, and is there any detailed document or sample available somewhere?</div><div>3. If none of them is correct, any suggestions?</div><div><br></div><div>I am completely new to C and Gstreamer, any help would be highly appreciated.</div><div><br></div><div>Thanks in advance,</div><div><br></div><div>Liuting</div><div><br></div><div><br></div></div>