TIP
大视频时代,重新定义流媒体分发,SwarmCloud让你的用户设备成为你无限扩展的CDN节点,与高昂的CDN流量费Say Goodbye!

面向未来的P2P流媒体技术
随著5G技术的普及,包括直播在内的线上视频娱乐已经逐渐成为主流娱乐方式。然而,CDN部署成本极高,成本增速超过收入增速,落后的技术无法满足各大视频厂商扩张业务和降低成本的需求。对于终端用户而言,由于多数CDN服务商不能覆盖全部ISP和网络边缘,导致用户在观看视频时都无法避免地遭受二次缓冲、卡顿等不良体验。 "P2P+CDN"的视频传输模型有效的解决了服务器带宽不足的问题,在提升用户观看体验的同时为视频厂商节省带宽成本。 然而,传统的P2P技术由于自身的局限性(大多采用私有协议),无法实现跨平台的端到端传输,这极大的限制了P2P的利用率。SwarmCloud采用WebRTC Datachannel标准协议,实现了Web、iOS、Android与PC的全平台P2P互联,充分利用网络中每个节点的上行带宽,解决了P2P无法跨平台以及利用率不高的问题。
工作原理
传统的流媒体播放模式是播放器向CDN(源服务器)请求数据进行渐进式下载播放,SwarmCloud通过在客户端集成SDK的方式,在播放器与网络之间嵌入一层代理,播放器向代理请求数据,由代理在P2P与CDN之间进行智能切换,在保证播放流畅的前提下最大化P2P使用率。 
集成简单
写代码,可以是一件愉快的事。
import Hls from '@swarmcloud/hls/hls.min';
if(Hls.isSupported()) {
var hls = new Hls();
hls.loadSource('https://your_stream.m3u8');
hls.attachMedia(video);
}import com.p2pengine.sdk.P2pEngine
P2pEngine.init(applicationContext, YOUR_TOKEN, null)
val parsedUrl = P2pEngine.instance!!.parseStreamUrl("https://your_stream")
mediaPlayer.play(parsedUrl)import SwarmCloudKit
let parsedUrl = P2pEngine.shared.parseStreamUrl("https://your_stream.m3u8")
_player = AVPlayer.init(url: URL(string: parsedUrl)!)import 'package:flutter_p2p_engine/flutter_p2p_engine.dart';
await FlutterP2pEngine.init(
YOUR_TOKEN,
config: P2pConfig.byDefault()
);
url = await FlutterP2pEngine.parseStreamURL(YOUR_STREAM_URL);
player = VideoPlayerController.networkUrl(url);import { initP2pEngine, parseStreamURL, TrackerZone } from 'react-native-swarmcloud';
initP2pEngine(YOUR_TOKEN, {
trackerZone: TrackerZone.Europe, // Set HongKong or USA if you changed zone
})
.then(() => {
const url = parseStreamURL(YOUR_STREAM_URL);
setSource({ uri: url });
})先进的P2P+CDN架构
CDN与P2P在流媒体分发中存在非常强的互补性,SwarmCloud的P2P分发网络与CDN技术深度融合,视频观看者首次点开播放器一律到CDN边缘节点获取资源,在已经能够正常观看视频的过程中同时连入P2P网络,在保证足够剩余缓冲时间的前提下从对等端获取资源。一旦对等端下线或者网络抖动,再无缝切换回CDN边缘节点取片,保证视频的流畅播放,从而解决了P2P网络可用性不可控的问题。 
消除P2P安全隐患
- 基于主流浏览器默认支持的WebRTC技术,用户使用完全无感知,不需要安装额外的插件,解决了传统P2P安装插件或者客户端软件带来的繁琐和安全隐患。
- 对于视频提供商来说,WebRTC原生的安全传输特性加上P2P技术原生切片化及分布式传输的特性,使得原有的DRM方案完全不受影响,让数据更加安全,难以被攻击或者窃取。
- P2P只有在用户获得CDN服务器授权并开始播放后才开启,CDN服务器的授权流程(tokens, keys, cookies等)在P2P启动前后都保持一致。
- 所有媒体数据缓存在应用的内存中而不是磁盘,这些内存空间无法被其它应用或者调试工具访问,从而保证视频数据不会被窃取。
用户服务协议
如果您使用了本服务,则视为同意SwarmCloud用户服务协议。
零成本启动
SwarmCloud为每个账号每天提供150GB免费流量,助你零成本上手。
接下来
- 访问管理面板并注册
- 如果您要在Web端使用P2P:
- 在管理面板点击 网站管理,按照提示绑定域名
- 如果用于流媒体加速,根据流媒体类型和播放引擎,按照文档说明集成SDK
- Hls.js
- Video.js (支持HLS和MPEG-DASH)
- Shaka-Player (支持HLS和MPEG-DASH)
- Dash.js
- MP4/MP3/MKV
- 如果用于大文件下载加速,请使用文件下载SDK
- 如果P2P不起作用,请参照问题排查步骤进行排查
- 如果您要使用移动端原生SDK:
- 在管理面板点击 APP管理,点击左上角按钮获取token,并按照提示绑定APPId
- 根据要集成SDK的平台,按照文档说明集成SDK
- 调试完成后,即可上线
- 如果P2P不起作用,请参照问题排查步骤进行排查
- 回到管理面板,即可查看P2P效果
- 如果用户量较大建议采用灰度发布的方式,在管理面板 P2P配置 -> 激活比率 进行配置即可
