rtsp流浏览器播放方案

article/2025/9/13 10:51:57

rtsp流在主流浏览器并不支持直接播放。比如大华的视频流:rtsp://admin:123456@
192.168.10.129/cam/realmonitor?channel=1&subtype=0,用vlc可以直接播放。但在浏览器会报ERR_UNKNOWN_URL_SCHEME。那如何在浏览器中播放呢。

以下列出几种方案。

1、安装插件(chrome最新版基本都不支持)

类如:kurento,vlc插件(谷歌浏览器版本41以下),vgx插件(不支持高版本,chrome72.0版本可用)等。

2、安装软件(中间件,基本都付费)
类如:Appemit(调用vlc插件播放rtsp),可以免安装的,目前只能windows,免费版会有提示。

猿大师中间件(底层调用VLC的ActiveX控件,实现在主流浏览器网页中内嵌播放多路RTSP的实时视频流),中间件收费的。

PluginOK(牛插)中间件。底层调用ActiveX控件VlcOcx.dll。(商业用途需付费使用)

3、服务器拉流转发及协议转换

示意图如下所示:

推流--------------服务器转发--------------拉流

方法一览:

a,vlc软件串流到http协议,网页显示几个视频需启动几个vlc,只适合应急场景。

b,html5 + websocket_rtsp_proxy 实现视频流直播,基于MSE(Media Source Extensions,W3C),扩展H5的功能。

步骤:服务器安装streamedian服务器,客户端通过video标签播放。

原型图:

价格:

c.基于nginx的rsmp转发

基于nginx实现rtmp转化,用flash实现播放。由于flash目前大多浏览器默认禁用,不推荐此方式。

步骤:安装ffmpeg工具,安装nginx。

另外nginx-rtmp-module也支持HLS协议,可以搭建基于hls的直播服务器。

d.rtsp转hls播放,通过ffmpeg转码

步骤:安装ffmpeg工具,ffmpeg转码。

形如:

ffmpeg -i "rtsp://admin:123456@192.168.10.129/cam/realmonitor?channel=1&subtype=0" -c copy -f hls -hls_time 2.0 -hls_list_size 0 -hls_wrap 15 "D:/hls/test.m3u8"

缺点是直播流延时很大,对实时要求比较高的不满足要求。

案例:基于EasyDarwin拾建转码服务器。参考地址:https://blog.csdn.net/jyt0551/article/details/84189498

通过存储的m3u8去读取。

e.websocket代理推送,FFMPEG转码

此方法与a,b类似。但更实用。

以下提供两种方案:

(1)Gin+WebSocket+FFMPEG实现rtsp转码,参考:https://juejin.cn/post/6844904024072798216

通过FFMPEG把rstp转成http,ginrtsp作为转发服务器,但需要自己写相应接口,需要了解go语言。

(2)node + ffmpeg + websocket + flv.js,参考:https://juejin.cn/post/6908641550046068744

步骤:在node服务中建立websocket;通过fluent-ffmpeg转码,将RTSP 流转为flv格式;通过flv.js连接websocket,并对获取的flv格式视频数据进行渲染播放。

import WebSocket from 'ws'
import webSocketStream from 'websocket-stream/stream'
import ffmpeg from 'fluent-ffmpeg'// 建立WebSocket服务
const wss = new WebSocket.Server({ port: 8888, perMessageDeflate: false })// 监听连接
wss.on('connection', handleConnection)// 连接时触发事件
function handleConnection (ws, req) {// 获取前端请求的流地址(前端websocket连接时后面带上流地址)const url = req.url.slice(1)// 传入连接的ws客户端 实例化一个流const stream = webSocketStream(ws, { binary: true })// 通过ffmpeg命令 对实时流进行格式转换 输出flv格式const ffmpegCommand = ffmpeg(url).addInputOption('-analyzeduration', '100000', '-max_delay', '1000000').on('start', function () { console.log('Stream started.') }).on('codecData', function () { console.log('Stream codecData.') }).on('error', function (err) {console.log('An error occured: ', err.message)stream.end()}).on('end', function () {console.log('Stream end!')stream.end()}).outputFormat('flv').videoCodec('copy').noAudio()stream.on('close', function () {ffmpegCommand.kill('SIGKILL')})try {// 执行命令 传输到实例流中返回给客户端ffmpegCommand.pipe(stream)} catch (error) {console.log(error)}
}

优点全部基于js。前端即可搞定。

参考:https://www.zhihu.com/question/29973696


http://chatgpt.dhexx.cn/article/5UumI3wD.shtml

相关文章

浏览器播放rtsp视频流解决方案

解决获取到海康摄像头的rtsp视频流,在浏览器播放问题。采用ffmpegnginxvideo.js解决方案(Windows环境) 资源下载 ffmpeg百度云资源:链接:https://pan.baidu.com/s/15pq8ErLZg9UcOgjqTkJZtw 提取码:8kyg…

IAR基础教程之函数跳转

IAR基础教程之函数跳转 一、编译 二、编译过程 三、等待内部链接 在编译完成后,等待绿条读满。 注意: 如果绿条没有完成,部分函数可能无法跳转。 如果工程编译出错,则无法完成如上工作。 四、函数跳转 右键单击 点击“Defini…

IAR安装使用教程

仅仅用于学习交流,非用于商业,如有异议,请联系我。 IAR 和谐 和谐工具:IARkg_Unis.exe ---------1.双击打开 IARkg_Unis.exe 文件。点击”Generate”生成序列号,每个电脑生成的不同,将序列号复制保存下来以…

IAR 安装教程

学校的物联网技术实验需要IAR for 51工具,起初一直找不到下载窗口在哪,最后终于找到并下载安装成功,就分享一下 1.官网下载安装包 https://www.iar.com/ 寻找对应设备版本: 不清楚的话可以在下面寻找设备进行查询,像…

IAR教程之IAR安装

IAR安装 1.下载 1.1打开官网 1.2找到要下载的版本 1.3下载 同学们除了可以下载最新版本尝鲜之外,还可以下载之前的版本。低版本IAR打开高版本IAR工程,工程配置会错乱,导致编译报错问题,所以一定要使用比推荐版本高的IAR 单片机I…

Iar新建工程配置使用教程

Iar新建工程配置使用教程 wangxl20180809 新建工程 打开demo目录,重新复制led目录并改成自己的工程名,如:demoled;(本模板适合stm32f10X的芯片使用) 运行iar软件,进入demoled\Project目录选project.eww进行打开; 工程配置 修改…

IAR for STM8安装教程

先附上下载链接和提取码哈: 链接:https://pan.baidu.com/s/1x5n_nYP2RcN2N_G9p4qz2Q 提取码:h135 1、软件安装 解压完后点击安装包下的:EWSTM8-3104-Autorun.exe文件进行安装 在这我们选择第一个选项,记住有些安装…

IAR for 8051安装教程

安装步骤: 安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 安装前请断网。 试装系统:win10 64bit 1.解压安装包。 2.选择你需要安装的IAR for 8051的版本,一般选择安装最新的版…

IAR for STM8的基本使用教程

很多第一次接触硬件的小伙伴们对于如何利用IAR编写程序并烧录到板子上感觉很困扰,今天我们就从IAR的基本使用来讲起,希望能给大家带来一定的帮助。 1. 创建新的工作环境: 2. 在工作环境下创建自己的工程: 如果有已存在的工程&…

Iar工程调试使用教程

Iar工程调试使用教程 wangxl20180809 打开工程 运行iar软件,进入demoled\Project目录选project.eww进行打开; 二、调试 1、设置断点 在代码左边点击要设置断点的语句,或点击要设置断点的语句,按鼠标右键,选择Toggle Breakpoi…

IAR for ARM系列教程(一)_新建软件工程详细过程

推荐 分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:https://www.strongerhuang.com 我的知乎…

IAR 系列教程

https://www.strongerhuang.com/categories/EWSTM8%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B/ https://blog.csdn.net/ybhuangfugui/article/details/81436533

IAR操作指南

IAR中的参数变量表 __iar_program_start在哪里定义/main之前做了什么 在main()之前,IAR都做了啥 cortex-m3启动代码详解 在IAR中利用AStyle插件格式化代码 IAR配色方案 --styleallman --pad-oper --max-code-length150 --add-braces --align-pointername --max-con…

IAR 使用教程 –以KS22为例

IAR 使用教程 –以KS22为例 IAR 版本: 1 新建立一个工程 1.1打开IAR ,如果之前已经建立过工程想新建立一个工程,那么按照如下操作: 1.2 新建一个工程: 1.3 新建一个空的工程,或者可以选择其他的,其他的会加…

IAR环境配置教程(CC2530版)

我们先来看一下如何创建在IAR中创建一个我们自已的工程。 注意:本教程只是配置在线调试。 温馨提示:在建立工作区和新建工程以及C语言文件的时候会产生多个文件及文件夹,可以提前建立一个文件夹,方便保存哦。 1、建立自已的工程…

NXP K60使用IAR烧录教程

1.软件安装 1)IAR破解版安装教程参考https://jingyan.baidu.com/article/851fbc37903a1d3e1f15ab03.html 2)J-link驱动安装 1.官网上有各版本的驱动https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack 在这里下载适合自己J-…

IAR使用技巧

一、状态栏的解析 Compile:只对目前打开的c文件进行语法检查,不对它进行link; Make:对工程所有打开的c文件进行语法检查和link(只编译有改动的文件或者设置变动的文件); Rebuild All&#xff1a…

IAR教程之IAR常用功能简介

IAR常用功能简介 本教程适用于初次接触IAR的同学,简单介绍IAR的下载和调试。 IAR配置选择 IAR可以一套代码使用多种配置,龙邱的MK60FX和MK60DN就是通过不同配置公用一套代码。 代码颜色设置 用户关键字 上面颜色设置中有一项是设置用户关键字颜色的&…

IAR 使用与注册

安装使用 基本介绍 IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件…

GD32使用IAR编程详细教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、IAR的补丁环境安装和固件库说明二、搭建编程环境三、系统时钟配置 前言 由于STM系列单片机价格疯涨,不少嵌入式的开发人员都想着找一款国内的单…