gst-launch-1.0 \ rtspsrc name=src location="RTSP_URL" latency=200 ! \ rtph265depay ! h265parse ! vpudec ! \ timeoverlay font-desc="Sans,18" ! imxvideoconvert_g2d ! "video/x-raw,format=RGBx,width=1280,height=720" ! \ tee name=vraw_tee \ src. ! rtppcmudepay ! tee name=araw_tee \ vraw_tee. ! queue max-size-buffers=1 leaky=2 ! \ videorate ! videoscale ! "video/x-raw,width=640,height=360,framerate=1/10" ! \ jpegenc quality=50 ! \ multifilesink name=thumb_sink location="/share/camera/CAMERA_ID/thumbnail/thumb.jpeg" max-files=1 \ vraw_tee. ! queue max-size-buffers=30 leaky=2 ! \ vpuenc_h264 gop-size=15 bitrate=1500 ! \ tee name=enc_tee \ araw_tee. ! queue max-size-buffers=30 leaky=2 ! \ mulawdec ! audioconvert ! audioresample quality=4 ! avenc_aac bitrate=8000 ! aacparse ! \ mux.audio_0 \ enc_tee. ! queue max-size-buffers=30 leaky=2 ! \ h264parse ! \ mux.video_0 \ mp4mux name=mux faststart=true streamable=true fragment-duration=1000 ! \ splitmuxsink name=rec_sink max-size-time=15000000000 send-keyframe-requests=true location="/share/camera/CAMERA_ID/record/%F_%H-%M-%S.mp4" \ enc_tee. ! queue max-size-buffers=30 leaky=2 ! \ h264parse ! "video/x-h264,stream-format=byte-stream,alignment=au" ! \ appsink name=webrtc_video_sink sync=false drop=true max-buffers=2 \ araw_tee. ! queue max-size-buffers=30 leaky=2 ! \ appsink name=webrtc_audio_sink sync=false drop=true max-buffers=2