破解cdnbye的hls p2p加速

P2P 与 RayCDN 与 ENCODE 相融合,提供极度完善的流媒体加速运载能力;经过完善,现在任何站长均可以接入本系统,无论本系统运行状态怎样,均不会对流畅度造成负面的影响;简单的说,就算是接入后,我们的系统彻底挂掉,也不会对您网站造成任何影响,当然系统在正常运作时,会提供极度优秀的加速能力,下面介绍系统运作原理以及接入方法。

如图所示,其中signal信令服务器和tracker调度服务器,是整个系统的核心,整个圈子的建立和交互都由它们来完成,这一项服务由我们维护和优化,这是商业服务(我们已经收取到了一年的商业服务费用,站长们无需为服务稳定性担心)。

如图所示,其中signal信令服务器和tracker调度服务器,是整个系统的核心,整个圈子的建立和交互都由它们来完成,这一项服务由我们维护和优化,这是商业服务(我们已经收取到了一年的商业服务费用,站长们无需为服务稳定性担心)。
运作原理:

step1:将正在播放同一视频的用户纳入一个流量圈,将播放进度相似的用户进一步细分且纳入一个协同圈,当然细分原则中还涉及到网络质量等因素,具体原则就不一一描述,因为这个我们可能需要随时做升级和优化
step2:为圈内用户创建互联,协同且相互提供网络帮助以完成视频的流畅播放,这是一个很复杂的流程

step3:实时调度和调整流量圈的大小与范围,保障整个流量圈流畅与稳定
总的来说,就是让正在观看同一个视频的用户在网络上提供相互的帮助,以达到更好的流畅性和可靠性,整个系统只会优先去获取链路最好的数据,如果整个链路都不可用,那么还有CDN或者源的数据可以使用,这个切换是毫秒级的,所以在任何情况下,系统只会带来正向的加速能力,而不会出现拖后腿的现象!

可靠性:
代码的可靠性:暗加广告(代码)的卑鄙操作? 我们知道站长的担心,但是我们的系统完全不必考虑这个问题,我们不会给任何代码加密,完全透明公开,这样就完全的避免了这种可耻的行为。
保障运行的可靠性:我们不是免费提供服务,所以不会莫名其妙的断开服务,我们已经收取到了1年的运营费用(这个商业服务费用还是很高的,具体金额不透露),所以,您所想的依旧无需担心,有钱赚,不违法,我们不会中断服务。
接入方法:
首先,您必须使用的是支持H5的播放器,理论上说,所有的H5播放器都支持,我们推荐使用开源的DPLAYER,接入方法如下:
引入DPLAYER的播放器CSS样式,JS,以及我们修改后的以支持P2P的JS,同时在后方追加配置文件,p2p.js是在hls.js的基础上修改和加入了p2p-engine:
实现代码:

目前他们已经升级到了高的版本,但是现在的js得以保留, 需要将下面的信令服务器替换js文件中的地址,但是cdnbye对每一个channel做了加密,以此来判断是不是他们的产品,所以把下面的信令服务器的php代码需要进行修改

主要是:

实现代码:

<?php /**
 * @author 百码云
 * @copyright 2019
 * @version    1.0
 *
 * for ray-p2p system
 *
 */?><!DOCTYPE html><html>
 <head>
  <meta charset="UTF-8" /> 
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" /> 
  <meta name="referrer" content="never" /> 
  <title>云解析</title> 
  <style type="text/css">body,html,.dplayer{padding:0;margin:0;width:100%;height:100%;background-color:#000}a{text-decoration:none}</style> 
 </head> 
 <body> 
 <link rel="stylesheet" href="https://cdn.bskchina.cn/dplayer/DPlayer.min.css">
 <div id="dplayer"></div>
 <script src="https://cdn.bskchina.cn/p2p/p2p.js"></script>
    <script src="https://cdn.bskchina.cn/dplayer/dplayer.js"></script>
        <script>
            var  hlsjsConfig  =   {        
                debug:  false,
                        maxBufferHole:  3,
                        p2pConfig:  {            
                    logLevel:   'warn',
                                announce:   "https://tracker.klink.tech",
                                wsSignalerAddr:   'wss://signal.klink.tech/ws',
                            
                }    
            };    
            var  hls;    
            var  dp  =  new  DPlayer({        
                container:  document.getElementById('dplayer'),
                        autoplay: true,
                        loop: true,
                        screenshot: true,
                        hotkey: true,
                        preload: 'auto',
                        video:  {            
                    url:   '<?php echo($_REQUEST['
                    url ']);?>',
                                type:   'customHls',
                                customType:  {                
                        'customHls':   function  (video,  player)  {                    
                            var  isMobile  =  navigator.userAgent.match(/iPad|iPhone|Linux|Android|iPod/i)  !=  null;                    
                            if  (isMobile)  {                        
                                var  html  =  '<video src="'%20+%20video.src%20+%20'" controls="controls" autoplay="autoplay" width="100%" height="100%"></video>';                        
                                document.getElementById('dplayer').innerHTML  =  html;                    
                            } else {                        
                                hls  =  new  Hls(hlsjsConfig);                        
                                hls.loadSource(video.src);                        
                                hls.attachMedia(video);                        
                                hls.engine.on('stats',  function  (data)  {                            
                                    var  size  =  hls.engine.fetcher.totalP2PDownloaded;                            
                                    hls.engine.fetcher.totalP2PDownloaded = 0;                            
                                    if (size > 0) {                                
                                        hls.engine.signaler.signalerWs.send({
                                            action: 'stat',
                                            size: size
                                        });                            
                                    }                        
                                })                    
                            }                
                        }            
                    }        
                }    
            });
        </script>
</body></html>

hlsp2p-php-tracker

<?php    
error_reporting(E_ALL ^ E_NOTICE);    
@ini_set('display_errors', 'On');    
$route = $_GET['command'];    
$input = file_get_contents("php://input");    
$post_data = json_decode($input, true);    
# CORS    
if (isset($_SERVER['HTTP_ORIGIN'])) {    
	header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);    
}    
else {    
	header('Access-Control-Allow-Origin: *');    
}    
header('Access-Control-Allow-Credentials: true');    
header('Content-Type: application/json; charset=UTF-8');    
header('Vary: Origin');    
switch($route){    
	case'channel':    
		$channel = $post_data['channel'];    
		$device = $post_data['device'];    
		$netType = $post_data['device'];    
		$host = $post_data['host'];    
		$version = $post_data['version'];    
		$tag = $post_data['tag'];    
		$peer_id = uniqid();    
		$roomDir = 'peers/'.$channel;    
		makeDir($roomDir);    
		insertPeer(    
			$roomDir,    
			array(    
				"id"=>$peer_id,    
				"device"=>$device,    
				"netType"=>$netType,    
				"host"=>$host,    
				"version"=>$version,    
				"tag"=>$tag,    
				"conns"=>0,    
				"http"=>0,    
				"p2p"=>0,    
				"failConns"=>0    
			)    
		);    
		$out = array(    
			'ret'=>0,    
			'name'=>'channel',    
			'data'=>array(    
					'id'=>$peer_id,    
					'report_interval'=>10,    
					'peers'=>get_peers($roomDir,$peer_id)    
			)    
		);    
		echo json_encode($out);    
		break;    
	case'peers':    
		$channel = $_GET['channel'];    
		$peer_id =  $_GET['node'];    
		$roomDir = 'peers/' . $channel;    
		if ( file_exists($roomDir . '/' . $peer_id) ) {    
			$out = array(    
				'ret'=>0,    
				'name'=>'channel',    
				'data'=>array(    
						'peers'=>get_peers($roomDir,$peer_id)    
				)    
			);    
		}    
		else {    
			$out = array(    
				'ret'=>-1,    
				'name'=>'errmsg',    
				'data'=>array(    
						'err'=>0,    
						'msg'=>'Not Register Node'    
				)    
			);    
		}    
		echo json_encode($out);    
		break;    
	case'stats':    
		$channel = $_GET['channel'];    
		$node =  $_GET['node'];    
		$out = array(    
			'ret'=>0,    
			'name'=>'stats',    
			'data'=>array()    
		);    
		echo json_encode($out);    
		$roomDir = 'peers/' . $channel;    
		$json = json_decode(file_get_contents( __DIR__ . '/' . $roomDir . '/' . $node) );    
		if ( !isset($post_data['conns']) ) {    
			$post_data['conns'] = 0;    
		}    
		if ( !isset($post_data['http']) ) {    
			$post_data['http'] = 0;    
		}    
		if ( !isset($post_data['p2p']) ) {    
			$post_data['p2p'] = 0;    
		}    
		if ( !isset($post_data['failConns']) ) {    
			$post_data['failConns'] = 0;    
		}    
		insertPeer(    
			$roomDir,    
			array(    
				"id"=>$json->{'id'},    
				"device"=>$json->{'device'},    
				"netType"=>$json->{'netType'},    
				"host"=>$json->{'host'},    
				"version"=>$json->{'version'},    
				"tag"=>$json->{'tag'},    
				"conns"=>$post_data['conns'],    
				"http"=>$post_data['http'],    
				"p2p"=>$post_data['p2p'],    
				"failConns"=>$post_data['failConns']    
			)    
		);    
		break;    
}    
function insertPeer($room,$info){    
	file_put_contents($room.'/'.$info['id'],json_encode($info));    
}    
function get_peers($room,$exclude=''){    
	$arr = glob(__DIR__ . '/' .$room . '/*');    
	if($arr){    
		$out = array();    
		$expTime = time()-30;    
		foreach($arr as $v){    
			if(filemtime($v)>$expTime){    
				if($v!=__DIR__ . '/' .$room . '/' . $exclude){    
					$json = json_decode(file_get_contents($v));    
					$out[] = (object)array('id'=>$json->{'id'});    
				}    
			}else{    
				unlink($v);    
			}    
		}    
		return $out;    
	}else{    
		return array();    
	}    
}    
function makeDir($path){    
	if(!is_dir($path)){    
		$str = dirname($path);    
		if($str){    
			makeDir($str.'/');    
			@mkdir($path,0777);    
			chmod($path,0777);    
		}    
	}    
}    
?>

 

免责申明:
1. 本站所有教程、文章分享目的仅供大家学习和交流,资源连接来自于网络,非本站发布,本站也不存储任何资源!
2. 如有无法查看或链接失效,烦请报告联系管理员处理!
3. 本站无法保证资源质量及其时效性,恕不接受任何提问。
4.本站即不保存任何资源,也不对任何链接作品负责,希望大家赞助本站,费用仅维持本站的日常运营所需!
5. 百码云无法保证文章教程或资源的完善与安全,请自行检测解决。
6. 通过本站收集链接的相关资源,严禁杜绝任何形式的正式商业用途,请前往官方购买。
7. 但凡通过本站链接导航下载的任何作品,虽不归本站所有,但在研究学习的前提下,请务必在下载24小时后删除。
百码云资源站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。本文章采用BY-NC-SA 4.0 《国际知识共享署名许可协议4.0》 进行许可 。
百码云 » 破解cdnbye的hls p2p加速

提供互联网优质的资源链接集合站点

关于VIP 站内帮助