{"id":22348817,"url":"https://github.com/tikcdn/x2tiktracker-windows","last_synced_at":"2026-02-17T05:03:20.509Z","repository":{"id":263796928,"uuid":"891428522","full_name":"TikCDN/X2TikTracker-Windows","owner":"TikCDN","description":"P2P Streaming Engine for Windows.","archived":false,"fork":false,"pushed_at":"2024-12-04T03:28:23.000Z","size":42252,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T02:51:14.553Z","etag":null,"topics":["cdn","datachannel","hls","mpeg-dash","p2p","p2p-cdn","p2p-streaming","p2pshare","player","webrtc"],"latest_commit_sha":null,"homepage":"https://www.tikcdn.cn/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TikCDN.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-20T10:14:00.000Z","updated_at":"2024-12-13T13:31:28.000Z","dependencies_parsed_at":"2024-11-20T11:56:43.741Z","dependency_job_id":null,"html_url":"https://github.com/TikCDN/X2TikTracker-Windows","commit_stats":null,"previous_names":["tikcdn/x2tiktracker-windows"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TikCDN/X2TikTracker-Windows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TikCDN%2FX2TikTracker-Windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TikCDN%2FX2TikTracker-Windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TikCDN%2FX2TikTracker-Windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TikCDN%2FX2TikTracker-Windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TikCDN","download_url":"https://codeload.github.com/TikCDN/X2TikTracker-Windows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TikCDN%2FX2TikTracker-Windows/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267822019,"owners_count":24149551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdn","datachannel","hls","mpeg-dash","p2p","p2p-cdn","p2p-streaming","p2pshare","player","webrtc"],"created_at":"2024-12-04T11:06:33.152Z","updated_at":"2026-02-17T05:03:20.503Z","avatar_url":"https://github.com/TikCDN.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## X2TikTracker-Windows\n\n### 概述\n\n**X2TikTracker** 是一款支持基于 P2P 技术的视频加速工具。它集成了 WebRTC 和 HLS 等技术，旨在降低视频点播或直播的带宽消耗，提升播放体验。X2TikTracker 的核心理念是利用终端设备之间的上传能力，实现带宽共享，从而降低对传统 CDN 的依赖。\n\n\n\n#### Demo运行指南\n\n```\n./X2TicTracker-FFPlay/main.cpp\n\n在上述文件中找到APP_ID\n\n#define APP_ID \"your app id\"\n```\n\n### 初始化\n\n#### 构造函数\n\n```windows\nIX2TikTracker* x2TikTracker = createX2TikTracker();\n```\n\n**初始化示例：**\n\n```windows\nx2TikTracker-\u003einitialize(APP_ID, NULL);\n```\n\n**参数说明：**\n\n- `appId`: The App ID issued by TikCdn to you. Apply for a new App ID from X2Rtc if it is missing from your kit.\n- `eventHandler`: The X2TikTrackerEventHanlder object that invokes callbacks to be passed to the application on TikTracker SDK runtime events.\n\n\n\n### 核心方法\n\n\n#### 1. **开始播放**\n\n```\nint startPlay(const char* strUrl, bool bShare)\n```\n\n- **功能**: 开始播放指定地址的视频，并可选择是否启用 P2P 共享。\n\n- **参数**:\n\n  - `url`: 视频播放地址，目前支持HLS(m3u8)和MPEG-DASH(mpd)。\n  - `share`: 是否启用 P2P 共享。\n\n- **返回值**: 操作结果的状态码。\n\n- **示例**:\n\n  ```\n  int ret =x2TikTracker-\u003estartPlay(\"https://stream-tiktraker.tikcdn.cn/live/WhatIsTikcdn.m3u8\", true);\n  ```\n\n#### 2. **停止播放**\n\n```\nint stopPlay()\n```\n\n- **功能**: 停止当前播放。\n- **返回值**: 操作结果的状态码。\n\n#### 3. **开始共享**\n\n```\nint startShare()\n```\n\n- **功能**: 开始 P2P 共享。\n\n#### 4. **停止共享**\n\n```\nint stopShare()\n```\n\n- **功能**: 停止 P2P 共享。\n\n#### 5. **更新令牌**\n\n```\nint renewToken(const char* strToken)\n```\n\n- **功能**: 更新令牌。\n- 参数\n  - `token`: 新的授权令牌。\n\n#### 6. **获取 p2p URL 地址**\n\n```\nint getExPlayUrl(char* strUrl, int nUrlSize)\n```\n\n- **功能**: 获取当前播放的p2p URL 地址。\n\n#### 7. **释放资源**\n\n```\nint release(bool sync = false)\n```\n\n- **功能**: 释放所有资源并清空监听器。\n\n### 回调接口\n\n### **X2TikTrackerEventHandler**\n\n用于接收播放和共享事件的回调接口：\n\n```\nclass X2TikTrackerEventHanlder {\n    virtual void OnShareResult(TKT_CODE nCode);\n    virtual void OnLoadDataStats(const char*jsStats);\n    virtual void OnPeerOn(const char* strPeerUId, const char* strPeerUData);\n    virtual void OnPeerOff(const char* strPeerUId, const char* strPeerUData);\n    virtual void OnRenewTokenResult(const char* token, RENEW_TOKEN_ERR_CODE errorCode);\n    virtual void OnTokenWillExpired();\n    virtual void OnTokenExpired();\n}\n```\n\n主要回调方法：\n\n- `OnShareResult(TKT_CODE nCode)`: P2P 共享结果。\n- `OnLoadDataStats(const char*jsStats)`: 数据统计信息回调。\n- `OnRenewTokenResult(const char* token, RENEW_TOKEN_ERR_CODE errorCode)`: 令牌更新结果。\n- `OnTokenWillExpired()`: 令牌即将过期。\n- `OnTokenExpired()`: 令牌过期了。\n- `OnPeerOn(const char* strPeerUId, const char* strPeerUData)`: 一个新的 P2P 节点成功加入网络时，会触发该回调。此时，P2P 网络中会有新的设备或用户参与共享数据或资源。\n- `OnPeerOff(const char* strPeerUId, const char* strPeerUData)`: 一个 P2P 节点或用户从网络中断开时。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftikcdn%2Fx2tiktracker-windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftikcdn%2Fx2tiktracker-windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftikcdn%2Fx2tiktracker-windows/lists"}