B站视频开源代码flv.js的使用部署心得(代码整理)

Flv.js 

是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。

 

概览:

一个实现了在 Html5 视频中播放 FLV 格式视频的 JavaScript 库。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF(MP4 碎片)片段,然后通过 Media Source Extensions 将 MP4 片段喂进浏览器。

flv.js 是使用 ECMAScript 6 编写的,然后通过 Babel Compiler 编译成 ECMAScript 5,使用 Browserify 打包。

功能:

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

  • 多部分分段视频播放

  • HTTP FLV 低延迟实时流播放

  • FLV 通过 WebSocket 实时流播放

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

  • 十分低开销,并且通过你的浏览器进行硬件加速

以上是官方的介绍,重点是开源让我们用了,谢谢B站的大神们

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

一、部署方案

 

1、前提

 

首先这里要使用到nodejs和npm,如何安装和部署在我之前的文章有写过了,这里不再多说,需要可以看【nodejs完整安装的过程和安装npm模块插件整理(图文包括踩过的坑)

 

 

2、下载代码

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

需要同步最新代码的同学要使用git,没有git的也可以下载zip文件

 

代码下载下来后

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

 

3、构建代码

因为代码不能直接使用,我们需要用到nodejs的npm模块进行构建

1)先打开cmd命令行窗口(这里记得用右键打开以管理员身份运行),不然可能运行会error

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

 

2)执行npm构建,这里是进行安装开发环境的操作

[html] view plain copy

  1. npm install  

等待执行完后,会出现下图

 

D:\code\flv.js-master会多出了一个node_modules文件夹

 

3)安装生成工具

[html] view plain copy

  1. npm install -g gulp  


 

4)包装和最小化JS放在dist文件夹里

[html] view plain copy

  1. gulp release  


 

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

flv.js压缩前代码

flv.min.js压缩后代码

 

 

二、整合方案

 

代码DEMO-html页面

<!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>
    
    <div 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>
        <div 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>
        </div>
    </div>

    <script src="flv.min.js"></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>

下载Demo

请点击

结果

Ps:视频要放在服务器上,这里我用的是Java Web项目,tomcat部署,视频找个位置就可以了,主要是记住位置

 

如有任何问题或疑问欢迎加入QQ群交流:466355109

转载于:https://my.oschina.net/u/2532228/blog/833918

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: flv.jsflv.min.js是一种用于网页浏览器的JavaScript库,它们用于处理FLV(即Flash Video)格式的视频文件。FLV是一种常见的视频格式,通常在网络上广泛使用。 要使用flv.jsflv.min.js,首先需要将这两个文件下载到本地。通常,我们可以从官方网源代码托管网上获取这些文件的压缩包(.zip文件),其中包含了所需的JavaScript库文件。 获取到压缩包后,我们需要将其解压缩。在解压缩后,我们可以看到两个文件:flv.jsflv.min.js。这两个文件是相同的,只是flv.min.js被压缩以减小文件大小。我们可以根据自己的需求选择使用哪一个。 接下来,将flv.jsflv.min.js文件复制到自己的项目中的合适位置。可以将它放在项目的JavaScript文件夹中或根据项目结构进行适当的组织。 在HTML文件中加入一个script标签,并设置其src属性为flv.jsflv.min.js的路径。例如: ```html <script src="path/to/flv.js"></script> ``` 或 ```html <script src="path/to/flv.min.js"></script> ``` 这样,当浏览器加载页面时,它将自动下载并执行flv.jsflv.min.js文件中的代码。 在加载flv.jsflv.min.js后,我们可以使用其中的函数和方法来处理FLV视频文件。例如,我们可以使用它们来解码和播放FLV视频,控制视频的播放状态等等。 总而言之,flv.jsflv.min.js是用于处理FLV视频文件的JavaScript库,通过将其解压缩并在网页中引入,在项目中使用其提供的函数和方法来操作FLV视频。 ### 回答2: flv.jsflv.min.js是两个JavaScript库,用于在网页中播放FLV格式的视频。这两个库的常规使用方法如下: 首先,我们需要在网页中引入flv.jsflv.min.js文件。可以通过在HTML代码中添加以下方式来实现: ``` <script src="flv.js"></script> ``` 或 ``` <script src="flv.min.js"></script> ``` 接下来,我们需要创建一个video标签来展示视频。可以在HTML代码中添加以下方式来实现: ``` <video id="videoElement" controls></video> ``` 然后,我们需要使用JavaScript代码来初始化flv.jsflv.min.js,并将其应用到video标签。可以在JavaScript代码中添加以下方式来实现: ``` <script> if (flvjs.isSupported()) { var videoElement = document.getElementById('videoElement'); var flvPlayer = flvjs.createPlayer({ type: 'flv', url: 'path/to/video.flv' }); flvPlayer.attachMediaElement(videoElement); flvPlayer.load(); flvPlayer.play(); } </script> ``` 在上述JavaScript代码中,'path/to/video.flv'需要替换为实际的视频文件路径。 这样,当网页加载完成后,flv.jsflv.min.js将会自动加载视频文件,并在video标签中播放FLV格式的视频。 需要注意的是,为了确保浏览器兼容性,我们可以使用flv.min.js文件,它是经过压缩和优化的版本,可以减小文件大小并提高加载速度。 希望以上信息对您有帮助!如果还有其他问题,请随时提问。 ### 回答3: flv.jsflv.min.js是一种用于播放FLV格式视频的JavaScript库。这些库提供了一种简便的方式来在浏览器中播放FLV视频,而无需使用Flash插件。 常规使用这些库的步骤如下: 1. 首先,您需要下载flv.jsflv.min.js文件并将其包含在您的网页中。您可以从官方网或相关的源代码仓库获取这些文件,并将其放置在您的项目目录中。 2. 在您的HTML文件中,通过使用<script>标签引入flv.jsflv.min.js文件。您可以通过指定文件的路径来引入这些文件,例如: ```html <script src="path/to/flv.min.js"></script> ``` 3. 创建一个<video>元素,将其作为视频播放器。您可以使用<video>元素的id属性来引用该元素,例如: ```html <video id="myPlayer" controls></video> ``` 4. 在您的JavaScript代码中,使用flvjs.createPlayer()函数来创建一个播放器实例。此函数需要传入一个配置对象,其中包含要播放的视频的URL。您还可以指定其他配置选项,如是否启用音频、视频缓冲等。例如: ```javascript var flvPlayer = flvjs.createPlayer({ type: 'flv', url: 'path/to/video.flv', isLive: false }); ``` 5. 通过调用flvPlayer.attachMediaElement()和flvPlayer.load()方法,将<video>元素和播放器实例关联起来,并始加载视频。例如: ```javascript flvPlayer.attachMediaElement(document.getElementById('myPlayer')); flvPlayer.load(); ``` 6. 最后,您可以在需要的时候通过调用flvPlayer.play()方法来始播放视频。其他功能,如暂停、停止、设置音量等,也可以通过在适当的时机调用不同的方法来实现。 使用以上步骤,您可以在浏览器中成功播放FLV格式的视频flv.jsflv.min.js发者提供了一个简单且可靠的解决方案,使他们能够轻松地在Web应用程序中集成FLV视频播放功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值