前言
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