Git Product home page Git Product logo

pearplayer.js's Introduction

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

npm jsdelivr License


English

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

PearPlayer

multisources

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

特性

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

bitmap

快速开始

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

<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是可选的参数配置
  */
  if (PearPlayer.isMSESupported()) {
    var player = new PearPlayer('#pearvideo', opts);
  }
</script>

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

如何为自己的视频加速?

示例中的视频是已经分发过的,那么如何为任意视频加速呢?很简单,只需在视频分发系统中添加您的视频URL,即可利用Pear的海量节点为您的视频加速!具体教程请点击这里(目前新注册用户可以免费分发3个大小不超过100MB的MP4或TS格式的文件,视频名字需添加Pear-Demo前缀,如Pear-Demo-movie.mp4

谁在使用我们的产品?

PearPlayer 文档

致谢

特别感谢以下项目,为本项目提供了部分灵感以及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 fionaxie1992 avatar liyongming1982 avatar zhengshuqivip avatar diygod avatar damonqin avatar

Stargazers

yong avatar

Watchers

James Cloos avatar yong 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.