溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

開源代碼Flv.js怎么用

發(fā)布時(shí)間:2021-02-23 13:44:24 來源:億速云 閱讀:207 作者:小新 欄目:web開發(fā)

小編給大家分享一下開源代碼Flv.js怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Flv.js

是 HTML5 Flash 視頻(FLV)播放器,純?cè)?JavaScript 開發(fā),沒有用到 Flash。由 bilibili 網(wǎng)站開源。

概覽:

  一個(gè)實(shí)現(xiàn)了在 HTML5 視頻中播放 FLV 格式視頻的 JavaScript 庫(kù)。它的工作原理是將 FLV 文件流轉(zhuǎn)碼復(fù)用成 ISO BMFF(MP4 碎片)片段,然后通過 Media Source Extensions 將 MP4 片段喂進(jìn)瀏覽器。

  flv.js 是使用 ECMAScript 6 編寫的,然后通過 Babel Compiler 編譯成 ECMAScript 5,使用 Browserify 打包。

功能:

  •           FLV 容器,具有 H.264 + AAC 編解碼器播放功能

  •           多部分分段視頻播放

  •           HTTP FLV 低延遲實(shí)時(shí)流播放

  •           FLV 通過 WebSocket 實(shí)時(shí)流播放

  •           兼容 Chrome, FireFox, Safari 10, IE11 和 Edge

  •           十分低開銷,并且通過你的瀏覽器進(jìn)行硬件加速

以上是官方的介紹,重點(diǎn)是開源讓我們用了,謝謝B站的大神們

以下是我整理的集成使用方案

一、部署方案

1、前提

首先這里要使用到nodejs和npm,如何安裝和部署在我之前的文章有寫過了,這里不再多說,需要可以看自行搜索。

2、下載代碼

github地址:https://github.com/Bilibili/flv.js

需要同步最新代碼的同學(xué)要使用git,沒有g(shù)it的也可以下載zip文件

開源代碼Flv.js怎么用

代碼下載下來后

我放在了D:\code\flv.js-master

開源代碼Flv.js怎么用

3、構(gòu)建代碼

因?yàn)榇a不能直接使用,我們需要用到nodejs的npm模塊進(jìn)行構(gòu)建

1)先打開cmd命令行窗口(這里記得用右鍵打開以管理員身份運(yùn)行),不然可能運(yùn)行會(huì)error

cd命令到放置代碼的地方,我是放在D:\code\flv.js-master上

開源代碼Flv.js怎么用

2)執(zhí)行npm構(gòu)建,這里是進(jìn)行安裝開發(fā)環(huán)境的操作

npm install

  等待執(zhí)行完后,會(huì)出現(xiàn)下圖

開源代碼Flv.js怎么用

D:\code\flv.js-master會(huì)多出了一個(gè)node_modules文件夾

開源代碼Flv.js怎么用

3)安裝生成工具

npm install -g gulp

開源代碼Flv.js怎么用

4)包裝和最小化JS放在dist文件夾里

gulp release

開源代碼Flv.js怎么用

然后D:\code\flv.js-master\dist里就終于得到我們需要flv.js和flv.min.js代碼了

flv.js壓縮前代碼

flv.min.js壓縮后代碼

開源代碼Flv.js怎么用

二、整合方案

代碼DEMO-html頁(yè)面

<!DOCTYPE html>
<html>

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>flv.js demo</title>

    <style>
        .mainContainer {
            display: block;
            width: 1024px;
            margin-left: auto;
            margin-right: auto;
        }

        .urlInput {
            display: block;
            width: 100%;
            margin-left: auto;
            margin-right: auto;
            margin-top: 8px;
            margin-bottom: 8px;
        }

        .centeredVideo {
            display: block;
            width: 100%;
            height: 576px;
            margin-left: auto;
            margin-right: auto;
            margin-bottom: auto;
        }

        .controls {
            display: block;
            width: 100%;
            text-align: left;
            margin-left: auto;
            margin-right: auto;
        }
    </style>
</head>

<body>
    
    <p class="mainContainer">
        <input name="urlinput" class="urlInput" type="text" value="http://localhost/Test/test1.mp4"/>
        <video name="videoElement" class="centeredVideo" controls autoplay width="1024" height="576">
            Your browser is too old which doesn't support HTML5 video.
        </video>
        <br>
        <p class="controls">
            <button onclick="flv_load()">Load</button>
            <button onclick="flv_start()">Start</button>
            <button onclick="flv_pause()">Pause</button>
            <button onclick="flv_destroy()">Destroy</button>
            <input style="width:100px" type="text" name="seekpoint"/>
            <button onclick="flv_seekto()">SeekTo</button>
        </p>
    </p>

    <script src="flv.min.js?1.1.9"></script>
    
    <script>
        function flv_load() {
            console.log('isSupported: ' + flvjs.isSupported());
            var urlinput = document.getElementsByName('urlinput')[0];
            var xhr = new XMLHttpRequest();
            xhr.open('GET', urlinput.value, true);
            xhr.onload = function (e) {
                var player;
                var element = document.getElementsByName('videoElement')[0];
                if (typeof player !== "undefined") {
                    if (player != null) {
                        player.unload();
                        player.detachMediaElement();
                        player.destroy();
                        player = null;
                    }
                }
              
                player = flvjs.createPlayer({
                    type: 'mp4',
                    url: urlinput.value
                });
                player.attachMediaElement(element);
                player.load();
            }
            xhr.send();
        }

        function flv_start() {
            player.play();
        }

        function flv_pause() {
            player.pause();
        }

        function flv_destroy() {
            player.pause();
            player.unload();
            player.detachMediaElement();
            player.destroy();
            player = null;
        }

        function flv_seekto() {
            var input = document.getElementsByName('seekpoint')[0];
            player.currentTime = parseFloat(input.value);
        }

        function getUrlParam(key, defaultValue) {
            var pageUrl = window.location.search.substring(1);
            var pairs = pageUrl.split('&');
            for (var i = 0; i < pairs.length; i++) {
                var keyAndValue = pairs[i].split('=');
                if (keyAndValue[0] === key) {
                    return keyAndValue[1];
                }
            }
            return defaultValue;
        }

        var urlInputBox = document.getElementsByName('urlinput')[0];
        var url = decodeURIComponent(getUrlParam('src', urlInputBox.value));
        urlInputBox.value = url;
        
        document.addEventListener('DOMContentLoaded', function () {
            flv_load();
        });
    </script>
    
</body>

</html>

結(jié)果

開源代碼Flv.js怎么用

Ps:視頻要放在服務(wù)器上,這里我用的是Java Web項(xiàng)目,tomcat部署,視頻找個(gè)位置就可以了,主要是記住位置

以上是“開源代碼Flv.js怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI