RTSP的WEB播放方案Streamedian

2023-05-16

因项目需要,查找rtsp视频流web播放方法,这是文档
原文文档连接:https://streamedian.com/docs/介绍
Streamedian是一个 Javascript 库,它实现了 RTSP 客户端,用于在浏览器中观看直播流,直接在标准 HTML 元素之上工作。它需要支持带有媒体源扩展的 HTML5 视频才能播放。播放器还依赖服务器端 websocket 代理将 RTSP 流重新传输到浏览器。

它通过将 RTP H264 和 AAC 有效负载混合到 ISO BMFF (MP4) 片段中来工作。
Streamedian是使用 ECMAScript 2015 标准编写的。

浏览器支持

  • Firefox v.42+;
  • Chrome v.23+;
  • OSX Safari v.8+;
  • MS Edge v.13+;
  • Opera v.15+;
  • Android browser v.5.0+;
  • IE Mobile v.11+;
    iOS Safari 和 Internet Explorer 不支持。

从 GitHub 安装:

Only player sources

npm install git://github.com/Streamedian/html5_rtsp_player.git

浏览器端

使用 RTSP URL 附加 HTML 视频

<video id="test_video" controls autoplay src="rtsp://your_rtsp_stream/url"></video>

或者

<video id="test_video" controls autoplay>
    <source src="rtsp://your_rtsp_stream/url">
</video>

您可以通过传递 data-ignore=“true” 来忽略源

<video id="test_video" autoplay> 
    <source src="natively_supported_video_url" data-ignore="true"> 
    <source src="rtsp://your_rtsp_stream/url"> 
</video>

如果浏览器可以播放该源,则不会为该元素初始化播放器。将编译后的脚本包含到您的 HTML 中:

<script src="free.player.3.1.js"></script> 
<script src="libde265.js"></script>

“free.player.3.1.js”和“libde265.js”文件位于“HTML5 RTSP player”存档中。点击链接下载 “HTML5 RTSP 视频播放器”
在你的 js 中设置播放器:

if (window.Streamedian) { 
    var playerOptions = { 
        socket: "ws://localhost:8088/ws/",             
        redirectNativeMediaErrors : true, 
        bufferDuration: 30, 
    }; 

    player = Streamedian.player("test_video", playerOptions); 
}

服务端

  • Windows 安装程序
  • Mac 安装程序
  • Ubuntu/Debian/Raspberry 安装程序
  • Fedora/CentOS 安装程序

播放器架构
Player 由三个主要模块组成:transport、client和remuxer。
transport负责数据传递和数据排队。它应该触发connected、disconnected和data事件。接收到数据后,transport应将其推送到 dataQueue 并触发data事件。transport的基类可以在 core/base_transport 中找到。默认实现依赖于 websocket 代理的 WebsocketTransport。

client侦听数据事件,将其解析为基本流数据包,并将解析后的数据排入自己的队列。client可以通过示例事件将排队的缓冲区传递给 remuxer。要识别流跟踪客户端应该触发跟踪事件。准备就绪后,flush 事件可用于构建媒体片段并将其传递给视频演示者。客户端的基类可以在 core/base_client 中找到。默认客户端是通过 websocket 传输的 RTSP 客户端。

remuxer为视频演示者准备媒体片段并推送它。目前只有基于媒体源扩展的视频演示器可用。Remuxer 将数据收集到 mp4 媒体片段 (moof+mdat) 中并将其传递到源缓冲区。

Windows 安装程序
您安装专有代理服务器以通过 websockets 流式传输 RTSP,并在您的 PC 上安装免费的 RTSP 播放器。
我们建议在安装程序中选择“Service + NGINX web server”选项来测试我们的软件。
它允许您通过双击桌面上的“Streamedian Player URL.lnk”文件在默认浏览器中启动 RTSP 播放器。
然后你可以设置一个 RTSP 链接,例如: rtsp://<your local PC’s IP address>:554/h264,然后在浏览器中观看 RTSP 流。
您可以在文本字段中键入您自己的 RTSP 源 URL。
如果您要更改ws_rtsp.iniwsp.lic文件,请确保将其保存为UTF8编码。

要在本地网络中观看流,您需要更改 HTML 文件中的 ws URL:

  1. 关闭防火墙。
  2. 在“index.html”文件中找到“localhost”字符串,并将其替换为安装并启动代理服务器的 PC 的实际 IP。
socket: "ws://localhost:8088/ws/",

这个文件在:

C:\Users\Public\Documents\Streamedian\WS RTSP Player\nginx\html\index.html

注意:示例代码使用 webserver Nginx,它将所有请求从 8088 端口转发到 websocket 代理服务器 8080 端口。将套接字地址中的端口号从 8088 更改为 8080,以将播放器直接连接到 websocket 服务器。Websocket 代理端口也可能在“ws_rtsp.ini”文件中更改。

在全球和本地网络中使用
通常,需要使用有效的 Proxy 许可证文件来连接 Proxy 和 HTML5 RTSP Player(在全球或本地网络中)。使用有效的许可证文件,您可以根据您的项目架构为私有和开放网络使用代理。
在许可证激活期间,您必须设置一个 IP 地址或域名,用于部署您的带有 HTML5 RTSP 播放器的网页。将允许子域,例如,如果您要注册 streamedian.com 的许可证,则允许<您的子域> .streamedian.com

开发人员和研究人员须知 - 如何免费工作
使用已安装的空许可证文件无需购买许可证即可进行开发或研究。
空许可证文件允许您仅在同一本地主机上观看流(代理和播放器安装在同一台计算机上)。
在网站上注册后,您将自动获得限时免费许可证文件。
在网站上注册后,个人测试密钥将在您的 Streamedian 帐户页面上可用。
使用此个人测试密钥激活 1 个域名的 180 天许可证,最多可同时观看 3 个流(用户观看)。
对于更永久的解决方案,您可以使用您的个人免费密钥, 在网站上注册后,您可以在定价表中进行选择。
使用此个人免费密钥激活 1 个域名的年度许可,最多可同时查看 2 个流(用户观看)。免费许可证每年可以无限次更新
要激活密钥,请选择“在线”或“离线”方法并按照步骤操作:

离线激活步骤:

  1. 要激活密钥,请运行位于以下位置的激活应用工具(streamedia服务端安装目录里):
C:\Program Files\Streamedian\WS RTSP Proxy Server\activation_app.exe

2、输入“2”,回车选择离线激活。如果机器信息文件生成成功,那么您将看到一条带有此文件位置的消息:
在这里插入图片描述
3. 转到官网个人中心 ( www.streamedian.com/cabinet )
4. 选择“离线激活”(Offline activation)选项卡:
在这里插入图片描述
5. 选择您想要的密钥’要激活:
在这里插入图片描述
6.上传“machine_info.bin”文件:
在这里插入图片描述
7.输入播放器主机的域名或IP地址
在这里插入图片描述

8.点击“激活”按钮:
在这里插入图片描述
9.下载ws:
在这里插入图片描述
10.将刚下载的文件wsp.lic ,复制到此处:

C:\Users\Public\Documents\Streamedian\WS RTSP Proxy Server\wsp.lic
  1. 要使用新许可证重新启动服务,请运行:
C:\Program Files\Streamedian\WS RTSP Proxy Server\restart_service.bat

请注意,每个键只能激活有限的次数。通过在您的个人中心里选择一个许可证,可以查看剩余的激活尝试次数。
在这里插入图片描述

在线激活步骤

  1. 要激活密钥,请运行位于以下位置的激活应用工具(streamedia服务端安装目录里):
C:\Program Files\Streamedian\WS RTSP Proxy Server\activation_app.exe

2、输入“1”,回车选择在线激活:
在这里插入图片描述
2. 使用您在网站上注册时使用的相同登录名和密码登录Streamedian 登录:
在这里插入图片描述
成功后,您可以通过选择看到所有可用许可证及其参数的列表“可用许可证列表”

  1. 要激活密钥,请选择“激活”选项(4):
    在这里插入图片描述
  2. 从列表中选择密钥(如1):
    在这里插入图片描述
  3. 输入您的域或 IP 地址:
    在这里插入图片描述
    许可证文件将自动上传到您的服务器并放置在许可证代理文件夹中。代理将重新启动。
    请注意,每个键只能激活有限的次数。选择许可证时可以看到剩余的激活尝试次数。
    在这里插入图片描述
    如何查看代理日志
    1.卸载以前版本的Streamedian WS RTSP Proxy Server。
    2.下载DebugView.zip。解压并启动 DbgView.exe。您需要接受许可协议。DebugView 是微软公司全资子公司的应用程序。
    3.安装新的 Streamedian WS RTSP 代理服务器。
    4.重现问题。
    5.在DebugView中查看日志
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RTSP的WEB播放方案Streamedian 的相关文章

  • R - 从 URL/HTML 对象/HTML 响应写入 HTML 文件

    我想使用 R 中的 URL 保存 HTML 文件 我尝试在使用后保存响应对象GET and read html的功能httr and rvest分别打包到网站的 URL 上 我想保存 的 HTML 但这并不能保存网站的实际内容 url ht
  • 有没有一种将视频从 Android 流式传输到 RTSP 服务器的好方法?

    我已经四处寻找并没有真正发现任何东西 我想通过流将视频从内置摄像头发送到我的 RTSP 服务器 在寻找示例时 我发现 MediaPlayer 的 setDataSource 方法可能只包含服务器上流的位置 我尝试用以下方法来模拟 media
  • 如何判断网站上是否加载了 Flash?

    我正在对一个非常大的网站进行一些测试 创建了许多不同的开发人员 有没有办法判断网站是否正在使用flash questions tagged flash和 或已加载闪存plugin questions tagged plugin 如果页面使用
  • 在 ASP Web API 中指定无效参数时返回错误

    我正在使用 C 和 ASP NET Web API 创建一个 API 并且希望它在使用无法识别的参数时返回错误 例如 api Events 应该有一个事件列表 api Events startTime startTime 应该返回在特定时间
  • Wt C++ Web 框架的主机,部署问题

    我想知道 justhost com 是否足以托管 Wt C 网站 应用程序 它确实允许 FTP 和 SSH 访问http richelbilderbeek nl CppWtDeployGlobalHosted htm http richel
  • 如何制作基于Web的Python交互式shell

    网站如何喜欢https www pythonanywhere com try ipython https www pythonanywhere com try ipython work 他们可能会做几个exec命令 或与 ipython 交
  • 使用元 http-equiv 标记进行重定向时,避免将页面添加到浏览器历史记录中

    我有一个网页 它使用以下命令重定向到所需的目标网址 我想避免第一页出现在浏览器历史记录中 特别是 在手机 Android iOS 等 中 我希望后退按钮可以跳过重定向页面 您有两个选择 要么使用真正的 HTTP 重定向 要么使用 JavaS
  • 使用 ASP.NET 进行卷曲请求

    我已经阅读了 Stack 上的其他一些帖子 但我无法让它工作 当我在Windows机器上的git中运行curl命令时 它在我的电脑上工作正常 但是当我将其转换为asp net时 它不起作用 private void BeeBoleReque
  • RTSP服务器java实现问题:(

    我正在编写 RTSP 服务器并遇到一些问题 我使用 VLC 作为客户端 服务器从客户端 VLC 播放器 接收 OPTIONS DESCRIBE SETUP 和 PLAY 命令并回答该命令 通过 SETUP 命令客户端发送端口号 我正在使用该
  • 如何在 C# Windows 应用程序中引用网站用户控件?

    我在 Windows C 应用程序中有一个解决方案 其中我也有一个网站 在网站中我有 1 个用户控件 现在我希望在同一解决方案的其他 C 项目中使用用户控件 怎么做 那是不可能的 您必须为 Windows 应用程序重新创建它 您可以重用的是
  • 如何使用 mysql 从 php 中的表中返回多行

    我决定为我的家人建立一个梦幻足球网站 但我无法从数据库返回多行 我想要的 进行一次 sql 调用并获取整个玩家列表 以便我可以填充一个对象或对象列表 如果整个桌子都可以归还那就太好了 我的目标是简单地向用户显示待选秀的可用球员列表 目前 通
  • 在 Google Cloud 中设置网站? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我完全迷失在这之中 我习惯于使用带有 cpanel 的简单 Web 主机来制作网站 只需使用 filezilla 登录并上传我的 ht
  • Firebase 9(模块化 sdk web )替换 fieldPath

    我将以下代码与 Firebase SDK 8 一起使用 const db firebase firestore const collectionRef db collection collectionName var query colle
  • 根据 $_POST 值填充字段

    我正在寻求有关我试图填写的表格的帮助 我通常会使用 onChange 函数 但我认为这不是一个选择 基本上我有一个
  • 引导程序中导航和巨型屏幕之间的差距

    对于我的一生 我无法确定我的导航和大屏幕之间的空白来自哪里 我已经玩过很多变量 但无法让它消失 我在这里做了一个cssdeckhttp cssdeck com labs u6ws0ozl http cssdeck com labs u6ws
  • 从网站获取数据的vba代码

    我是这个网站和 VBA 编程的新手 我遇到了一个问题 我必须从中获取数据这一页 http www kieskeurig nl zoeken index html q 4960999543345 我需要有超链接网址Check Rates 10
  • 用于网站的 Git / 接收后 / 测试站点和生产站点的分离

    我使用 Git 来管理网站的源代码和部署 目前测试站点和实时站点在同一个机器上运行 关注此资源http toroid org ams git website howto http toroid org ams git website how
  • IIS 6 网站根目录与应用程序?解决Url()?

    IIS 6 ASP NET 3 5 C NET 我们遇到一个问题 即同一组文件的行为会有所不同 具体取决于它是根 IIS 网站还是 IIS 网站下的应用程序 使用生成的网址解析网址 http msdn microsoft com en us
  • 从 Unity WebGL 调用 Angular2 函数

    目前 我正在使用 Angular2 版本 2 1 2 和 Unity 可视化工具 使用 Unity 5 5 构建 我需要做的是从 Unity 到 Angular2 进行通信 我正在使用类似于下面的代码 public void GetBill
  • 创建默认应用程序时 FirebaseOptions 不能为 null

    我正在尝试在 Flutter 集成电子邮件和基于 google 的登录中尝试一个示例项目 并计划使用 firebase 初始化来执行此操作 同时我已按照教程中提到的所有步骤进行操作 一旦尝试使用 firebase 我就会收到此错误已初始化

随机推荐

  • SLAM算法配置——使用Realsense D435i结合ROS跑通ORB-SLAM2的RGB-D节点

    ORB SLAM2源地址 配置环境依赖 Pangolin xff0c OpenCV xff0c Eigen3 xff0c DBoW2 and g2o xff08 源代码里有 xff0c 不用自己装 xff09 xff0c ROS xff08
  • 代码编写及阅读规范

    阅读常识 1 C语言中在函数名或关键字前加下划线 一般情况是标识该函数或关键字是自己内部使用的 xff0c 与提供给外部的接口函数或关键字加以区分 规范 综述 C 43 43 是一门十分复杂并且威力强大的语言 xff0c 使用这门语言的时候
  • 流媒体开发之路

    其实很早之前 xff0c 就想写属于自己的博客 xff0c 大二就有了CSDN账号 xff0c 很讽刺的是 xff0c 工作几年了 xff0c 账号里面的内容竟然和小鲜肉脸一样干净 干净的让人尴尬 回顾自己的这几年的开发之路 xff0c 接
  • matlab图像处理实例详解---note

    1 直方图均衡及直方图规定化 可以优化图像的亮度及gamma效果 2 图像的标准差 当图像越清晰的时候 xff0c 图像的标准差就越大 是否可以用来做af的判定标准 作为fv的值 另外是否可以用图像的相关系数作为caf的一个trigger
  • promise限制并发请求数量

    所谓并发请求 xff0c 就是指在一个时间点多个请求同时执行 当并发的请求超过一定数量时 xff0c 会造成网络堵塞 xff0c 服务器压力大崩溃或者其他高并发问题 xff0c 此时需要限制并发请求的数量 假如等待请求接口1000个 xff
  • 一个跨平台的 C++ 内存泄漏检测器(转载)

    一个跨平台的 C 43 43 内存泄漏检测器 吴咏炜 adah 64 netstd com 2004 年 3 月 内存泄漏对于C C 43 43 程序员来说也可以算作是个永恒的话题了吧 在Windows下 xff0c MFC的一个很有用的功
  • printf和wprintf、printf输出结束标识符、c++按值返回临时对象是否是const的实验

    ifndef TEST H define TEST H include lt iostream gt include lt string gt using namespace std int x 61 5 struct s public s
  • 自己搭深度学习环境踩坑血泪史

    自己搭深度学习环境踩坑的血泪史 从一个沮丧的事情开始问题1 强行更新了一次win10后 双系统里的ubuntu的启动项就没了 xff0c 直接进入win10系统问题2 sudo apt get update 总是超时问题3 conda in
  • 电脑串口延迟/缓冲设置方法

    使用串口做精确信号发送的时候会经常出现不能时间不精确的问题 xff0c 使用两个u口转串口串连之后一个接收一个发送的情况下 收到的时间延迟数据如下 xff1a 注意 xff1a 这里的因为有一个接收缓冲区和一个发送缓冲区 xff0c 所以这
  • apt-get install 连同诸多依赖包一并安装的指令

    apt get install 连同诸多依赖包一并安装 如题 xff0c apt get安装某个包的时候 xff0c 经常会碰到很多依赖包 xff0c 需要一一安装了才行 xff0c 非常麻烦 当然 xff0c 可以使用以下指令一步到位 a
  • git 分支操作记录

    查看分支 xff1a 查看本地分支 xff1a git branch 查看远程分支 xff1a git branch r 查看全部分支 xff08 本地和远程 xff09 git branch a 新建分支 xff1a 创建新分支 xff1
  • C++ 简析容器Vector

    向量 xff08 Vector xff09 是一个封装了动态大小数组的顺序容器 xff08 Sequence Container xff09 跟任意其它类型容器一样 xff0c 它能够存放各种类型的对象 可以简单的认为 xff0c 向量是一
  • SLAM初始化

    本节的学习要点 xff1a 初始化的目的 单目 双目 初始化的两种方法初始化过程 初始化的目的 单目SLAM初始化的目的是 61 61 构建初始的三维点云地图 xff08 空间点 xff09 并为之后的计算提供初始值 61 61 由于仅从单
  • tensorflow lite example label_image 分析【二】

    接上文 3 代码分析 main函数首先将入参写入参数结构体 Settings s struct Settings bool verbose 61 false bool accel 61 false bool input floating 6
  • 利用Kalibr标定双目相机与IMU

    本文介绍如何利用Kalibr标定工具进行双目相机与IMU的联合标定 主要过程包括以下四步 xff1a 生成标定板标定双目相机标定IMU联合标定 1 生成标定板 使用AprilTag rosrun kalibr kalibr create t
  • FreeRTOS常见知识点

    FreeRTOS常见知识点 1 临界段代码 临界段代码也叫做临界区 xff0c 是指那些必须完整运行 xff0c 不能被打断的代码段 xff0c 比如某些外设的初始化需要严格的时序 xff0c 且不能被打断 FreeRTOS提供的解决方案是
  • linux ssh 登录报hosts错误

    问题分析 问题在于 xff1a Users liuhanlin ssh known hosts xff0c 这个目录中纪录了你之前机器的配置 如果你更换了系统 xff0c 并且重新绑定了密钥 就会出现这个hosts的报错 解决方法 cd U
  • linux内核-进程的调度与切换

    在多进程的操作系统中 xff0c 进程调度是一个全局性的 关键性的问题 xff0c 它对系统的总体设计 系统的实现 功能设置以及各个方面的性能都有着决定性的影响 根据调度结果所做的进程切换的速度 xff0c 也是衡量一个操作系统性能的重要指
  • STM32芯片VDD、VDDA和VREF的关系

    今天碰到一个48pin stm32F103CBT6芯片 xff0c AD参考电压输入引脚的问题 通过cubemx查看引脚 xff0c 发现没有VREF引脚 xff0c 只有VDD 和VDDA电压输入 xff1b 通过查资料和手册 xff0c
  • RTSP的WEB播放方案Streamedian

    因项目需要 xff0c 查找rtsp视频流web播放方法 xff0c 这是文档 原文文档连接 xff1a https streamedian com docs Streamedian是一个 Javascript 库 xff0c 它实现了 R