Skip to content

gitstq/StreamCap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 3.9+ PyQt6 MIT License Cross Platform Tests

🎬 StreamCap

Lightweight Cross-Platform Screen Recording & Live Streaming Engine
轻量级跨平台屏幕录制与直播引擎

English · 简体中文 · 繁體中文


🎉 Project Introduction | 项目介绍

StreamCap is a lightweight, open-source cross-platform screen recording and live streaming desktop application built with Python and PyQt6. Designed for developers, content creators, and educators who need a reliable yet minimal recording tool without bloatware.

StreamCap 是一款基于 Python 和 PyQt6 构建的轻量级、开源跨平台屏幕录制与直播桌面应用。专为开发者、内容创作者和教育工作者设计,提供可靠且无臃肿的录制工具。

StreamCap 是一款基於 Python 和 PyQt6 構建的輕量級、開源跨平台螢幕錄製與直播桌面應用。專為開發者、內容創作者和教育工作者設計,提供可靠且無臃腫的錄製工具。

💡 Why StreamCap? | 为什么选择 StreamCap?| 為什麼選擇 StreamCap?

  • 🚀 Zero bloat — Only depends on what you need, no Electron, no 500MB runtime

  • 🎯 Developer-first — Built by developers, for developers, with keyboard-driven workflow

  • 🔧 Highly configurable — Every aspect from codecs to hotkeys is customizable

  • 🌍 Cross-platform — One codebase, works on Windows, macOS, and Linux

  • 📦 Self-contained — Single pip install to get started, no complex setup

  • 🚀 零臃肿 — 只依赖必需组件,没有 Electron,没有 500MB 运行时

  • 🎯 开发者优先 — 由开发者构建,为开发者服务,键盘驱动工作流

  • 🔧 高度可配置 — 从编码器到快捷键,每个细节都可自定义

  • 🌍 跨平台 — 一套代码,支持 Windows、macOS 和 Linux

  • 📦 自包含 — 一条 pip install 即可开始,无需复杂配置

  • 🚀 零臃腫 — 只依賴必需組件,沒有 Electron,沒有 500MB 運行時

  • 🎯 開發者優先 — 由開發者構建,為開發者服務,鍵盤驅動工作流

  • 🔧 高度可配置 — 從編碼器到快捷鍵,每個細節都可自定義

  • 🌍 跨平台 — 一套程式碼,支援 Windows、macOS 和 Linux

  • 📦 自包含 — 一條 pip install 即可開始,無需複雜配置


✨ Core Features | 核心特性 | 核心特性

🎬 Screen Recording | 屏幕录制 | 螢幕錄製

Feature Description
🖥️ Full Screen Recording Capture your entire monitor with configurable frame rate and quality
✂️ Region Recording Select any rectangular area on screen to record via drag-and-drop
🪟 Window Recording Target a specific application window, auto-tracking when moved
⏸️ Pause & Resume Pause and resume recording without creating multiple files
🏷️ Timestamp Markers Add labeled markers during recording for easy navigation later
📸 Instant Screenshots Take screenshots while recording, saved to output directory
功能 描述
🖥️ 全屏录制 捕获整个显示器,可配置帧率和画质
✂️ 区域录制 通过拖拽选择屏幕上任意矩形区域进行录制
🪟 窗口录制 定位特定应用窗口,窗口移动时自动追踪
⏸️ 暂停与恢复 暂停和恢复录制,不会产生多个文件
🏷️ 时间戳标记 录制过程中添加带标签的标记,方便后期定位
📸 即时截图 录制同时截取屏幕截图,保存到输出目录
功能 描述
🖥️ 全螢幕錄製 捕獲整個顯示器,可配置幀率和畫質
✂️ 區域錄製 透過拖曳選擇螢幕上任意矩形區域進行錄製
🪟 視窗錄製 定位特定應用程式視窗,視窗移動時自動追蹤
⏸️ 暫停與恢復 暫停和恢復錄製,不會產生多個檔案
🏷️ 時間戳記 錄製過程中新增帶標籤的記號,方便後期定位
📸 即時截圖 錄製同時截取螢幕截圖,儲存到輸出目錄

📹 Camera & Overlay | 摄像头与叠加 | 攝影機與疊加

  • 📷 Camera Preview — Real-time camera preview with device selection

  • 🖼️ Picture-in-Picture — Overlay camera feed on your recording with adjustable size and position

  • 🔄 Multi-camera Support — Enumerate and switch between available camera devices

  • 📷 摄像头预览 — 实时摄像头预览,支持设备选择

  • 🖼️ 画中画 — 将摄像头画面叠加到录制中,可调节大小和位置

  • 🔄 多摄像头支持 — 枚举并切换可用摄像头设备

  • 📷 攝影機預覽 — 即時攝影機預覽,支援裝置選擇

  • 🖼️ 子母畫面 — 將攝影機畫面疊加到錄製中,可調節大小和位置

  • 🔄 多攝影機支援 — 列舉並切換可用攝影機裝置

🔴 Live Streaming | 直播推流 | 直播推流

  • 📡 RTMP Streaming — Push live stream to any RTMP-compatible platform (YouTube, Twitch, Bilibili, etc.)

  • 🎛️ Quality Control — Configurable bitrate, resolution, and encoder settings

  • 📊 Stream Stats — Real-time monitoring of stream status and connection health

  • 📡 RTMP 推流 — 推送直播到任何兼容 RTMP 的平台(YouTube、Twitch、B站等)

  • 🎛️ 质量控制 — 可配置码率、分辨率和编码器设置

  • 📊 推流统计 — 实时监控推流状态和连接健康度

  • 📡 RTMP 推流 — 推播直播到任何相容 RTMP 的平台(YouTube、Twitch、Bilibili 等)

  • 🎛️ 品質控制 — 可配置碼率、解析度和編碼器設定

  • 📊 推播統計 — 即時監控推播狀態和連線健康度

🎞️ GIF Export | GIF 导出 | GIF 匯出

  • 🖼️ Video to GIF — Convert any recorded video to animated GIF

  • 📐 Size Control — Scale down resolution to keep file size manageable

  • Fast Export — Optimized encoding pipeline for quick GIF generation

  • 🖼️ 视频转 GIF — 将录制的视频转换为动画 GIF

  • 📐 尺寸控制 — 缩小分辨率以控制文件大小

  • 快速导出 — 优化的编码管线,快速生成 GIF

  • 🖼️ 影片轉 GIF — 將錄製的影片轉換為動畫 GIF

  • 📐 尺寸控制 — 縮小解析度以控制檔案大小

  • 快速匯出 — 最佳化的編碼管線,快速生成 GIF

⌨️ Global Shortcuts | 全局快捷键 | 全域快捷鍵

Action Default Shortcut Customizable
🎬 Start/Stop Recording F9
📸 Take Screenshot F10
🏷️ Add Marker F11
📹 Toggle Camera F12

🎨 UI & UX | 界面与体验 | 介面與體驗

  • 🌙 Dark/Light Theme — System-adaptive or manual theme switching

  • 📌 System Tray — Minimize to tray, background recording

  • 🎛️ Floating Panel — Draggable, semi-transparent control overlay during recording

  • 📊 Status Bar — Real-time display of recording duration, frame rate, file size, and resolution

  • 🌙 暗色/亮色主题 — 跟随系统或手动切换主题

  • 📌 系统托盘 — 最小化到托盘,后台录制

  • 🎛️ 悬浮面板 — 录制时可拖拽的半透明控制面板

  • 📊 状态栏 — 实时显示录制时长、帧率、文件大小和分辨率

  • 🌙 暗色/亮色主題 — 跟隨系統或手動切換主題

  • 📌 系統匣 — 最小化到系統匣,背景錄製

  • 🎛️ 浮動面板 — 錄製時可拖曳的半透明控制面板

  • 📊 狀態列 — 即時顯示錄製時長、幀率、檔案大小和解析度


🚀 Quick Start | 快速开始 | 快速開始

Prerequisites | 前置要求 | 前置需求

  • Python 3.9+Download Python
  • FFmpeg (optional, for live streaming) — Download FFmpeg
  • Operating System: Windows 10+, macOS 11+, or Ubuntu 20.04+

Installation | 安装 | 安裝

# Clone the repository
git clone https://github.com/gitstq/StreamCap.git
cd StreamCap

# Create virtual environment (recommended)
python -m venv venv

# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Run | 运行 | 執行

# Launch StreamCap
python -m streamcap.main

# Or install in development mode and run
pip install -e .
streamcap

Verify Installation | 验证安装 | 驗證安裝

# Run tests to verify everything works
python -m pytest tests/ -v

📖 Detailed Usage Guide | 详细使用指南 | 詳細使用指南

Recording Modes | 录制模式 | 錄製模式

Full Screen Recording | 全屏录制 | 全螢幕錄製

  1. Launch StreamCap
  2. Click the Record button or press F9
  3. The entire screen will be captured
  4. Press F9 again to stop

Region Recording | 区域录制 | 區域錄製

  1. Click Region mode in the toolbar
  2. Click and drag on screen to select the recording area
  3. Click Record or press F9 to start
  4. A border overlay will indicate the active recording region

Window Recording | 窗口录制 | 視窗錄製

  1. Click Window mode in the toolbar
  2. Select the target window from the dropdown list
  3. Click Record or press F9 to start
  4. The recording will follow the selected window

Camera Overlay | 摄像头叠加 | 攝影機疊加

  1. Click the Camera toggle button in the toolbar
  2. Select your camera device from the dropdown
  3. Adjust picture-in-picture size and position in Settings → Camera
  4. The camera feed will appear as an overlay on your recording

GIF Export | GIF 导出 | GIF 匯出

  1. After recording, go to File → Export as GIF
  2. Configure output size, frame rate, and quality
  3. Click Export and select the save location
  4. Progress will be shown in the status bar

Live Streaming | 直播推流 | 直播推播

  1. Go to Settings → Live Streaming
  2. Enter your RTMP server URL (e.g., rtmp://a.rtmp.youtube.com/live2/xxxx)
  3. Configure bitrate and resolution
  4. Click the Stream button to start pushing

Configuration | 配置说明 | 設定說明

All settings can be configured via Settings dialog (Ctrl+,):

  • General: Output directory, video format, default frame rate, quality
  • Recording: Video codec (H.264, VP8, VP9, MPEG4), audio recording
  • Camera: Device selection, resolution, PiP position and size
  • Streaming: RTMP URL, streaming quality, encoder settings
  • Shortcuts: Customize all keyboard shortcuts
  • Appearance: Theme (Dark/Light), language

💡 Design Philosophy & Roadmap | 设计思路与迭代规划 | 設計理念與迭代規劃

Design Philosophy | 设计理念 | 設計理念

StreamCap follows these core principles:

  1. Minimalism — Do one thing well: record your screen. No unnecessary features.
  2. Performance — Use efficient capture libraries (mss) and encoding (OpenCV) for minimal resource usage.
  3. Extensibility — Modular architecture makes it easy to add new features and integrations.
  4. Privacy — All processing happens locally. No data is sent to any server.

StreamCap 遵循以下核心设计原则:

  1. 极简主义 — 专注做好一件事:录制屏幕。不添加不必要的功能。
  2. 高性能 — 使用高效的捕获库(mss)和编码器(OpenCV),最小化资源占用。
  3. 可扩展性 — 模块化架构,方便添加新功能和集成。
  4. 隐私优先 — 所有处理均在本地完成,不向任何服务器发送数据。

StreamCap 遵循以下核心設計原則:

  1. 極簡主義 — 專注做好一件事:錄製螢幕。不新增不必要的功能。
  2. 高效能 — 使用高效的擷取庫(mss)和編碼器(OpenCV),最小化資源佔用。
  3. 可擴展性 — 模組化架構,方便新增功能和整合。
  4. 隱私優先 — 所有處理均在本地完成,不向任何伺服器傳送資料。

Roadmap | 迭代计划 | 迭代計畫

  • v1.1 — Audio recording support (system audio + microphone)

  • v1.2 — Video editing (trim, merge, add text)

  • v1.3 — Cloud upload integration (S3, OSS, GCS)

  • v1.4 — Plugin system for custom effects and overlays

  • v2.0 — WebRTC-based remote recording control

  • v1.1 — 音频录制支持(系统音频 + 麦克风)

  • v1.2 — 视频编辑(裁剪、合并、添加文字)

  • v1.3 — 云存储上传集成(S3、OSS、GCS)

  • v1.4 — 插件系统,支持自定义特效和叠加

  • v2.0 — 基于 WebRTC 的远程录制控制

  • v1.1 — 音訊錄製支援(系統音訊 + 麥克風)

  • v1.2 — 影片編輯(裁剪、合併、新增文字)

  • v1.3 — 雲端上傳整合(S3、OSS、GCS)

  • v1.4 — 外掛系統,支援自訂特效和疊加

  • v2.0 — 基於 WebRTC 的遠端錄製控制


📦 Packaging & Deployment | 打包与部署 | 打包與部署

Install via pip | 通过 pip 安装 | 透過 pip 安裝

pip install streamcap
streamcap

Build from Source | 从源码构建 | 從原始碼建構

git clone https://github.com/gitstq/StreamCap.git
cd StreamCap
pip install -e .
streamcap

Build Standalone Executable | 构建独立可执行文件 | 建構獨立可執行檔

# Install PyInstaller
pip install pyinstaller

# Build for current platform
pyinstaller --name StreamCap --windowed --onefile streamcap/main.py

# The executable will be in dist/StreamCap

Docker | Docker 部署 | Docker 部署

# For headless recording (no GUI)
docker build -t streamcap .
docker run -v /path/to/output:/output streamcap --fullscreen --duration 60

Compatibility | 兼容环境 | 相容環境

Platform Status Notes
Windows 10/11 ✅ Supported Requires Visual C++ Redistributable
macOS 11+ ✅ Supported Requires Xcode Command Line Tools
Ubuntu 20.04+ ✅ Supported Requires sudo apt install python3-pyqt6
Fedora 36+ ✅ Supported Requires sudo dnf install python3-pyqt6

🤝 Contributing | 贡献指南 | 貢獻指南

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Commit Convention | 提交规范 | 提交規範

We follow the Conventional Commits specification:

  • feat: New features
  • fix: Bug fixes
  • docs: Documentation updates
  • refactor: Code refactoring
  • test: Test additions or modifications
  • chore: Build process or auxiliary tool changes

Issue Guidelines | Issue 反馈 | Issue 回報

When submitting an issue, please include:

  • OS and version
  • Python version
  • Steps to reproduce
  • Expected vs actual behavior
  • Relevant logs or screenshots

欢迎贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建 功能分支 (git checkout -b feature/amazing-feature)
  3. 提交 你的更改 (git commit -m 'feat: add amazing feature')
  4. 推送 到分支 (git push origin feature/amazing-feature)
  5. 发起 Pull Request

歡迎貢獻!請遵循以下步驟:

  1. Fork 此儲存庫
  2. 建立 功能分支 (git checkout -b feature/amazing-feature)
  3. 提交 你的變更 (git commit -m 'feat: add amazing feature')
  4. 推送 到分支 (git push origin feature/amazing-feature)
  5. 發起 Pull Request

📄 License | 开源协议 | 開源協議

This project is licensed under the MIT License. See the LICENSE file for details.

本项目基于 MIT 许可证 开源。详见 LICENSE 文件。

本專案基於 MIT 許可證 開源。詳見 LICENSE 檔案。


Made with ❤️ by gitstq
If you find this project helpful, please give it a ⭐ star!
如果你觉得这个项目有帮助,请给一个 ⭐ star!
如果你覺得這個專案有幫助,請給一個 ⭐ star!

About

🎬 StreamCap - Lightweight Cross-Platform Screen Recording & Live Streaming Engine | 轻量级跨平台屏幕录制与直播引擎

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages