<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div>Hi,<br><br></div>I'm developing a video recording/broadcasting server with gstreamer and python.<br><br></div>Right now I'm facing 2 tasks:<br><br></div>- recording video from different sources (rtsp and http) and with different codecs (mjpeg,mpeg4,h264,h265) in a series of mkv files<br><br></div>- broadcasting video from my archive to different clients using http and rtsp.<br><br></div>Before discovering the playbin magic I used a number of template pipelines to capture video from source, pass it to multifilesink and ffmpeg to finish and store them in a convinient way, But if I could somehow feed my uri to playbin and get an undecoded video/audio stream from it, I would be able to put all my templates to single gstreamer pipeline: playbin uri=rtsp... (magic here) ! mpegtsmux ! multifilesink...  And that would be very convenient.<br><br></div>The second task is more ambitious. I want to feed the recorded video to my clients as if it was a live source. Right now I have a file tree:<br><br></div>/basedir/cam_name/yearmonthday/hour/minutesecond-duration.mp4<br><br></div>Example:<br><br>archive-test:/archive/video/multi/160327/21 # ls<br>0120-00125.mp4  0730-00120.mp4  1335-00120.mp4  1940-00125.mp4  2545-00120.mp4  3150-00120.mp4  3755-00120.mp4  4400-00125.mp4  5005-00125.mp4  5610-00125.mp4<br>0325-00120.mp4  0930-00120.mp4  1535-00125.mp4  2145-00120.mp4  2745-00125.mp4  3350-00125.mp4  3955-00125.mp4  4605-00120.mp4  5210-00120.mp4  5815-00120.mp4<br>0525-00125.mp4  1130-00125.mp4  1740-00120.mp4  2345-00120.mp4  2950-00120.mp4  3555-00120.mp4  4200-00120.mp4  4805-00120.mp4  5410-00120.mp4<br><br></div>At some point in the future I recieve a request to play video from cam multi from  21:05 160327. I can then find my started file, construct a pipeline with playbin and multisocketsink, fast forward to the desired time and replace the uri of the file upon each about-to-finish signal. The complex part is that I also need an undecoded video stream since I plan to broadcast it to remote client without re-encoding.<br><br></div>So my questions are:<br><br></div>1) Is this design possible?<br></div>2) Where can I find some examples of such pipelines, preferably in python.<br><br></div>Thanks in advance!  <br></div>