先看上边这张图。由于离2020年12月各浏览器禁用Flash的日子越来越近,又正恰巧要做新录播项目,所以有了以下内容。

还记得去年也是这个时候,大约是四五六月份,甲方来了个需求想把车间的监控系统接入到我们自己的数字化管控平台。很荣幸,经理把这个任务交给我了。
当时采用的协议方案是RTSP —> RTMP,服务端用的是Nginx+nginx-rtmp-module,系统windows,前端使用videoJS配合Flash拉流。当然不是说这种方案不好,而是用户体验度确实有点差。虽然我们也做了Flash是否开启的检测(如果用户没允许Flash运行会有提示图让用户主动去点击允许运行),但对于普通用户或电脑盲的用户来说体验度还是差点。因为他不知道去哪找开启,或者说他不愿去找,甚至还会发一些牢骚 **#**@*。当然现在已经离开公司了,具体后来使用情况也就不清楚了。

那么如何抛弃Flash前端播放插件,直接让用户一进入页面就能轻松播放流媒体服务器传过来的流呢?方案还是有的,就是RTMP —> HTTP-FLV。关于HTTP-FLV不做过多描述,简单意思就是将RTMP 转为HTTP-FLV,浏览器拉的是HTTP类型的流,不再是RTMP。转的这个过程不需要你做,流媒体服务器端会直接帮你做好。

RTMP流长这样:       rtmp://127.0.0.1:1935/live/livestream
HTTP-FLV流长这样:http://127.0.0.1:8080/live/livestream.flv

先说前端拉流,RTMP流之前播放时使用的是videoJS+Flash,现在HTTP-FLV流播放使用Flv.js(当然如果你有更好播放HTTP-FLV流的JS也可不用这个)
再说后端推流,目前来说支持转封装HTTP-FLV流的'常用'服务器有两款,一款是nginx-http-flv-module,一款是SRS。关于各自介绍度娘很多。那么总结一下就是 OBS/FFmpeg(RTMP) —> nginx-http-flv-module/SRS(HTTP-FLV) —> Flv.js,如下图:

可以看出,对于推流端来说基本没有什么变化,推上来的仍是RTMP,但对于用户端来说选择性就很多了,可直接采用H5观看。

前端Web浏览器基于H5如何实时播放监控视频画面(前言)之流程介绍的更多相关文章

  1. 前端Web浏览器基于Flash如何实时播放监控视频画面(四)之使用videoJs‘拉流’

    本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 下载videoJs 对于Video.js 5.x及更低版本,Flash技术(v ...

  2. 前端Web浏览器基于Flash如何实时播放监控视频画面(前言)之流程介绍

    [关键字:前端浏览器如何播放RTSP流画面.前端浏览器如何播放RTMP流画面] 本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 考虑到视频延 ...

  3. 前端Web浏览器基于Flash如何实时播放监控视频画面(三)之使用ffmpeg‘推流’

    本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 下载ffmpeg 开源免费的推流软件有很多,这里以 ffmpeg 为例.ffm ...

  4. 前端Web浏览器基于Flash如何实时播放监控视频画面(一)之获取监控摄像头的RTSP流

    本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 获取 现在市场上普见的摄像头都支持RTSP协议,如果你不懂什么是RTSP协议, ...

  5. 前端Web浏览器基于Flash如何实时播放监控视频画面(二)之Windows搭建(RTMP)流媒体服务器

    本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 获取 流媒体服务器有很多,这里以nginx为例. nginx for Wind ...

  6. EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码

    背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...

  7. 使用canvas来实时播放RTSP视频

    HTML5的标签可以用使用下来面的方式来播放静态视频 <video width="320" height="240" controls="con ...

  8. K8S Canal基于Prometheus进行实时指标监控

    文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 部署canal的prometheus监控到k8s中 1.grafana的docker部署方式:https://grafana.com/gr ...

  9. QT 创建一个线程播放监控视频

    1.创建一个线程类(PlayVideoThread): PlayVideoThread.h头文件 #pragma once #include <QObject> #include &quo ...

随机推荐

  1. MAC使用vagrant搭建开发环境

    公司的开发环境是这样的: Windows主机通过虚拟机安装CentOS.平时在Windows下编辑代码,然后跑到虚拟机里编译. 我自己有台MAC,本来准备直接在MAC上装开发环境的.基于以下两个原因放 ...

  2. HashMap 底层探索

    其实HashMap就是一个Node数组,只是这个数组很奇怪它的每一个Node节点都有自己的下一个Node;这个是hashMap的Node的源码: static class Node<K,V> ...

  3. msf的rpc和json-rpc,我该选择哪个?

    msf的rpc有两种调用方式,那么我们应该调用哪一个呢? 其中restful接口暂且不谈,这个rest api其实是简单对接了一下msf的后端数据库,这个自己也能读数据库来做,这个以后有时间再谈 首先 ...

  4. C. Game with Chips(陷阱暴力题)

    \(为什么说这是个陷阱呢??\) \(因为不管你脑洞多大,数学多好,都发现会束手无策\) \(每移动一次不知道往哪个方向,不知道先访问哪个点,同时要记录所有点的坐标,记录每个点是否访问过目标点.... ...

  5. 简单谈谈Spring的IoC

    一.前言   这几天正在复习Spring的相关内容,同时想要对Spring的实现原理做一些深入的研究.今天看了看Spring中IoC的实现,找到了一篇非常详细的博客,研究了一个下午,看完之后唯一的感受 ...

  6. xpath加PHP对网站相关数据的截取

    首先了解一串代码 <?php  $url = 'http://www.baidu.com';$ch = curl_init();curl_setopt($ch, CURLOPT_FILE, fo ...

  7. xml(4)

    schema约束 dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,xml语句 一个xml中可以有多个schema,多个schema用名称空间区分(类似jav ...

  8. java项目部署Linux服务器几种启动方式总结经验

    一:两种部署包: 部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是ja ...

  9. 新抽象语法树(AST)给 PHP7 带来的变化

    本文大部分内容参照 AST 的 RFC 文档而成:https://wiki.php.net/rfc/abstract_syntax_tree,为了易于理解从源文档中节选部分进行介绍. 我的官方群点击此 ...

  10. aop面向切面编程的实现

    aop主要用于日志记录,跟踪,优化和监控 下面是来自慕课网学习的一些案例,复制黏贴就完事了,注意类和方法的位置 pom添加依赖: <dependency> <groupId>o ...