Project

General

Profile

Alternative Idea #990

Updated by Hammel over 1 year ago

In order to provide support for RTSP only cameras (which are higher end but better quality), the following script can be used.    It just requires a properly build ffmpeg and the v4l2loopback kernel module to convert the RTSP stream into MJPEG, which could then be streamed via mjpeg-streamer.    It creates /dev/video2 and /dev/video3 as separate video devices but there is only one ffmpeg streaming to /dev/video2 (/dev/video3 is not used in this example, but could be to create multiple mjpeg streams for the same camera. 

 <pre><code class="shell"> 
 #!/usr/bin/bash 
 CAMERA_IP="192.168.101.47" 
 RESOLUTION="1280x720" 

 # List video devices 
 echo "Video Devices:" 
 ls -1 /dev/video* 

 # Create a virtual webcam 
 sudo modprobe v4l2loopback devices=2 video_nr=2,3 max_buffers=2 card_label="QSC PTZ" exclusive_caps=1 
 echo "Video Devices:" 
 ls -1 /dev/video* 
 sleep 2 

 # Streams a remote RTSP camera to virtual webcam. 
 ffmpeg -rtsp_transport tcp -protocol_whitelist rtp,file,udp,tcp -stream_loop -1 -re -i rtsp://${CAMERA_IP} -f v4l2 -vf format=yuv420p -vcodec mjpeg -s ${RESOLUTION} -threads 0 /dev/video2 

 # Remove the V4l2 loopback module 
 sleep 2 
 sudo rmmod v4l2loopback 

 </code></pre> 

 It seems this could be an extension to the current webcam request by adding MA_RTSP to MT_STREAM. 

Back