如何在手机端中使用HTML5插入flv格式的视频

想要在用HTML5开发的软件中的登录页面使用flv格式的视频作为背景播放,想问一下怎么实现。我查过挺多帖子都说HTML5并不支持flv格式的视频,但是又不能用MP4格式的,因为视频要放在本地安装包中,要求视频尽量不超过3M,问问大神们怎么解决这个问题。感谢

阅读 15.6k
4 个回答

先说结果:可行。
预览地址:
我临时在个人站点上提供一个预览链接,三天后删除

http://alonesuperman.com/show...

用到了b站开源的flv.js
https://github.com/Bilibili/f...
刚才自己改了下demo
给你看看

<!DOCTYPE html>
<html>

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>flv.js demo2</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">
        <video id="videoElement" 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="../dist/flv.js"></script>
    
    <script>
        function flv_load() {
            if (flvjs.isSupported()) {
                var videoElement = document.getElementById('videoElement');
                var flvPlayer = flvjs.createPlayer({
                    type: 'flv',
                    url: '1.flv'
                });
                flvPlayer.attachMediaElement(videoElement);
                flvPlayer.load();
                flvPlayer.play();
            }
            window.player=flvPlayer;
        }

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

    </script>
    
</body>

</html>

clipboard.png

clipboard.png

FLV就可以不放安装包还是说没有大小限制?首先,想直接指定FLV地址是不行的,需要用HTML5的MSE技术,也就是JS把FLV转成fMP4,而iOS到目前为止并不支持该技术。现成的HTML5 FLV播放器playease.js,支持IE8+浏览器,支持http-flv、websocket-flv、websocket-fmp4,以及HTML5的3大格式,和RTMP(Flash)。

不超过 3M ,可以通过重新解码再编码 mp4 来实现,HTML5 播放 flv 就不要考虑了,难度太大。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题