Lightweight Cross-Platform Screen Recording & Live Streaming Engine
轻量级跨平台屏幕录制与直播引擎
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 構建的輕量級、開源跨平台螢幕錄製與直播桌面應用。專為開發者、內容創作者和教育工作者設計,提供可靠且無臃腫的錄製工具。
-
🚀 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 installto get started, no complex setup -
🚀 零臃肿 — 只依赖必需组件,没有 Electron,没有 500MB 运行时
-
🎯 开发者优先 — 由开发者构建,为开发者服务,键盘驱动工作流
-
🔧 高度可配置 — 从编码器到快捷键,每个细节都可自定义
-
🌍 跨平台 — 一套代码,支持 Windows、macOS 和 Linux
-
📦 自包含 — 一条
pip install即可开始,无需复杂配置 -
🚀 零臃腫 — 只依賴必需組件,沒有 Electron,沒有 500MB 運行時
-
🎯 開發者優先 — 由開發者構建,為開發者服務,鍵盤驅動工作流
-
🔧 高度可配置 — 從編碼器到快捷鍵,每個細節都可自定義
-
🌍 跨平台 — 一套程式碼,支援 Windows、macOS 和 Linux
-
📦 自包含 — 一條
pip install即可開始,無需複雜配置
| 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 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
-
📷 摄像头预览 — 实时摄像头预览,支持设备选择
-
🖼️ 画中画 — 将摄像头画面叠加到录制中,可调节大小和位置
-
🔄 多摄像头支持 — 枚举并切换可用摄像头设备
-
📷 攝影機預覽 — 即時攝影機預覽,支援裝置選擇
-
🖼️ 子母畫面 — 將攝影機畫面疊加到錄製中,可調節大小和位置
-
🔄 多攝影機支援 — 列舉並切換可用攝影機裝置
-
📡 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 等)
-
🎛️ 品質控制 — 可配置碼率、解析度和編碼器設定
-
📊 推播統計 — 即時監控推播狀態和連線健康度
-
🖼️ 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
| Action | Default Shortcut | Customizable |
|---|---|---|
| 🎬 Start/Stop Recording | F9 |
✅ |
| 📸 Take Screenshot | F10 |
✅ |
| 🏷️ Add Marker | F11 |
✅ |
| 📹 Toggle Camera | F12 |
✅ |
-
🌙 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
-
🌙 暗色/亮色主题 — 跟随系统或手动切换主题
-
📌 系统托盘 — 最小化到托盘,后台录制
-
🎛️ 悬浮面板 — 录制时可拖拽的半透明控制面板
-
📊 状态栏 — 实时显示录制时长、帧率、文件大小和分辨率
-
🌙 暗色/亮色主題 — 跟隨系統或手動切換主題
-
📌 系統匣 — 最小化到系統匣,背景錄製
-
🎛️ 浮動面板 — 錄製時可拖曳的半透明控制面板
-
📊 狀態列 — 即時顯示錄製時長、幀率、檔案大小和解析度
- Python 3.9+ — Download Python
- FFmpeg (optional, for live streaming) — Download FFmpeg
- Operating System: Windows 10+, macOS 11+, or Ubuntu 20.04+
# 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# Launch StreamCap
python -m streamcap.main
# Or install in development mode and run
pip install -e .
streamcap# Run tests to verify everything works
python -m pytest tests/ -v- Launch StreamCap
- Click the Record button or press
F9 - The entire screen will be captured
- Press
F9again to stop
- Click Region mode in the toolbar
- Click and drag on screen to select the recording area
- Click Record or press
F9to start - A border overlay will indicate the active recording region
- Click Window mode in the toolbar
- Select the target window from the dropdown list
- Click Record or press
F9to start - The recording will follow the selected window
- Click the Camera toggle button in the toolbar
- Select your camera device from the dropdown
- Adjust picture-in-picture size and position in Settings → Camera
- The camera feed will appear as an overlay on your recording
- After recording, go to File → Export as GIF
- Configure output size, frame rate, and quality
- Click Export and select the save location
- Progress will be shown in the status bar
- Go to Settings → Live Streaming
- Enter your RTMP server URL (e.g.,
rtmp://a.rtmp.youtube.com/live2/xxxx) - Configure bitrate and resolution
- Click the Stream button to start pushing
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
StreamCap follows these core principles:
- Minimalism — Do one thing well: record your screen. No unnecessary features.
- Performance — Use efficient capture libraries (mss) and encoding (OpenCV) for minimal resource usage.
- Extensibility — Modular architecture makes it easy to add new features and integrations.
- Privacy — All processing happens locally. No data is sent to any server.
StreamCap 遵循以下核心设计原则:
- 极简主义 — 专注做好一件事:录制屏幕。不添加不必要的功能。
- 高性能 — 使用高效的捕获库(mss)和编码器(OpenCV),最小化资源占用。
- 可扩展性 — 模块化架构,方便添加新功能和集成。
- 隐私优先 — 所有处理均在本地完成,不向任何服务器发送数据。
StreamCap 遵循以下核心設計原則:
- 極簡主義 — 專注做好一件事:錄製螢幕。不新增不必要的功能。
- 高效能 — 使用高效的擷取庫(mss)和編碼器(OpenCV),最小化資源佔用。
- 可擴展性 — 模組化架構,方便新增功能和整合。
- 隱私優先 — 所有處理均在本地完成,不向任何伺服器傳送資料。
-
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 的遠端錄製控制
pip install streamcap
streamcapgit clone https://github.com/gitstq/StreamCap.git
cd StreamCap
pip install -e .
streamcap# Install PyInstaller
pip install pyinstaller
# Build for current platform
pyinstaller --name StreamCap --windowed --onefile streamcap/main.py
# The executable will be in dist/StreamCap# For headless recording (no GUI)
docker build -t streamcap .
docker run -v /path/to/output:/output streamcap --fullscreen --duration 60| 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 |
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
We follow the Conventional Commits specification:
feat:New featuresfix:Bug fixesdocs:Documentation updatesrefactor:Code refactoringtest:Test additions or modificationschore:Build process or auxiliary tool changes
When submitting an issue, please include:
- OS and version
- Python version
- Steps to reproduce
- Expected vs actual behavior
- Relevant logs or screenshots
欢迎贡献!请遵循以下步骤:
- Fork 本仓库
- 创建 功能分支 (
git checkout -b feature/amazing-feature) - 提交 你的更改 (
git commit -m 'feat: add amazing feature') - 推送 到分支 (
git push origin feature/amazing-feature) - 发起 Pull Request
歡迎貢獻!請遵循以下步驟:
- Fork 此儲存庫
- 建立 功能分支 (
git checkout -b feature/amazing-feature) - 提交 你的變更 (
git commit -m 'feat: add amazing feature') - 推送 到分支 (
git push origin feature/amazing-feature) - 發起 Pull Request
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!