婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML5 播放 RTSP 視頻的實例代碼

HTML5 播放 RTSP 視頻的實例代碼

熱門標簽:電話機器人技術 智能電銷機器人被禁用了么 如何查看地圖標注 地圖標注軟件打印出來 欣鼎電銷機器人 效果 ok電銷機器人 黃石ai電銷機器人呼叫中心 惡搞電話機器人 高德地圖標注商戶怎么標

目前大多數網絡攝像頭都是通過 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 視頻的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:中山 盤錦 阿壩 聊城 綏化 金昌 赤峰 萍鄉

巨人網絡通訊聲明:本文標題《HTML5 播放 RTSP 視頻的實例代碼》,本文關鍵詞  HTML5,播放,RTSP,視頻,的,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5 播放 RTSP 視頻的實例代碼》相關的同類信息!
  • 本頁收集關于HTML5 播放 RTSP 視頻的實例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产区在线观看成人精品| 91丨porny丨在线| 久久99国产精品久久99| 国产不卡视频在线播放| 免费一区二区视频| 欧美三级中文字| 中文字幕一区二区三区色视频| 婷婷成人综合网| 91精品国产91久久综合桃花| 亚洲激情第一区| 亚洲欧美日韩一区二区三区在线观看| 国产一区欧美一区| 日韩女优视频免费观看| 国产一区二区三区不卡在线观看 | 亚洲视频资源在线| 国产精品一色哟哟哟| 久久影院视频免费| 久久se精品一区二区| 国产喂奶挤奶一区二区三区| 韩日精品视频一区| 国产欧美日韩一区二区三区在线观看| 成人精品视频一区二区三区尤物| 久久久久久久久久美女| 日韩国产在线观看一区| 7777精品伊人久久久大香线蕉最新版| 一区二区国产视频| 久久亚洲二区三区| 国产成人精品免费看| 久久午夜色播影院免费高清| av不卡免费在线观看| 日韩美女视频一区| 国产一区二区网址| 午夜精品一区在线观看| 欧美老女人在线| 成人午夜碰碰视频| 一区二区三区在线观看动漫| 欧美三级视频在线观看| 国产美女视频一区| 中文字幕成人av| 欧美日韩一区二区三区四区 | 国产人伦精品一区二区| 99国产精品久久久久久久久久| 国产精品伦一区二区三级视频| 99在线视频精品| 亚洲电影你懂得| 精品国产亚洲一区二区三区在线观看| 国产成人免费网站| 亚洲国产精品v| 欧美日韩一区二区三区在线看| 夜夜夜精品看看| 91精品久久久久久蜜臀| 国产69精品久久久久777| 亚洲精品视频在线观看免费| 精品国产一区二区三区四区四| 国产91丝袜在线观看| 91精品在线一区二区| 国产一区二区三区免费看| 亚洲视频一二三| 日韩欧美国产综合| eeuss影院一区二区三区| 午夜精品成人在线| 国产精品免费视频一区| 日韩午夜电影在线观看| 色偷偷一区二区三区| 亚洲综合网站在线观看| 久久精品一区二区三区av| 日本高清成人免费播放| 国产一区二区在线影院| **欧美大码日韩| 国产亚洲综合性久久久影院| 欧美夫妻性生活| 91麻豆免费视频| 成人免费高清视频| 国产做a爰片久久毛片| 日韩二区三区四区| 亚洲一区日韩精品中文字幕| 中文字幕av资源一区| 色综合夜色一区| 日本一区二区三区视频视频| 最新国产の精品合集bt伙计| 久久久久亚洲综合| 欧美男男青年gay1069videost| 99v久久综合狠狠综合久久| 国内精品写真在线观看| 日韩福利电影在线观看| 视频一区中文字幕| 亚洲一区成人在线| 亚洲一二三四区| 一级精品视频在线观看宜春院| 中文成人av在线| 国产精品成人午夜| 国产日韩成人精品| 欧美酷刑日本凌虐凌虐| 在线免费亚洲电影| 成人黄页在线观看| 成人黄色av电影| 亚洲国产视频在线| 亚洲色图丝袜美腿| 亚洲精选视频在线| 一区二区不卡在线播放| 精品国产乱码久久久久久牛牛| 欧美高清视频一二三区| 成人av网站免费| 成人av在线资源网站| 91麻豆免费在线观看| 色噜噜狠狠色综合中国| 色偷偷一区二区三区| 色琪琪一区二区三区亚洲区| 亚洲影视在线观看| 国产精品天美传媒| 国产福利精品一区二区| 国产最新精品免费| 蜜桃视频在线观看一区二区| 亚洲18影院在线观看| 亚洲人成影院在线观看| 综合欧美一区二区三区| 亚洲乱码日产精品bd| 午夜精品福利在线| 亚洲成人av一区| 91在线你懂得| 日本最新不卡在线| 欧美在线高清视频| 欧美精品一区二区三区很污很色的 | 欧美日韩中文另类| 日韩天堂在线观看| 国产精品色哟哟| 免费一级片91| 91色九色蝌蚪| 日韩欧美你懂的| 亚洲精品一区二区三区福利| 久久综合狠狠综合| 亚洲色图.com| 麻豆精品久久久| 在线精品视频一区二区三四| 精品久久久久久最新网址| 亚洲欧美综合在线精品| 日本午夜精品视频在线观看| 麻豆精品视频在线观看| 在线免费观看不卡av| 国产精品视频观看| 三级亚洲高清视频| 久草中文综合在线| av在线一区二区三区| 精品处破学生在线二十三| 亚洲福利一二三区| 成人a免费在线看| 久久久久久久国产精品影院| 亚洲动漫第一页| bt欧美亚洲午夜电影天堂| 2019国产精品| 日本一区二区三区四区| 国产成人av电影在线| 精品国产免费久久 | 色婷婷国产精品综合在线观看| 精品国产91亚洲一区二区三区婷婷| 欧美videos大乳护士334| 香港成人在线视频| 色猫猫国产区一区二在线视频| 国产亚洲精品7777| 激情综合网av| 精品久久久三级丝袜| 日本不卡视频在线| 91亚洲精品一区二区乱码| 91精品午夜视频| 亚洲国产精品一区二区尤物区| 91浏览器入口在线观看| 综合色天天鬼久久鬼色| 91社区在线播放| 久久嫩草精品久久久久| 国产盗摄一区二区三区| 国产午夜精品一区二区三区视频| 日本不卡在线视频| 91精品国产91综合久久蜜臀| 青青国产91久久久久久| 日韩一区二区三区视频| 久久精品av麻豆的观看方式| 日韩精品一区二区三区视频 | 免费看日韩精品| 7777精品伊人久久久大香线蕉的| 亚洲一区在线播放| 日韩精品一二三四| 亚洲国产精品久久一线不卡| 日韩精品电影在线| 91精品国产综合久久精品| 青青青伊人色综合久久| 国产日韩视频一区二区三区| 成人三级在线视频| 亚洲视频中文字幕| 欧美日韩国产大片| 一区二区三区在线看| 3atv在线一区二区三区| 国产欧美日韩精品一区| 国产一区二区视频在线| 国产精品理论片| 欧美日韩一区二区不卡| 久草在线在线精品观看| 国产日韩综合av| 欧美中文字幕久久| 亚洲电影视频在线| 久久精品网站免费观看|