Stream the CLI/MCP audio export instead of buffering whole files
Maintainer thường phản hồi trong vòng 1 ngày
@auberginewly đang làm issue này rồi.
Từ ngày 28/10/2026.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- electron, typescript
- Lĩnh vực
- cli, desktop, performance
Hướng nghiên cứu
Start with src/cli/CliExportRunner.tsx and follow exportAudio and the MP4 voiceover mix through writeExportToPath and the existing render path. Then trace the render source and IPC write APIs to determine how chunked reads and streamed writes fit together. Done means audio exports avoid holding the full rendered video and audio buffers in the renderer; the issue proposes streamed IPC or main-process WAV writing as possible approaches.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Follow-up from #1383 (review comment on src/cli/CliExportRunner.tsx).
The CLI/MCP audio export (exportAudio, openscreen export -o out.wav|out.m4a) and the MP4 voiceover mix both hold whole files in memory in the renderer: the rendered MP4 is fetched back as a Blob, the audio is extracted into an ArrayBuffer, and the result goes through writeExportToPath as one buffer over IPC. For a long project that means the full MP4 plus the full WAV live in the renderer at once, which can exhaust memory.
Proposal: stream instead of buffering. Read the render from disk in chunks (mediabunny StreamSource or a file-handle source), write the extracted audio through a streamed target, and add a write-stream IPC (open / append / close) rather than a single-buffer write. A WAV could also be written by the main process directly.
Out of scope for #1383, which keeps the existing buffer-based path the MP4 export already uses.
🤖 Generated with Claude Code
- Ngôn ngữ chính
- TypeScript
- Star
- 3.7k
- Fork
- 231
- Merge trung bình
- 15 giờ 10 phút
- Pull request đã merge (30 ngày)
- 324
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của getopenscreen/openscreen
-
Native review wanted: machine-translated recording bar tooltips (14 locales)Có thể làm lại được @auberginewly đã nhận 21 ngày trước và không có pull request nào đang mở. Đang mởgood first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
getopenscreen/openscreen#913 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: Windows update click opens the full NSIS wizard instead of a UAC promptCó thể đã có người làm @EtienneLescot đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 30/100
getopenscreen/openscreen#1437 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature]: Cursor size px unitĐang mởenhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
getopenscreen/openscreen#1436 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
getopenscreen/openscreen#1435 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
QA: e2e pass on v2.2.0-rc.1 (macOS, Windows)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
getopenscreen/openscreen#1431 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của getopenscreen/openscreen
Issue tương tự
-
Replace discontinued crypto-js in the themeCó thể đã có người làm @aelmanaa đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
PaloAltoNetworks/docusaurus-openapi-docs#1689 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
solana-foundation/solana-web3.js#4015 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
formatSearchQuery drops the :present modifier, so `email:present=true` is sent as `email=true`Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 90/100
ivopogace/opencode-courier#422 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
chapel-lang/chapel-vscode#158 ·
Maintainer thường phản hồi trong vòng 1 ngày