DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > 经验分享 > HTML5

html5视频播放插件flv.js的下载及使用/H5视频流直播可使用websocket


Flv.js是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。本网下载地址:flv-1.5.0.zip


概览:

一个实现了在 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

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


官方示例:

<script src="flv.min.js"></script>

<video id="videoElement"></video>

<script>

    if (flvjs.isSupported()) {

        var videoElement = document.getElementById('videoElement');

        var flvPlayer = flvjs.createPlayer({

            type: 'flv',

            url: 'http://example.com/flv/video.flv'

        });

        flvPlayer.attachMediaElement(videoElement);

        flvPlayer.load();

        flvPlayer.play();

    }

</script> 


实例整合调用代码页面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>  

    <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>

Ps:视频要放在服务器上即使用http://或https://开头的地址!


flv.js本网下载地址:flv-1.5.0.zip

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号