亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

HTML5 播放 RTSP 視頻的實例代碼

2024-09-05 07:22:56
字體:
來源:轉載
供稿:網友

目前大多數網絡攝像頭都是通過 RTSP 協議傳輸視頻流的,但是 HTML 并不標準支持 RTSP 流。除了 Firefox 瀏覽器可以直接播放 RTSP 流之外,幾乎沒有其他瀏覽器可以直接播放 RTSP 流。Electron 應用是基于 Chromium 內核的,因此也不能直接播放 RTSP 流。

在借助一定工具的情況下,可以實現在 Web 頁面上播放 RTSP 流。本文介紹的方法可以應用于傳統 Web 應用和 Electron 應用中,唯一的區別是將 Electron 應用的主進程當作傳統 Web 應用的服務器。

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

既然是做直播,就需要延遲較低。當攝像頭掉線時,也應當有一定的事件提示。處于這兩點,對目前已有的已經實現、無需購買許可證的 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    },    /**     * @returns {{player: flvjs.Player}}     */    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 的視頻《白鹿原》,可以看一下這個效果。

播放效果非常好,完全沒有卡頓和花屏,CPU 占用率也不高。

示例代碼倉庫: WhuRS-FGis/html5-rtsp 示例代碼倉庫:

總結

以上所述是小編給大家介紹的HTML5 播放 RTSP 視頻的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成av人影院在线观看| 日韩美女在线播放| 国产精品丝袜久久久久久不卡| 久久久成人的性感天堂| 久久亚洲精品中文字幕冲田杏梨| 国产日韩精品在线观看| 欧美福利视频在线观看| 91国偷自产一区二区三区的观看方式| 午夜精品视频在线| 8090成年在线看片午夜| 欧美精品久久久久久久久久| 日韩美女中文字幕| 国产在线精品一区免费香蕉| 在线丨暗呦小u女国产精品| 91九色综合久久| 理论片在线不卡免费观看| 久久91亚洲精品中文字幕奶水| 日本在线精品视频| 国产成人久久久| 久久99精品国产99久久6尤物| 在线播放国产一区中文字幕剧情欧美| 日韩电影视频免费| 国产精品久久久久久五月尺| 在线激情影院一区| 亚洲精品自产拍| 午夜免费日韩视频| 欧美精品在线播放| 日本久久亚洲电影| 色偷偷88888欧美精品久久久| 精品日韩中文字幕| 97精品一区二区视频在线观看| 亚洲人成电影网站色xx| 欧美巨猛xxxx猛交黑人97人| 高清一区二区三区四区五区| 国产不卡一区二区在线播放| 亚洲国产成人精品一区二区| 亚洲欧美另类在线观看| 欧美老女人在线视频| 国产精品99免视看9| 亚洲人成电影网站色xx| 亚洲国产精品女人久久久| 在线成人中文字幕| 精品久久久久久久久久| 亚洲视频在线看| 国产精品自在线| 国产黑人绿帽在线第一区| 亚洲国产欧美精品| 国产成人午夜视频网址| 国产一区在线播放| 欧美黑人又粗大| 国产精品18久久久久久麻辣| 亚洲欧洲一区二区三区在线观看| 欧美成人精品在线观看| 成人午夜黄色影院| 97久久精品人人澡人人爽缅北| 91久久嫩草影院一区二区| 97精品久久久中文字幕免费| 欧美日韩国产综合视频在线观看中文| 国产美女久久精品| 日韩精品在线视频| 欧美日产国产成人免费图片| 69国产精品成人在线播放| 国产精品福利无圣光在线一区| 日韩中文字幕在线免费观看| 久久人人爽人人爽爽久久| 最近2019年中文视频免费在线观看| 亚洲最大成人免费视频| 日韩精品在线免费观看| 精品国产31久久久久久| 操人视频在线观看欧美| 色噜噜狠狠色综合网图区| 欧美性xxxx极品hd欧美风情| 亚洲二区在线播放视频| 久久久精品网站| 国产精品久久一区主播| 成人国产精品久久久| 日本免费在线精品| 国产精品成人品| 亚洲欧美日韩国产中文| 国产精品日韩专区| 97视频在线观看免费高清完整版在线观看| 欧美激情视频免费观看| 国产精品久久久久久久久借妻| 高清欧美电影在线| 黄色一区二区三区| 欧美日韩一区二区免费在线观看| 欧美精品电影免费在线观看| 日韩精品中文在线观看| 亚洲国产精品va在线| 亚洲人成网站色ww在线| 日韩精品免费在线视频| 伦伦影院午夜日韩欧美限制| 国产精品99久久久久久久久| 97视频com| 国产欧美日韩91| 精品久久在线播放| 欧美精品少妇videofree| 亚洲精品aⅴ中文字幕乱码| 丝袜亚洲欧美日韩综合| 91成人在线观看国产| 欧美极品少妇xxxxⅹ裸体艺术| 国产亚洲精品美女| 欧美性xxxxhd| 色av中文字幕一区| 国产噜噜噜噜久久久久久久久| 91九色精品视频| 欧美猛男性生活免费| 中文字幕日韩视频| 日韩国产精品一区| 久久久久久亚洲精品中文字幕| 久久久久久久久久婷婷| 中文字幕精品在线视频| 亚洲欧美视频在线| 中文字幕成人精品久久不卡| 精品视频在线观看日韩| 日韩在线精品视频| 欧美一区在线直播| 欧美在线一区二区三区四| 97热在线精品视频在线观看| 国产精品成熟老女人| 午夜精品久久久久久久99黑人| 欧美夫妻性生活xx| 国产丝袜一区二区三区免费视频| 久久久国产精品免费| 亚洲国产精品热久久| 精品调教chinesegay| 日韩在线免费视频观看| 久久久这里只有精品视频| 久久久久亚洲精品成人网小说| 高清一区二区三区四区五区| 色妞一区二区三区| 日韩福利在线播放| 欧美另类极品videosbest最新版本| 色综合色综合久久综合频道88| 欧美高清视频在线| 91视频免费在线| 欧美成人午夜激情视频| 久精品免费视频| 精品国产网站地址| 亚洲欧美国产制服动漫| 国产日韩欧美一二三区| 亚洲激情视频在线观看| 日本一区二区不卡| 欧美华人在线视频| 日韩电影中文 亚洲精品乱码| 国产日韩综合一区二区性色av| 精品久久久久久中文字幕大豆网| 亚洲激情视频在线播放| 久久偷看各类女兵18女厕嘘嘘| 亚洲美女动态图120秒| 欧美午夜久久久| 国产精品永久免费视频| 高清一区二区三区日本久| 亚洲国产精品999| 精品久久久久人成| 精品久久久久久| 在线播放日韩专区| 亚洲色图综合网| 国产精品免费一区二区三区都可以| 亚洲变态欧美另类捆绑| 久久亚洲欧美日韩精品专区| 亚洲国产精品成人va在线观看| 日韩欧美高清在线视频| 91精品久久久久久久久久久久久|