先看上边这张图。由于离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. D. Sequence Sorting dp

    D. Sequence Sorting 题目大意:给你一个序列,有一种操作就是对所有相同的数可以挪到最前面,也可以挪到最后面,问最少操作次数. 首先,对于很多个相同的数,可以缩成两个位置,一个是就是这 ...

  2. Spring杂谈 | Spring中的AutowireCandidateResolver

    接口定义 用于推断一个特定的beanDefinition是否能作为指定依赖的候选者的策略接口 public interface AutowireCandidateResolver { // 默认情况下 ...

  3. OpenWrt R2020.3.11 去广告 抗污染 加速 PSW 无缝集成 UnPnP NAS

    近期更新:OpenWrt R2020.3.11版本2020.03.16编译. 按大家要求,新发布固件携带了编译时用到的全部软件包 加入了国内域名加速解析脚本 解决了原去广告,DNS优化方案与PSW冲突 ...

  4. band-pass filtering

    from scipy import signal # 带通滤波器 # 信号,频率下限,频率上限, 采样率 def bandPass(signals, fre_low, fre_high, fs): b ...

  5. (Python基础教程之二十二)爬虫下载网页视频(video blob)

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  6. 【雕爷学编程】Arduino动手做(42)---PM2.5粉尘传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  7. React学习随笔

    一.在非create-react-app创建的项目,使用JSX需要注意的问题 1.1 入门的时候,要引入Babel,并将<script>标签加上type='text/babel'的属性. ...

  8. node的buffer模块

    Buffer这块很早前就想留一篇笔记.前端JS处理buffer的场景其实并不多,虽然后来基于webGL与显卡通信的需求增加了二进制数组,但毕竟相对小众. Buffer的含义是,在数据传输时用内存中的一 ...

  9. Django之AJAX简单使用

    AJAX简介: AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输 ...

  10. oracle关于rownum的使用【oracle】

    转自:https://blog.csdn.net/qiuzhi__ke/article/details/78892822 关于rownum是怎么产生的(网上有不少的文章,下面是摘录): rownum是 ...