live555在Windows WSL2中编译、运行,搭建RTSP流服务器


文章目录

  • 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官网
live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第1张图片


 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是否被编译出来:
live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第2张图片


下载测试视频文件:

当然,用其他的视频文件也可以。


2.3 安装ffmpeg

live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第3张图片


2.4 安装opencv-python

在这里插入图片描述


2.5 视频文件格式转换

ffmpeg -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.264

live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第4张图片


在这里插入图片描述


将格式转换后的视频文件拷贝到/mediaServer/路径下:
在这里插入图片描述


2.6 启动推流

 ./live555MediaServer

live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第5张图片
可以看到,服务端已经启动,连接服务端的URL是:rtsp://192.168.181.1:8554/,我们拷进去的视屏文件名字是test.264,那这里的就是test.264。
至此,推流服务端的准备工作都已完成。


2.6 安装VLC,验证

现在有了服务端,必须要有客户端来验证,所以需要用到VLC,来验证推流功能是否正常。
前往VLC官网下载Windows版本的VLC:
live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第6张图片


安装VLC,打开媒体–>打开网络串流:
live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第7张图片


点击播放,效果如下:
live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第8张图片


至此,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()

live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第9张图片


运行接收程序:

python untitled.py

live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第10张图片
显示效果如下:
live555在Windows WSL2中编译、运行,搭建RTSP流服务器_第11张图片


参考

【1】Ubuntu用live555快速搭建一个RTSP视频流服务器

你可能感兴趣的:(AI,live555,RTSP推流,Windows,WSL2,VLC)