linux / web

ipcam to webcam

將ipcam的rtsp訊號變成webcam應用,測試了許多方案,這個方式目前最滿意
但是需要有個中間的伺服器將rtsp轉成mjpeg
首先將會議的電腦安裝IP Camera Adapter目前版本4.9

https://ip-webcam.appspot.com/

IPCamAdapter_x32.msi
IPCamAdapter_x64.exe

這個Adapter軟體只支援mpeg,所以需要裝lighttpd+ffmpeg做轉檔串流

原參考網址
https://stevethemoose.blogspot.com/2021/07/converting-rtsp-to-mjpeg-stream-on.html

#安裝程式

apt-get install lighttpd
apt-get install ffmpeg

#開啟cgi-bin功能

cd /etc/lighttpd/conf-enabled/
ln -s ../conf-available/10-cgi.con

#增加串流功能
重點:server.stream-response-body = 2

server.modules += ( "mod_cgi" )

$HTTP["url"] =~ "^/cgi-bin/" {
        server.stream-response-body = 2
        cgi.assign = ( "" => "" )
        alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )
}
systemctl restart lighttpd
mkdir /var/www/cgi-bin
vi webcamstream
chmod 777 webcamstream

#連續串流影片

#!/bin/bash

echo "Content-Type: multipart/x-mixed-replace;boundary=ffmpeg"
echo "Cache-Control: no-cache"
echo ""
ffmpeg -rtsp_transport tcp -i "rtsp://admin:PRTESE@192.168.31.216:554" -q:v 5 -s 320x240 -f mpjpeg -an -

-rtsp_transport tcp 需放在輸入前,避免破圖
-q:v 參數1的時候畫質最好,但是延遲很大,可以測試調整
-s 輸出畫質尺寸
-an 關閉音效

#測試

http://ip/cgi-bin/webcamstream

#debug

cd /var/www/cgi-bin
./webcamframe | hd | head

Sample output of it working correctly is shown below. The conversion and pipe errors are OK, they are just due to head stopping the output early.

#取單張圖片模式

#!/bin/bash

echo "Content-Type: image/jpeg"
echo "Cache-Control: no-cache"
echo ""
ffmpeg -i "rtsp://admin:PRTESE@192.168.31.216:554" -vframes 1 -f image2pipe -an -

tapo c210

rtsp://josh123:josh123@192.168.31.167/stream1
rtsp://josh123:josh123@192.168.31.167/stream2

EZVIZ C6CN

rtsp://admin:PRTESE@192.168.31.203

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。