Skip to content
vainreefPublic

About

A lightweighted macos native live stream app.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Liveflow

Mac 上比 OBS 更轻、更原生、更适合 Apple Silicon 的直播推流器。

基于 Swift + AppKit/SwiftUI + ScreenCaptureKit + AVFoundation + Metal + VideoToolbox + HaishinKit (RTMP) 打造,像素全程保留在 GPU 与 IOSurface,极低 CPU/内存占用与超低延迟。


架构核心原则

  1. 零内存拷贝像素链路:
    • 屏幕捕获(ScreenCaptureKit)与摄像头(AVFoundation)均直接输出 IOSurface / CVPixelBuffer。
    • 通过 CVMetalTextureCache 映射为 Metal 纹理,CPU 绝不进行逐像素复制。
  2. 纯 Metal 场景合成引擎:
    • 多图层(屏幕、摄像头 PIP、测试画面、插件源)在单次 Command Buffer 中利用 Metal Shader 批量合成。
    • 画面不经过 NSView/CALayer 截图,直接离屏渲染为 1080p60 目标画幅。
  3. VideoToolbox 硬件编码:
    • 直接调用 Apple 媒体引擎(Media Engine)编码 H.264,超低延迟无 B 帧直播流配置。
  4. 抽象推流协议层:
    • 核心层定义 StreamOutput 协议,现阶段由 HaishinKit 提供稳定的 RTMP/RTMPS 传输支持,未来可平滑升级/替换为 SRT 或自研传输层。

快速运行与测试

1. 自动化推流测试(End-to-End Verification)

本项目内置基于本地 RTMP 接收器的全链路自动化推流测试,无需注册任何外部直播平台即可直接验证推流功能:

./scripts/test_stream.sh

该脚本将:

  1. 启动本地 RTMP 监听服务(端口 19350);
  2. 启动 Liveflow 推送 1080p60 硬件编码 H.264 视频与 AAC 音频;
  3. 验证接收到的视频编码、分辨率、帧率及数据包完整性。

2. 构建并打包 macOS 原生应用 (.app)

./scripts/build_app.sh release
open build/Liveflow.app

生成物位于 build/Liveflow.app,已配置 Entitlements 与签名,双击即可直接运行!

3. 在 Xcode 中打开开发

由于本项目采用标准的 Swift Package Manager 结构,直接使用 Xcode 打开根目录即可:

open Package.swift

在 Xcode 中选择 Liveflow scheme 并按 Cmd + R 即可运行和调试。


核心组件结构

About

A lightweighted macos native live stream app.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages