andrew_live_sdk 0.0.1 copy "andrew_live_sdk: ^0.0.1" to clipboard
andrew_live_sdk: ^0.0.1 copied to clipboard

discontinued
PlatformAndroidiOS

Live streaming SDK for Flutter — WHIP/WHEP WebRTC, beauty, effects, virtual background, linkmic, PK, danmaku. Layer 1 core with SPI architecture.

live_sdk #

Live SDK for Flutter — 对标 LiveKit / Agora / TRTC 的纯技术核心 SDK。 License:MIT 开源(核心 + 自研 AI 模型)

安装 #

dependencies:
  live_sdk: ^0.1.0

快速开始 #

import 'package:live_sdk/live_sdk.dart';

final client = LiveClient();
await client.init(const LiveSdkConfig(enableGpu: true));

// 注入 SPI(可选,按需注入)
client.setDanmakuProvider(MyDanmakuProvider());     // 弹幕数据源
client.setCloudAiProvider(MyCloudAiProvider());     // 云端 AI(超分/年龄变换等)
client.setModelProvider(MyModelProvider());          // 模型动态下载(AI降噪等)
client.addListener(MyListener());

// 推流
await client.streamManager.startPush(
  roomId: 'room_123',
  config: PushStreamConfig.fullHd30,
);

这是什么 #

live_sdk 采用业界标准的两层架构

  • Layer 1 核心 SDK(live_sdk 包) — 只做技术能力(媒体/视觉/信令/质量)+ SPI 接口
  • Layer 2 示例 App(template_app/ — 抖音风格完整业务参考实现,接入方拷贝改

核心承诺

  • MIT 开源(包括 Flutter 层、iOS/Android Native 引擎)
  • 零云厂商 SDK 依赖(不用声网、腾讯云、阿里云的私有 SDK)
  • 核心 SDK 不含业务规则(礼物/带货/等级等业务在示例 App,接入方可控)
  • SPI 架构:云端 AI / 模型下载 / 弹幕 / 礼物等能力全部通过 SPI 注入,接入方可控

业界对比 #

厂商 核心 SDK 含业务吗 我们的方案
声网 Agora ❌ 完全没有,业务靠接入方自建 一致:核心只做技术
腾讯 TRTC ❌ 完全没有,demo 标「参考实现」 一致:template_app 当参考
LiveKit(开源) ❌ 完全没有,提供 example 一致:template_app 当参考
我们(live_sdk) ❌ 核心不含业务,业务在 template_app ✅ 业界标准

三种接入方式 #

方式 1:仅用核心 SDK(最小接入,类似用 Agora) #

dependencies:
  live_sdk: ^1.0.0
final client = LiveClient();
await client.init(
  baseUrl: '...', token: '...', /* ... */
  // 不注入任何 Port
);
await client.streamManager.startPublish(roomId: 'r_123', config: PublishConfig.fullHd30);
// 没有礼物、没有带货——接入方自己实现自己的业务

方式 2:核心 SDK + 自有业务系统(接入方已有礼物/支付/用户系统) #

await client.init(
  baseUrl: '...', token: '...',
  ports: Ports(
    giftSystem: MyCompanyGiftSystem(),       // 我自己实现 GiftSystemPort
    userSystem: MyCompanyUserSystem(),       // 我的用户/等级系统
    pkScoring: MyCompanyPkScoring(),         // 我的 PK 计分规则
    // 不需要带货?就不传 commerce
  ),
);

方式 3:拷贝 template_app(开箱即用抖音风格) #

cp -r live-sdk-flutter/template_app/lib/ports/  my_app/lib/live_ports/
cp -r live-sdk-flutter/template_app/lib/features/live_room/  my_app/lib/features/live_room/
await client.init(
  ports: Ports(
    giftSystem: TemplateGiftSystem(client),    // 示例实现,可改业务规则
    commerce: TemplateCommerce(client),
    userSystem: TemplateUserSystem(),
    pkScoring: TemplatePkScoring(),
  ),
);

核心特性 #

  • ~21 个技术 Manager(媒体/视觉/房间/质量,详见 docs/01-功能清单.md)
  • 业界标准协议:WHIP/WHEP(WebRTC)+ LL-HLS + RTMP + SRT 兜底
  • 超低延迟:RTC ≤ 300ms、首帧 ≤ 1.2s
  • 弱网策略:自动降码率→降分辨率→切协议三级回退
  • SPI 架构:所有外部依赖通过 SPI 注入,SDK 零硬编码地址
  • 算法模型三种策略:本地内置 / 动态下发(SPI)/ 云端 API(SPI)
  • 完全自研:所有 AI/美颜/审核能力均自研,源码完全可控

SPI 接口 #

SDK 发布到 pub.dev,不包含任何私有服务地址。所有外部能力通过 SPI 接口由接入方注入:

SPI 接口 说明 未注入时
DanmakuProvider 弹幕数据源 弹幕功能不可用
GiftProvider 礼物数据源 礼物功能不可用
RoomDataProvider 房间数据 房间列表不可用
UserProfileProvider 用户信息 等级/勋章不可用
CommerceProvider 商品橱窗 带货功能不可用
ModerationProvider 内容审核 审核功能不可用
CloudAiProvider 云端 AI(超分/年龄变换等) 云端 AI 不可用,本地功能正常
ModelProvider 模型动态下载(AI降噪等) 动态模型不可用,本地功能正常
LiveEventListener 事件回调 不影响功能

设计文档 #

# 文档 内容
00 总体设计 两层架构(核心 + 示例 App)
01 功能清单 核心能力(~180 项)+ 示例 App 内容
02 架构与模块设计 核心 LiveClient + Manager + Port 钩子
03 API 契约 核心 Manager API + 事件回调 + 错误码 + SPI 接口(19 个业务 Port)
04 实现细节 Native 桥接 + 性能弱网策略 + 自研算法清单
05 工程交付 安全合规 + 版本路线图 + 测试策略 + template_app 结构

目录结构 #

live-sdk-flutter/
├── README.md                  ← 你在这里
├── docs/                      ← 设计文档(6 篇)
│   ├── 00-总体设计.md
│   ├── 01-功能清单.md
│   ├── 02-架构与模块设计.md
│   ├── 03-API契约.md          ← API + 事件 + 错误码 + SPI(合并版)
│   ├── 04-实现细节.md          ← Native + 性能 + 自研算法(合并版)
│   └── 05-工程交付.md          ← 安全 + 路线图 + 测试 + template_app(合并版)
├── lib/                       ← Layer 1 核心 SDK(待开发)
│   └── src/ports/             ← SPI 接口定义
├── template_app/              ← Layer 2 示例 App(待开发)
│   └── lib/ports/             ← 业务 Port 参考实现(拷贝改)
├── example/                   ← 极简 example(仅核心用法)
└── test/                      ← 核心包测试

版本规划 #

版本 状态 目标
v0.1 MVP 🚧 设计完成,待开发 媒体基础 + 极简房间 + 基础美颜 + Ports 框架
v0.5 高级美颜 + 虚拟背景 + 连麦 + 弹幕渲染
v0.7 PK 拓扑 + 质量监控 + 诊断
v1.0 开源首发 核心 SDK + 19 个业务 SPI + template_app 完整版
v1.1 template_app 扩展(语聊房/KTV/AI 主播/虚拟主播)
v2.0 企业托管服务(代码仍 MIT)

详见 docs/05-工程交付.md 的「第二部分:版本路线图」。

许可证 #

  • 核心代码(lib/)MIT License(完全开源)
  • 示例 App(template_app/)MIT License(接入方可拷贝改业务规则)
  • iOS / Android Native 引擎MIT License(完全开源)
  • 自研 AI 模型权重:MIT / Apache 2.0 / CC-BY(公开分发)
  • 托管服务(可选):服务收费(GPU 推理集群 / SRS 流量 / TURN 流量 / 素材市场抽成)

商业化模式:参考 GitLab / Sentry / LiveKit / Agora 开源版的「开源核心 + 托管服务」模式。客户可自托管一切(0 成本),或购买托管服务(按用量付费)。

相关仓库 #

  • im-sdk-flutter — 兄弟项目,IM SDK(弹幕/评论复用其通道)
  • andrew-live — 直播后端(礼物/商品/等级等业务)
  • andrew-chat/app/rtc — RTC 信令
  • mengchu/mengchu_flutter — 接入此 SDK 的宿主 App
1
likes
140
points
0
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Live streaming SDK for Flutter — WHIP/WHEP WebRTC, beauty, effects, virtual background, linkmic, PK, danmaku. Layer 1 core with SPI architecture.

Repository

Topics

#live #streaming #webrtc #video #sdk

License

MIT (license)

Dependencies

dio, flutter, web_socket_channel

More

Packages that depend on andrew_live_sdk

Packages that implement andrew_live_sdk