广告
返回顶部
首页 > 资讯 > 精选 >怎么在HTML5中播放 RTSP 视频
  • 262
分享到

怎么在HTML5中播放 RTSP 视频

2023-06-09 12:06:22 262人浏览 安东尼
摘要

今天就跟大家聊聊有关怎么在HTML5中播放 RTSP 视频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。目前已有 RTSP 播放方案的对比既然是做直播,就需要延迟较低。当摄像头掉线时

今天就跟大家聊聊有关怎么在HTML5中播放 RTSP 视频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

目前已有 RTSP 播放方案的对比

既然是做直播,就需要延迟较低。当摄像头掉线时,也应当有一定的事件提示。处于这两点,对目前已有的已经实现、无需购买许可证的 RTSP 播放方案进行对比(处于原理阶段的暂时不分析)。

怎么在HTML5中播放 RTSP 视频

我对这四种方式都进行了实现,整体效果最好的还是第4种方案,占用端口少,延迟低,渲染速度快,而且离线事件易于处理。

基于 flv.js 的 RTSP 播放方案

flv.js 是 Bilibili 开源的一款 html5 浏览器。依赖于 Media Source Extension 进行视频播放,视频通过 Http-FLV 或 websocket-FLV 协议传输,视频格式需要为 FLV 格式。

服务器端(主进程)

服务器端采用 express + express-ws 框架进行编写,当有 HTTP 请求发送到指定的地址时,启动 FFmpeg 串流程序,直接将 RTSP 流封装成 FLV 格式的视频流,推送到指定的 WEBSocket 响应流中。

import * as express from "express";import * as expressWebSocket from "express-ws";import ffmpeg from "fluent-ffmpeg";import webSocketStream from "websocket-stream/stream";import WebSocket from "websocket-stream";import * as http from "http";function localServer() {    let app = express();    app.use(express.static(__dirname));    expressWebSocket(app, null, {        perMessageDeflate: true    });    app.ws("/rtsp/:id/", rtspRequestHandle)    app.listen(8888);    console.log("express listened")}function rtspRequestHandle(ws, req) {    console.log("rtsp request handle");    const stream = webSocketStream(ws, {        binary: true,        browserBufferTimeout: 1000000    }, {        browserBufferTimeout: 1000000    });    let url = req.query.url;    console.log("rtsp url:", url);    console.log("rtsp params:", req.params);    try {        ffmpeg(url)            .addInputOption("-rtsp_transport", "tcp", "-buffer_size", "102400")  // 这里可以添加一些 RTSP 优化的参数            .on("start", function () {                console.log(url, "Stream started.");            })            .on("codecData", function () {                console.log(url, "Stream codecData.")             // 摄像机在线处理            })            .on("error", function (err) {                console.log(url, "An error occured: ", err.message);            })            .on("end", function () {                console.log(url, "Stream end!");             // 摄像机断线的处理            })            .outputFORMat("flv").videoCodec("copy").noAudio().pipe(stream);    } catch (error) {        console.log(error);    }}

为了实现较低的加载时间,可以为 ffmpeg 添加如下参数:

  • analyzeduration 可以降低解析码流所需要的时间

  • max_delay 资料上写的具体作用不太记得了,效果没有 analyzeduration 明显

当然这个实现还比较粗糙。当有多个相同地址的请求时,应当增加 ffmpeg 的输出,而不是启动一个新的 ffmpeg 进程串流。

浏览器端(渲染进程)

示例使用 Vue 框架进行页面设计。

<template>    <div>        <video class="demo-video" ref="player"></video>    </div></template><script>import flvjs from "flv.js";export default {    props: {        rtsp: String,        id: String    },        data () {        return {            player: null        }    },    mounted () {        if (flvjs.isSupported()) {            let video = this.$refs.player;            if (video) {                this.player = flvjs.createPlayer({                    type: "flv",                    isLive: true,                    url: `ws://localhost:8888/rtsp/${this.id}/?url=${this.rtsp}`                });                this.player.attachMediaElement(video);                try {                    this.player.load();                    this.player.play();                } catch (error) {                    console.log(error);                };            }        }    },    beforeDestroy () {        this.player.destory();    }}</script><style>    .demo-video {        max-width: 480px;         max-height: 360px;    }</style>

效果展示

用 Electron 页面展示了 7 个 Hikvison NVR 的摄像头,可以实现低延迟,低 CPU 占用,无花屏现象。由于涉及保密,这里就不放截图了。

同样的方法我播放了 9 个本地 1080p 的视频《白鹿原》,可以看一下这个效果。

怎么在HTML5中播放 RTSP 视频

看完上述内容,你们对怎么在HTML5中播放 RTSP 视频有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 怎么在HTML5中播放 RTSP 视频

本文链接: https://www.lsjlt.com/news/256004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在HTML5中播放 RTSP 视频
    今天就跟大家聊聊有关怎么在HTML5中播放 RTSP 视频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。目前已有 RTSP 播放方案的对比既然是做直播,就需要延迟较低。当摄像头掉线时...
    99+
    2023-06-09
  • html5怎么播放视频
    这篇文章主要讲解了“html5怎么播放视频”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5怎么播放视频”吧! html5...
    99+
    2022-10-19
  • 怎么用HTML5在网页中嵌入音频和视频播放
    本篇内容介绍了“怎么用HTML5在网页中嵌入音频和视频播放”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!H...
    99+
    2022-10-19
  • 怎么在HTML5中自定义一个视频播放器
    这期内容当中小编将会给大家带来有关怎么在HTML5中自定义一个视频播放器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。video对象兼容性写法<video controls>&nbs...
    99+
    2023-06-09
  • Go语言怎么开发浏览器视频流rtsp转webrtc播放
    本篇内容主要讲解“Go语言怎么开发浏览器视频流rtsp转webrtc播放”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言怎么开发浏览器视频流rtsp转webrtc播放”吧!1. 前言前面我...
    99+
    2023-06-30
  • python怎么播放视频
    方法有:1、使用OpenCV库播放视频;2、使用pygame库播放视频;3、使用moviepy库播放视频等。Python作为一种高级编程语言,有很多库和工具可以用来播放视频。在本文中,我将介绍一些常用的库和工具,以及它们的基本用法和示例代码...
    99+
    2023-11-15
    python
  • 基于HTML5的在线视频播放方法
    本文小编为大家详细介绍“基于HTML5的在线视频播放方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于HTML5的在线视频播放方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-10-19
  • 如何在HTML5中使用video.js视频播放插件
    本篇文章给大家分享的是有关如何在HTML5中使用video.js视频播放插件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。看下默认例子:controls表示控制条,prload...
    99+
    2023-06-09
  • html5中video如何停止播放视频
    这篇文章主要介绍html5中video如何停止播放视频,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html5 video停止播放视频的方法:首先使用“document.getElementById("id...
    99+
    2023-06-15
  • 如何在html中播放视频
    本篇文章为大家展示了如何在html中播放视频,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。html播放视频在 HTML 中播放视频并不容易!您需要谙熟大量技巧,以确保您的视频文件在所有浏览器中(In...
    99+
    2023-06-15
  • HTML5视频播放的技巧是什么
    这篇文章主要讲解了“HTML5视频播放的技巧是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML5视频播放的技巧是什么”吧!大多数视频是通过插件(比...
    99+
    2022-10-19
  • 怎么在Android中使用GSYVideoPlayer播放视频器
    怎么在Android中使用GSYVideoPlayer播放视频器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。GSYVideoPlayerGSYVideoPla...
    99+
    2023-06-14
  • 如何使用HTML5实现在线视频播放
    这篇文章主要为大家展示了“如何使用HTML5实现在线视频播放”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用HTML5实现在线视频播放”这篇文章吧。编码与...
    99+
    2022-10-19
  • 怎么理解HTML5中的音频和视频媒体播放元素
    本篇文章给大家分享的是有关怎么理解HTML5中的音频和视频媒体播放元素,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。音频和视频的编码/解码器是...
    99+
    2022-10-19
  • 音频和视频无法在PowerPoint中播放
    使用Microsoft的PowerPoint应用程序时,您可能会遇到的一些问题可能是音频和视频问题。PowerPoint用户有时报告说,当他们通过电子邮件发送演示文稿时,收件人将无法播放演示文稿。它只是拒绝加载。尽管很少遇到此问题,但在某些...
    99+
    2023-06-05
  • windows播放器无法播放视频怎么解决
    如果Windows播放器无法播放视频,可以尝试以下解决方法:1. 确保视频文件格式受支持:Windows播放器不支持所有视频文件格式...
    99+
    2023-09-11
    windows
  • HTML5中video如何循环播放多个视频
    这篇文章主要介绍HTML5中video如何循环播放多个视频,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!设计流程扫描二维码时,将其视频列表存入model中,存入第一条是为了,不在html界面重新获取第一条视频&nbs...
    99+
    2023-06-09
  • AJAX怎么实现在网页里播放视频
    本篇内容主要讲解“AJAX怎么实现在网页里播放视频”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“AJAX怎么实现在网页里播放视频”吧! ...
    99+
    2022-10-19
  • Android中怎么利用MediaPlay播放音频和视频
    Android中怎么利用MediaPlay播放音频和视频,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现MediaPlay的基本步骤是创建MediaPlay对象调用setDa...
    99+
    2023-06-04
  • php视频不能播放怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php视频不能播放怎么办?问题描述:php调用scp上传视频文件无法播放?使用PHP调用scp上传视频文件到目标服务器,上传之后无法播放,原视频文件可以正常播放。代码...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作