欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

flv.js简单使用示例 有大用

见附件

flv.js简单使用示例

0.333字数 203阅读 60,162

Bilibili相信大家都不会陌生,而 Flv.js 就是由 bilibili 网站开源的 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发(ECMAScript 6 编写) ,没有用到 Flash。
它的工作原理是 Flv.js 在 JavaScript 中流式解析 flv 文件流,并实时转封装为 fmp4 ,通过 Media Source Extensions 喂给浏览器,实现了 FLV 格式视频的播放。
github

如果你已经安装了nodejs可以使用 npm来安装 flv.js
推荐使用cnpm 来安装
当然你也可以使用其他方式进行下载
在下载好的文件夹中找到dist文件夹中的flv.min.js复制出来

可以使用简单的服务器测试

代码:

<!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">
        <video id="videoElement" class="centeredVideo" controls autoplay width="1024" height="576">Your browser is too old which doesn't support HTML5 video.</video>
    </div>
    <br>
    <div class="controls">
        <!--<button onclick="flv_load()">加载</button>-->
        <button onclick="flv_start()">开始</button>
        <button onclick="flv_pause()">暂停</button>
        <button onclick="flv_destroy()">停止</button>
        <input style="width:100px" type="text" name="seekpoint" />
        <button onclick="flv_seekto()">跳转</button>
    </div>
    <script src="flv.min.js"></script>
    <script>
        var player = document.getElementById('videoElement');
        if (flvjs.isSupported()) {
            var flvPlayer = flvjs.createPlayer({
                type: 'flv',
                url: '你的视频.flv'
            });
            flvPlayer.attachMediaElement(videoElement);
            flvPlayer.load(); //加载
        }

        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() {
            player.currentTime = parseFloat(document.getElementsByName('seekpoint')[0].value);
        }
    </script>
</body>

</html>

相关文章 使用flv.js实现播放视频直播示例

18人点赞
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
关爱单身狗成长协会一条流浪狗 码云:git.oschina.net/baojuhua
总资产184 (约8.56元)共写了5.4W字获得842个赞共673个粉丝



全部评论39只看作者
按时间倒序
按时间正序

12楼 
chrome不能播,firefox不能播,大佬有遇到吗?
 赞 回复
11楼 
拉流失败能不能设置重拉次数?
 赞 回复
10楼 
你这个仿佛用不了
 赞 回复
9楼 
怎么访问服务器上的flv文件啊,
Failed to load http://xxx.xxx.xx.x/pic/2018/07/17/1531813824292955.flv: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8088' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
怎么解决啊,大神们,我直接运行的,没有和后台关联
 赞 回复
跨域要看 视频服务器 是怎么设置了 如果不能改服务器 可以尝试 通过代理请求的方式访问资源
 回复
@关爱单身狗成长协会 访问服务器上的视频需要加载完成后才能观看,这个怎么解决呢?大神
 回复
 添加新评论
8楼 
不知道为什么报这样的错
logger.js:38 [TransmuxingController] > DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 5
value @ logger.js:38

20events.js:62 Uncaught (in promise) Error: Uncaught, unspecified "error" event. (MediaError)
at i.emit (events.js:62)
at i.<anonymous> (flv-player.js:239)
at i.emit (events.js:84)
at transmuxer.js:181
at <anonymous>
 1 回复
我也是报这样的错了,请问您解决了吗?
 回复
+1
 回复
+1,解决了吗
 回复
 添加新评论还有2条评论,查看更多
7楼 
那个controls是要自己写吗 ? 怎么获取视频时长啊 ?
 赞 回复
player.currentTime 当前时间(秒)
player.duration 总时间(秒)
如果你用在直播上 额 应该是没有总时间的 你可以通过计算 开播时间 到现在的时间差作为 当前时间
 回复
@关爱单身狗成长协会 如 currentTime 这些api都是和原生一样的吗 ? 没有在文档上找到这些api
 回复
@一袭白衣染 做的点播 不是直播
 回复
 添加新评论还有8条评论,查看更多
6楼 
您这个是直播还是点播啊
 赞 回复
5楼 
直播http-flv 在移动端好像播放不了? 还是需要怎么样的配置?
 赞 回复
你说移动端播放不了 那也就是说 PC端可以喽?:joy:
 回复
@关爱单身狗成长协会 确定视频没跨域吧?:joy:
 回复
 添加新评论
4楼 
是否支持 自定义设置播放器的Header呢?
 赞 回复
什么 Header
 回复
 回复
@关爱单身狗成长协会 这个就是我问的。。。
 回复
 添加新评论还有1条评论,查看更多
3楼 
只能播放flv格式的视频吗?有木有api文档之类的东西呀

来自  https://www.jianshu.com/p/1b825ae84005

附件大小
Package icon flv.js-master.zip183.34 KB
普通分类: