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

首頁 > 編程 > HTML > 正文

HTML5 播放 RTSP 視頻的實例代碼

2024-08-26 00:21:36
字體:
來源:轉載
供稿:網友

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

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

目前已有 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    },    /**     * @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 的視頻《白鹿原》,可以看一下這個效果。

HTML5,RTSP,視頻,代碼

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

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

總結

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


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
免费91麻豆精品国产自产在线观看| 久久久久久久久网站| 国产精品夜色7777狼人| 国产精品无码专区在线观看| 日韩免费在线电影| 91精品国产自产在线观看永久| 亚洲精品videossex少妇| 精品亚洲一区二区三区在线观看| 亚洲性日韩精品一区二区| 美女啪啪无遮挡免费久久网站| 日韩欧美在线视频免费观看| 欧美性猛交xxxx免费看久久久| 国产999精品久久久影片官网| 亚洲色图35p| 欧洲s码亚洲m码精品一区| 亚洲美女av在线播放| 久久久久国产精品www| 亚洲欧美日韩精品久久亚洲区| 久久99亚洲热视| 7m第一福利500精品视频| 97激碰免费视频| 午夜免费久久久久| 日韩在线激情视频| 日韩欧美在线字幕| 成人动漫网站在线观看| 日韩综合视频在线观看| 亚洲一区美女视频在线观看免费| 中文字幕亚洲无线码在线一区| 久久综合免费视频影院| 国产精品女人久久久久久| 亚洲天堂男人的天堂| 久久久久久网站| 日韩欧美一区二区在线| 日本人成精品视频在线| 国产欧美在线看| 日韩精品在线免费观看| 亚洲自拍中文字幕| 97精品免费视频| 亚洲第一二三四五区| 久久精品免费电影| 国产精品欧美一区二区| 精品久久久999| 欧美巨乳美女视频| 韩剧1988免费观看全集| 久久久国产一区二区| 伊人久久大香线蕉av一区二区| 日韩精品在线免费播放| 久久青草精品视频免费观看| 国产精品美乳一区二区免费| 精品动漫一区二区| 中文字幕日韩专区| 91国内精品久久| 国内精品久久久久| 国产欧美日韩免费看aⅴ视频| yellow中文字幕久久| 欧美乱大交xxxxx另类电影| 中文字幕欧美日韩va免费视频| 日韩有码片在线观看| 欧美精品videossex性护士| 久久久成人的性感天堂| 最近2019中文字幕第三页视频| 国产免费观看久久黄| 精品小视频在线| 国产精品视频公开费视频| 亚洲精品电影网在线观看| 日韩av在线网址| 国产精品久久久久久久久久久久| 97香蕉超级碰碰久久免费的优势| 清纯唯美日韩制服另类| 亚洲国产高清高潮精品美女| 97在线视频观看| 欧美日韩色婷婷| 欧美第一淫aaasss性| 色综合久久悠悠| 亚洲日韩第一页| 国产精品第100页| 国产精品v日韩精品| 国产精品亚洲精品| 国产丝袜一区二区三区| 91网站免费看| 欧美视频在线观看免费网址| 欧美麻豆久久久久久中文| 亚洲欧美国产精品专区久久| 色樱桃影院亚洲精品影院| 欧美最猛黑人xxxx黑人猛叫黄| 欧美性理论片在线观看片免费| 欧美性受xxxx黑人猛交| 国产亚洲精品久久久久久777| 91欧美日韩一区| 欧美一级bbbbb性bbbb喷潮片| 在线观看欧美日韩国产| 亚洲韩国青草视频| 久久国产精品久久精品| 久久免费视频这里只有精品| 欧美日韩国产一区二区| 日本中文字幕久久看| 久久久这里只有精品视频| 亚洲国产精品久久| 美女视频黄免费的亚洲男人天堂| 亚洲男人的天堂在线播放| 丁香五六月婷婷久久激情| 欧美激情亚洲精品| 欧美孕妇与黑人孕交| 日本精品久久中文字幕佐佐木| 久久久免费观看视频| 一区二区欧美在线| 国产视频在线观看一区二区| 久久久伊人日本| 4438全国成人免费| 色中色综合影院手机版在线观看| 国产美女搞久久| 欧美洲成人男女午夜视频| 欧美国产第一页| 亚洲欧洲激情在线| 国产亚洲欧美日韩一区二区| 亚洲精品美女久久| 精品久久香蕉国产线看观看gif| 色偷偷av一区二区三区| 色偷偷噜噜噜亚洲男人的天堂| 亚洲国产精品va在线观看黑人| 欧美性猛交xxxx久久久| 久99九色视频在线观看| 国内精品一区二区三区| 色偷偷av亚洲男人的天堂| 51精品国产黑色丝袜高跟鞋| 国产亚洲欧美视频| 色爱精品视频一区| 久久久在线免费观看| 日本一欧美一欧美一亚洲视频| 欧美久久精品一级黑人c片| 国a精品视频大全| 欧美大肥婆大肥bbbbb| 亚洲美女免费精品视频在线观看| 国产成人精品a视频一区www| 欧美日韩国产123| 一道本无吗dⅴd在线播放一区| 中文字幕亚洲欧美| 国产日韩精品在线观看| 一区二区欧美激情| 亚洲天堂网站在线观看视频| 最近2019年中文视频免费在线观看| www.色综合| 欧美另类极品videosbest最新版本| 九色精品美女在线| 午夜精品久久久久久久99热浪潮| 欧美激情精品久久久久久| 亚洲国产古装精品网站| 久久久精品国产亚洲| 国产欧美在线看| 日韩中文视频免费在线观看| 亚洲男人第一av网站| 国产精品爽爽爽| 成人网址在线观看| 97人人做人人爱| 亚洲丝袜一区在线| 日韩av手机在线看| 国产精品欧美日韩一区二区| 一本一本久久a久久精品牛牛影视| 国内成人精品一区| 欧美另类极品videosbest最新版本| 欧美高清自拍一区| 91久久在线观看| 国产精品91久久久久久| 成人伊人精品色xxxx视频|