Π― Ρ ΠΎΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ rtsp, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΊΠ°ΠΌΠ΅ΡΡ raspberry, ΠΏΠΎΠΊΠ°Π΄ΡΠΎΠ²ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ python ΠΈΠ»ΠΈ C ++.
.py
import cv2
rtsp_url = "rtsp://192.168.55.151:8554/stream.sdp"
video = cv2.VideoCapture(rtsp_url)
while(1):
ret, frame = video.read()
cv2.imshow('VIDEO', frame)
cv2.waitKey(1)
ΠΠΎΡΠΎΠΊ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΌΠ°Π»ΠΈΠ½ΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ vlc: raspivid -o - -t 0 -hf -w 640 -h 480 -fps 30 | cvlc stream:///dev/stdin --sout "#rtp{sdp=rtsp://192.168.55.151:8554/stream.sdp}" :demux=h264
ΠΠΎΡΠΎΠΊ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠΊΡΡΡ ΠΈΠ· ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΠ΅Π»Ρ vlc Ρ ΠΏΠΎΠΌΠΎΡΡΡ: rtsp: //192.168.55.151 : 8554 / stream.sdp
ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π° Python Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ: method SETUP failed: 461 Client error
(ΠΎΡΠΈΠ±ΠΊΠ° ffmpeg)
ΠΡΠ»ΠΈ Ρ Π·Π°ΠΏΡΡΡΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ffmpeg: ffmpeg -rtsp_transport tcp -i rtsp://192.168.55.151:8554/stream.sdp
Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡ ΠΆΠ΅ ΡΠ°ΠΌΡΡ ΡΠΎΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ: ΠΎΡΠΈΠ±ΠΊΠ° SETUP: 461 ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Protocol not supported
ΠΡΠ»ΠΈ Ρ Π·Π°ΠΏΡΡΡΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ffmpeg: ffmpeg -rtsp_transport udp -i rtsp://192.168.55.151:8554/stream.sdp
ΠΏΠΎΡΠΎΠΊ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ.
Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΈΠ»ΠΈ Ρ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Ρ Π½Π΅ ΡΠ°ΠΊ? ΠΠΎΠ³Ρ Π»ΠΈ Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π² ΠΊΠΎΠ΄Π΅ OpenCV?
Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ±ΠΎΠΈ Π² ΡΠ΅ΡΠΈ / ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠ° ΠΈ Ρ. Π., OpenCV ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP . ΠΠ°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉ rstp-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ TCP ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΡΠΊΡΠ½Π΄ OpenCV, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ FFmpeg (Gstreamer?).
ΠΡΡΠ°ΡΠΈ, Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π½Π° ΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ OpenCV Q / A: http://answers.opencv.org
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ UV4L Π΄Π»Ρ ΠΊΠ°ΠΌΠ΅ΡΡ raspberry, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΠΌΠ΅ΡΡ URL-Π°Π΄ΡΠ΅Ρ Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ iwth opencv ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Ρ ΡΠΆΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π».
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ UV4L Π΄Π»Ρ ΠΊΠ°ΠΌΠ΅ΡΡ raspberry, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΠΌΠ΅ΡΡ URL-Π°Π΄ΡΠ΅Ρ Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ iwth opencv ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Ρ ΡΠΆΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π».
Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ?
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ?