Project

General

Profile

Alternative Idea #990

Updated by Hammel 10 months 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