Giter Club home page Giter Club logo

pearplayer.js's Introduction

 
PearPlayer.js

一个支持多协议、多源、混合P2P-CDN的流媒体播放器


English

PearPlayer(梨享播放器) 是完全用JavaScript写的开源HTML5流媒体播放框架,实现了融合HTTP(包含HTTPS、HTTP2)、WebRTC的多协议、多源、低延迟、高带宽利用率的无插件Web端流媒体加速能力。基于H5的MSE技术(Media Source Extension)将来自多个源节点的Buffer分块喂给播放器,再加上精心设计的算法来达到最优的调度策略及对各种异常情况的处理,Pear Player能在保证用户流畅视频体验的前提下最大化P2P率。

multisources

multisources

只需将pear-player.min.js通过<script>标签导入到HTML就可以使用。 参考以下代码示例,也可以查看/examples/player-test.html来了解使用方法。

信令部分以及WebRTC部分使用了精心设计的协议,实现此部分可以参考API文档

特性

  • P2P能力基于WebRTC,无须安装任何插件
  • 播放流畅,加载快速,严格测试,稳定可靠
  • 多协议(HTTP、HTTPS、WebRTC)、多源
  • 自研的调度算法,在保证用户流畅视频体验的前提下最大化P2P率
  • 默认无需填参数(内部根据视频码率等作自适应),高级使用模式可自行调整算法和参数
  • 默认不会无限制缓冲,尽可能为CP用户节省带宽/流量
  • 支持Chrome、Firefox、Opera、腾讯微信、X5/TBS等主流浏览器,不久将支持Safari11
  • 可选接入低成本、高可用性的Pear Fog CDN
  • 协议默认通过TLS/DTLS全加密,无DPI特征;并可通过Pear Fog组件的动态端口映射进一步消除统计学特征
  • 像使用HTML5 <video>标签一样简单,并容易与video.js等流行播放框架集成
  • 目前已实现Browser P2P能力(基于WebTorrent)

Demo演示地址:https://demo.webrtc.win/pearplayer

multisources

快速开始

将以下代码拷贝到html中,打开网页,见证奇迹的时刻到了~

<script src="https://cdn.jsdelivr.net/npm/pearplayer@latest"></script>
<video id="video" controls></video>
<script>
    var player = new PearPlayer('#video', {
        src: 'https://qq.webrtc.win/tv/Pear-Demo-Yosemite_National_Park.mp4'
    });
</script>

使用方法

导入js文件并绑定video标签

首先通过script标签导入pear-player.min.js:

<script src="./dist/pear-player.min.js"></script>

或者使用CDN:

<script src="https://cdn.jsdelivr.net/npm/pearplayer@latest"></script>

假设用video标签播放如下视频,HTML如下所示:

<video id="pearvideo" src="https://qq.webrtc.win/tv/Pear-Demo-Yosemite_National_Park.mp4" controls>

只需要如下几行代码,即可将PearPlayer绑定到video标签:

<script>
/**
 * 第一个参数为video标签的id或class
 * opts是可选的参数配置
 */
var player = new PearPlayer('#pearvideo', opts);
</script>

恭喜您,您的播放器已经具备P2P能力了,而且无须任何插件!

谁在用我们的产品?

Pear Player 文档

致谢

特别感谢以下项目,为本项目提供了部分灵感来源以及API设计参考:

演讲与媒体报道

License

MIT. Copyright (c) Pear Limited and snowinszu.

帮助与支持

E-mail: [email protected];用户QQ群:373594967CP/CDN接入、OEM与其他商务合作

pearplayer.js's People

Contributors

snowinszu avatar cheedoong avatar yinghaojiang avatar liyongming1982 avatar

Watchers

James Cloos avatar Leo avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.