Ai
1 Star 1 Fork 1

swarmcloud/hls-p2p-engine

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
videojs.html 2.74 KB
Copy Edit Raw Blame History
snowinszu authored 2024-08-12 00:41 +08:00 . release v2.12.1
<html>
<head>
<title>CDNBye videojs demo</title>
<link href="//cdnjs.cloudflare.com/ajax/libs/video.js/7.8.2/video-js.min.css" rel="stylesheet">
<script src="//cdnjs.cloudflare.com/ajax/libs/video.js/7.8.2/alt/video.core.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<!-- videojs-hls-quality-selector -->
<script src="//cdn.jsdelivr.net/npm/videojs-contrib-quality-levels@2.0.9/dist/videojs-contrib-quality-levels.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/videojs-hls-quality-selector@1.1.1/dist/videojs-hls-quality-selector.min.js"></script>
<!-- p2p-plugin -->
<script src="//cdn.jsdelivr.net/npm/cdnbye@latest/dist/videojs-hlsjs-plugin.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@swarmcloud/hls/p2p-engine.min.js"></script>
</head>
<body>
<video id=video width=600 height=300 class="video-js vjs-default-skin" controls>
</video>
<h3>download info:</h3>
<p id="info"></p>
<script>
var p2pConfig = {
logLevel: 'debug',
swFile: './sw.js',
live: false, // set to true in live mode
getStats: function (totalP2PDownloaded, totalP2PUploaded, totalHTTPDownloaded) {
var total = totalHTTPDownloaded + totalP2PDownloaded;
document.querySelector('#info').innerText = `p2p ratio: ${Math.round(totalP2PDownloaded/total*100)}%, saved traffic: ${totalP2PDownloaded}KB, uploaded: ${totalP2PUploaded}KB`;
},
// trackerZone: 'hk', // if using Hongkong tracker
// trackerZone: 'us', // if using USA tracker
// token: YOUR_TOKEN
};
var options = {
autoplay: true,
sources:[
{
src: 'https://test-streams.mux.dev/x36xhzz/url_2/193039199_mp4_h264_aac_ld_7.m3u8',
},
],
html5: {
hlsjsConfig: {
// Put your hls.js config here
// debug: true,
}
}
};
const initP2pEngine = (videojsPlayer, hlsjsInstance) => {
if (P2PEngineHls.isSupported()) {
new P2PEngineHls({
hlsjsInstance,
...p2pConfig
});
}
}
if (videojs.Html5Hlsjs) {
videojs.Html5Hlsjs.addHook('beforeinitialize', initP2pEngine);
// videojs.Html5Hlsjs.removeHook('beforeinitialize', initP2pEngine); // remove the hook function when leave page
} else {
// use ServiceWorker based p2p engine if hls.js is not supported, need additional file sw.js
new P2PEngineHls.ServiceWorkerEngine(p2pConfig);
}
P2PEngineHls.tryRegisterServiceWorker(p2pConfig).then(() => {
var player = videojs('video', options);
player.hlsQualitySelector();
})
</script>
</body>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/swarmcloud/hls-p2p-engine.git
git@gitee.com:swarmcloud/hls-p2p-engine.git
swarmcloud
hls-p2p-engine
hls-p2p-engine
main

Search