RTSP協議進行視頻取流的方法、注意點及python實現


在視頻應用中,我們一般都需要基於攝像頭或錄像機的視頻流進行二次開發,那么就涉及到如何將視頻流取出來。

在攝像機安裝好之后,一般是通過局域網與本地的服務器進行連接,要取錄像機的視頻流就要在局域網范圍內進行操作。

步驟:

1)獲取攝像機的IP地址、配置的用戶名和密碼,按照格式寫出RTSP協議地址碼

2)用VLC工具連接,測試是否可以取出視頻流

3)python中通過opencv讀取視頻流

詳細說明:

1)攝像機的IP地址、配置的用戶名和密碼是已知的參數,在安裝的時候即已配置好。RTSP協議地址碼根據所用攝像機的型號來定,以海康攝像頭為例(來自於海康的客服):

目前海康錄像機、網絡攝像機,網絡球機的RTSP單播取流格式如下(車載錄像機不支持RTSP取流):

rtsp://用戶名:密碼@IP:554/Streaming/Channels/101

錄像機示例:

取第1個通道的主碼流預覽

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101

取第1個通道的子碼流預覽

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/102

取第1個通道的第三碼流預覽

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/103

取第12個通道的主碼流預覽

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/1201

網絡攝像機/網絡球機示例:

取主碼流的URL:

rtsp://admin:hik123456@192.168.1.64:554/Streaming/Channels/101

 如果是多播取流的話,則使用以下路徑

rtsp://用戶名:密碼@IP:554/Streaming/Channels/101?transportmode=unicast

錄像機示例:

取第1個通道的主碼流預覽

rtsp://admin:hik12345@10.16.4.25:554/Streaming/Channels/101?transportmode=unicast

 

2)我一般先用VLC工具測試是否可以取出視頻流,當然這一步不是必須的。

點擊 媒體-->打開網絡串流-->輸入RTSP地址碼

如果能將實時的視頻畫面取出來,就表明RTSP協議地址碼是正確的。

 

3)用python代碼進行取流

代碼如下:

import cv2

cap = cv2.VideoCapture('你的RTSP協議地址碼')

print(cap)
ret,frame = cap.read()
while ret:
    ret,frame = cap.read()
    cv2.imshow("current frame",frame)
    cv2.imwrite('frame.jpg', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()
cap.release()

 

最后在此基礎上進行python的二次開發。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM