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

news2024/12/23 17:53:12

在这里插入图片描述

文章目录

  • 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视频流服务器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

富文本中的参数如何设置大小?

富文本里如果直接显示的数据可以随意调节大小,颜色等格式. 但是如果数据是动态的参数 就无法随意设置参数的格式了.当字数过多时就会出现显示不全,有没有大佬知道如何解决? wangEditor set HTML

Flink 数据集成服务在小红书的降本增效实践

摘要:本文整理自实时引擎研发工程师袁奎,在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分: 小红书实时服务降本增效背景Flink 与在离线混部实践实践过程中遇到的问题及解决方案未来展望 点击查看原文视频 & 演…

【学习笔记之vue】These dependencies were not found:

These dependencies were not found:方案一 全部安装一遍 我们先浅试一个axios >> npm install axios 安装完报错就没有axios了,验证咱们的想法没有问题,实行! ok

chapter 3 Free electrons in solid - 3.2 量子自由电子理论对一些现象的解释

3.2 自由电子气的热容 Heat capacity of free electron gas 3.2.1 计算自由电子的热容 Calculation of Heat Capacity of free Electrons T>0K, total energy of free electrons: E ∫ E d N 3 5 N e E F 0 [ 1 5 12 π 2 ( k B T E F 0 ) 2 ] E \int EdN \frac{3}{5}…

Unable to find resource t64.exe in package pip._vendor.distlib报错问题解决

Unable to find resource t64.exe in package pip._vendor.distlib报错问题解决 问题报错具体内容具体解决方案解决方法一解决方法二 问题报错具体内容 想要对python的版本进行一个升级,使用如下语句 python -m pip install --upgrade pip出现如下报错 Unable to find reso…

四维轻云场景更新之后,如何快速搭建场景?

「四维轻云」是一款轻量化的地理空间数据管理云平台,支持地理空间数据的在线管理、编辑以及分享。平台提供了项目管理、数据上传、场景搭建、发布分享、素材库等功能模块,支持团队多用户在线协作管理。 四维轻云平台是以项目的形式进行数据管理&#xf…

vue2中常用的组件封装技巧

文章目录 vue组件封装技巧1.props参数2.$attrs3.$emit4.$listeners5.插槽 vue组件封装技巧 1.props参数 最简单父传子的技巧&#xff0c;在父组件传入值&#xff0c;子组件声明props接收就可以了 如下&#xff1a; 父组件&#xff1a; <template><div id"ap…

两图看懂什么叫回调函数,使用回调函数实现多态

#include <stdio.h> //任务函数可以增加&#xff0c;任务使用框架函数保持不变&#xff0c;根据传入函数指针的不同调用不同的任务函数&#xff0c;从而实现了多态 //编写任务函数&#xff0c;任务函数可以增加 int Myadd1(int a, int b) { return ab; } int Mymux2(i…

Git 设置代理

Git 传输分两种协议&#xff0c;SSH和 http(s)&#xff0c;设置代理也需要分两种。 http(s) 代理 Command Line 使用 命令行 模式&#xff0c;可以在Powershell中使用以下命令设置代理&#xff1a; $env:http_proxy"http://127.0.0.1:7890" $env:https_proxy&quo…

【LeetCode】买卖股票的最佳时机最多两次购买机会

买卖股票的最佳时机 题目描述算法分析程序代码 链接: 买卖股票的最佳时机 题目描述 算法分析 程序代码 class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();vector<vector<int>> f(n,vector<int>(3,-0x3f3f3f))…

【从零学习python 】48.Python中的继承与多继承详解

文章目录 在Python中&#xff0c;继承可以分为单继承、多继承和多层继承。单继承 继承语法多继承 语法格式使用多继承时需要注意以下事项Python中的MRO新式类和旧式&#xff08;经典&#xff09;类 进阶案例 在Python中&#xff0c;继承可以分为单继承、多继承和多层继承。 单…

.NET把文件嵌入到程序集中的EmbeddedFile

简介 有时候我们在发布程序时&#xff0c;不想让客户看到项目中的文件&#xff0c;这时就可以使用.NET的嵌入文件功能&#xff08;虚拟文件&#xff09;。在.NET中&#xff0c;虚拟文件&#xff08;Virtual File&#xff09;是一种特殊类型的文件&#xff0c;它们在编译时被嵌…

手把手教你用Git备份保存代码到云端

第一步 &#xff1a;创建一个Gitee仓库,需要先下载安装git,在下载安装完成后&#xff0c;我们需要首先去Gittee官网上创建一个仓库 路径会自动生成&#xff0c;点击创建即可 第二步&#xff1a; 方法一&#xff1a;用图形化界面&#xff08;方便&#xff09; 下载&#xff…

听说换上人大金仓“自动挡”,效率提升4000多倍!

前情提要 随着数据规模以及应用业务场景复杂度的不断增加&#xff0c;更大规模数据量的数据库应用场景出现&#xff0c;对于传统关系型数据库的优化能力要求也更高。 因为SQL是解释性语言&#xff0c;用户可以指定要什么&#xff0c;而无需关心如何达成目的。所以对于同样一条S…

录取结果怎么公布?这个技术可以轻松实现

对于录取结果的公布&#xff0c;一直是考生和家长重点关注的话题&#xff0c;因此学校公布录取情况的方式和效果也一直是学校工作的重点和难点&#xff0c;传统的公布方式涉及技术开发和服务器搭建&#xff0c;开发周期也较长&#xff01;一般有经验的老教师都会选择使用易查分…

分布式 - 消息队列Kafka:Kafka 消费者消费位移的提交方式

文章目录 1. 自动提交消费位移2. 自动提交消费位移存在的问题&#xff1f;3. 手动提交消费位移1. 同步提交消费位移2. 异步提交消费位移3. 同步和异步组合提交消费位移4. 提交特定的消费位移5. 按分区提交消费位移 4. 消费者查找不到消费位移时怎么办&#xff1f;5. 如何从特定…

JavaSE-17 【异常】

第一章 什么是异常 1.1 异常的概念 异常&#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止 在Java中&#xff0c;异常本身就是一个类&#xff0c;产生异常就是创建一个异常对象并且抛出一个异常对象的过程 Java处理…

如何快速高效地进行 API 自动化测试

我们的研发团队最需要应对的就是各种新需求。软件越来越快的更新速度也让整个系统也变得越来越复杂&#xff0c;这让 测试 工作面临着巨大的挑战。测试人员必须与开发人员沟通&#xff0c;确定测试范围&#xff0c;并及时获取最新的接口用例数据来验证功能。但是&#xff0c;由…

【Apollo】Apollo版本特点与改进

特点与改进 概述里程碑6.0版本特点及改进7.0版本特点及改进8.0版本特点及改进代码差异 主页传送门&#xff1a;&#x1f4c0; 传送 概述 Apollo (阿波罗)是一个开放的、完整的、安全的平台&#xff0c;将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统&#xff0c;快…

【Web开发指南】MyEclipse XML编辑器的高级功能简介

MyEclipse v2023.1.2离线版下载 1. 在MyEclipse中编辑XML 本文档介绍MyEclipse XML编辑器中的一些可用的函数&#xff0c;MyEclipse XML编辑器包括高级XML编辑&#xff0c;例如&#xff1a; 语法高亮显示标签和属性内容辅助实时验证(当您输入时)文档内容的源&#xff08;Sou…