文章目录
- 1. 背景
- 2. 实施步骤
- 2.1 下载live555安装包
- 2.2 解压压缩包
- 2.3 编译源码
- 2.3 安装ffmpeg
- 2.4 安装opencv-python
- 2.5 视频文件格式转换
- 2.6 启动推流
- 2.6 安装VLC,验证
- 3. 用opencv-python接口接收视频流
- 参考
1. 背景
想要通过RTSP往opencv的接口中推流,然后做一下yolo的推理等练习,本篇主要记录如何搭建RTSP推流服务器,本篇的环境是Windows WSL2,当然也可以在Linux PC中搭建,方法一致,感兴趣的小伙伴可以试试。
博主的环境信息如下:
查阅资料,一般都是通过live555作为推流服务器。
2. 实施步骤
2.1 下载live555安装包
前往官网,下载最新版本的live555安装包。
live555官网
wget http://www.live555.com/liveMedia/public/live.2023.07.24.tar.gz
2.2 解压压缩包
解压压缩包:
tar -xvf live.2023.07.24.tar.gz
2.3 编译源码
编译源码:
cd live
./genMakefiles linux-64bit
make
发现编译失败:
尝试解决编译问题,但仍无法编译通过。
openrtsp 2023.06.16 build issue #45
于是,放弃最新版本,下载历史版本,在下面的网页中找到live.2021.11.23.tar.gz这个版本,并下载。
live555的历史版本
按照前面的方法,解压、编译:
编译OK。
查看/mediaServer/路径下live555MediaServer是否被编译出来:
下载测试视频文件:
当然,用其他的视频文件也可以。
2.3 安装ffmpeg
2.4 安装opencv-python
2.5 视频文件格式转换
ffmpeg -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.264
将格式转换后的视频文件拷贝到/mediaServer/路径下:
2.6 启动推流
./live555MediaServer
可以看到,服务端已经启动,连接服务端的URL是:rtsp://192.168.181.1:8554/,我们拷进去的视屏文件名字是test.264,那这里的就是test.264。
至此,推流服务端的准备工作都已完成。
2.6 安装VLC,验证
现在有了服务端,必须要有客户端来验证,所以需要用到VLC,来验证推流功能是否正常。
前往VLC官网下载Windows版本的VLC:
安装VLC,打开媒体–>打开网络串流:
点击播放,效果如下:
至此,live555搭建的RTSP推流服务器搭建成功。
3. 用opencv-python接口接收视频流
在Windows上准备接收程序:
import numpy as np
import cv2
# cap = cv2.VideoCapture(1)
cap = cv2.VideoCapture("rtsp://192.168.181.1:8554/test.264")
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
运行接收程序:
python untitled.py
显示效果如下:
参考
【1】Ubuntu用live555快速搭建一个RTSP视频流服务器