前言
live555是一個為流媒體提供解決方案的跨平台的C++開源項目,它實現了對標准流媒體傳輸是一個為流媒體提供解決方案的跨平台的C++開源項目,它實現了對標准流媒體傳輸協議如RTP/RTCP、RTSP、SIP等的支持。Live555實現了對多種音視頻編碼格式的音視頻數據的流化、接收和處理等支持,包括MPEG、H.263+、DV、JPEG視頻和多種音頻編碼。同時由於良好的設計,Live555非常容易擴展對其他格式的支持。目前,Live555已經被用於多款播放器的流媒體播放功能的實現,如VLC(VideoLan)、MPlayer。
源碼下載
官網:http://www.live555.com
目前官網的服務器在維護中,點擊其中 source code 即可下載源碼了。
源碼文件:live.2019.03.06.tar.gz,版本:2019.03.06
ubuntu下安裝
解壓
tar -xvf live.2019.03.06.tar.gz
進入解壓目錄,如下:
生成makefiles文件,后面的參數linux-64bit是安裝的平台,裝在其他平台的話更換為config.后面的后綴即可。
./genMakefiles linux-64bit
sudo apt-get install libssl-dev
make
當前目錄下會生成mediaServer 文件夾,有一個live555MediaServer可執行文件。
cd mediaServer
./live555MediaServer
執行如下:
把一個視頻或音頻文件放入當前目錄(格式必須為上述列表的格式),運行./live555MediaServer即開啟的RTSP 服務器。
用vlc軟件輸入流媒體的地址即可播放。
如下,可直接使用python播放:
import cv2
if __name__ == '__main__':
carId="rtsp://192.168.187.17:80/test.ts"
capture = cv2.VideoCapture(carId)# 打開視頻sys.argv[1]
while True:
#讀取幀,read()方法就是將grab和retrieve整合到了一個調用函數
_,frame = capture.read()
if frame is None:
break
cv2.imshow('image', frame)
cv2.waitKey(1) #讓你的程序不直接退出
capture.release()
cv2.destroyAllWindows()#清除所有show出來的圖像\
pass