3步实战部署Stream-rec多平台直播录制完全指南【免费下载链接】stream-recAutomatic streaming record tool. Live stream and bullet comments recorder. 虎牙/抖音/斗鱼/Twitch/PandaTV/微博直播弹幕自动录制项目地址: https://gitcode.com/gh_mirrors/st/stream-rec你是否经常错过心仪主播的精彩直播或者需要自动录制多个平台的直播内容Stream-rec正是解决这些痛点的开源工具它能自动录制虎牙、抖音、斗鱼、Twitch、PandaTV、微博等主流平台的直播内容并支持弹幕录制和云端同步功能。从零开始快速启动你的直播录制服务获取项目源码首先克隆项目到本地这是所有部署步骤的起点git clone https://gitcode.com/gh_mirrors/st/stream-rec.git cd stream-recStream-rec基于Kotlin和Ktor框架构建集成了FFmpeg进行视频处理使用SQLite存储录制数据并通过Rclone支持云存储上传。Docker一键部署Stream-rec提供了完整的Docker支持这是最快捷的部署方式docker build -t stream-rec:latest . docker run -d \ --name stream-rec \ -p 12555:12555 \ -v $(pwd)/data:/app/data \ -v $(pwd)/config:/app/config \ -e TZAsia/Shanghai \ stream-rec:latest关键参数说明-p 12555:12555Web管理界面端口-v $(pwd)/data:/app/data录制文件存储目录-v $(pwd)/config:/app/config配置文件目录-e TZAsia/Shanghai设置时区确保录制时间准确访问管理界面容器启动后打开浏览器访问http://localhost:12555即可进入Stream-rec的Web管理界面。从这里你可以添加直播源、配置录制参数、查看录制状态。核心功能模块深度解析多平台录制引擎Stream-rec的核心优势在于其强大的多平台支持能力。每个平台都有独立的下载引擎实现抖音录制位于platforms/src/main/kotlin/github/hua0512/plugins/douyin/download/虎牙录制位于platforms/src/main/kotlin/github/hua0512/plugins/huya/download/斗鱼录制位于platforms/src/main/kotlin/github/hua0512/plugins/douyu/download/Twitch录制位于platforms/src/main/kotlin/github/hua0512/plugins/twitch/download/每个平台插件都实现了统一的PlatformDownloader接口确保录制逻辑的一致性。平台适配的核心代码位于base/src/main/kotlin/github/hua0512/plugins/base/Extractor.kt定义了直播源提取的通用接口。弹幕录制系统弹幕是直播体验的重要组成部分Stream-rec的弹幕录制系统设计得相当完善// 弹幕数据模型定义 data class DanmuData( val content: String, val timestamp: Long, val userId: String, val userName: String )弹幕录制功能位于各平台的danmu目录下如虎牙的弹幕处理在platforms/src/main/kotlin/github/hua0512/plugins/huya/danmu/中实现。系统支持实时弹幕捕获和存储确保录制内容的完整性。文件处理流水线录制文件的处理是Stream-rec的另一大亮点包含两个核心处理模块FLV格式修复位于flv-processing/src/main/kotlin/github/hua0512/flv/目录提供了完整的FLV文件处理能力FlvFix.kt- FLV文件修复FlvAnalyzer.kt- FLV文件分析FlvParser.kt- FLV解析器HLS流处理位于hls-processing/src/main/kotlin/github/hua0512/hls/目录专门处理HLS直播流HlsProcess.kt- HLS流处理PlaylistResolver.kt- 播放列表解析数据持久化管理所有录制数据都通过SQLite数据库进行管理数据层设计非常清晰// 数据实体定义示例 Entity(tableName stream_data) data class StreamDataEntity( PrimaryKey val id: String, val streamerId: String, val title: String, val startTime: Long, val endTime: Long?, val filePath: String )数据库相关代码位于base/src/main/kotlin/github/hua0512/dao/包含流数据、用户、配置等完整的数据访问层实现。迁移管理在RoomMigrations.kt中处理确保数据库结构的平滑升级。实战配置打造个性化的录制系统直播源管理配置在Web界面添加直播源时需要了解不同平台的URL格式平台URL格式示例抖音https://live.douyin.com/{douyinId}https://live.douyin.com/123456斗鱼https://www.douyu.com/{room}https://www.douyu.com/99999虎牙https://www.huya.com/{room}https://www.huya.com/88888Twitchhttps://www.twitch.tv/{room}https://www.twitch.tv/streamer每个直播源的配置都存储在StreamerEntity中包含录制质量、格式、保存路径等参数。录制质量与格式设置Stream-rec支持多种录制配置通过DownloadConfig类进行管理data class DownloadConfig( val quality: String best, val format: String best, val outputTemplate: String {streamer}/{date}/{time}_{title}.{ext}, val retryCount: Int 3, val timeout: Long 30000 )质量选项支持 best、1080p、720p、480p 等常见分辨率具体支持情况取决于直播平台。输出模板变量{streamer}- 主播名称{date}- 录制日期 (yyyy-MM-dd){time}- 开始时间 (HH-mm-ss){title}- 直播标题{ext}- 文件扩展名云端存储集成通过Rclone集成Stream-rec可以将录制文件自动上传到多种云存储服务配置Rclone首先在宿主机上配置Rclone连接设置上传策略在Web界面配置上传触发条件监控上传状态通过UploadResultWithData实体跟踪上传进度上传相关代码位于base/src/main/kotlin/github/hua0512/plugins/upload/支持同步和异步上传模式。高级应用场景与性能优化多实例负载均衡对于需要录制大量直播源的用户可以部署多个Stream-rec实例# docker-compose-cluster.yml version: 3.8 services: stream-rec-1: image: stream-rec:latest ports: [12555:12555] volumes: [./data-1:/app/data] stream-rec-2: image: stream-rec:latest ports: [12556:12555] volumes: [./data-2:/app/data] nginx: image: nginx:alpine ports: [80:80] volumes: [./nginx.conf:/etc/nginx/nginx.conf]通过Nginx进行负载均衡将不同的直播源分配到不同的实例提高整体录制能力。存储空间管理长期录制会产生大量视频文件需要合理的存储管理策略自动清理配置# 设置录制文件保留策略 # 在config目录创建cleanup-policy.json { maxAgeDays: 30, maxTotalSizeGB: 500, keepFavorites: true }分级存储方案将新录制文件保存在SSD定期迁移到HDD历史文件上传到云存储。监控与告警集成Stream-rec提供了完整的事件系统可以集成到现有的监控体系中// 事件监听示例 eventBus.subscribeDownloadEvent { event - when (event) { is DownloadEvent.Started - { logger.info(录制开始: ${event.streamerId}) // 发送到监控系统 } is DownloadEvent.Completed - { logger.info(录制完成: ${event.filePath}) // 触发后续处理 } is DownloadEvent.Error - { logger.error(录制错误: ${event.error}) // 发送告警 } } }事件系统代码位于base/src/main/kotlin/github/hua0512/plugins/event/支持自定义事件处理器。从基础到精通掌握Stream-rec的最佳实践录制质量优化技巧网络连接优化确保录制服务器有稳定的网络连接避免因网络波动导致录制中断并发控制根据服务器性能合理设置同时录制的直播源数量磁盘IO优化使用SSD硬盘或RAID阵列提高写入性能弹幕录制的最佳实践存储格式选择弹幕可以存储为JSON或CSV格式便于后续分析时间同步确保弹幕时间戳与视频时间轴精确同步去重处理对于重复弹幕进行适当过滤减少存储开销故障恢复机制Stream-rec内置了完善的错误恢复机制// 错误处理示例 try { downloadStream(streamUrl, outputPath) } catch (e: DownloadErrorException) { when (e) { is NetworkError - retryWithBackoff() is PlatformError - switchToAlternativeSource() is FormatError - adjustDownloadParameters() } }错误处理逻辑分布在各个平台的下载器实现中确保单次失败不会影响其他录制任务。扩展开发指南如果你需要支持新的直播平台可以参照现有实现进行扩展创建平台插件目录在platforms/src/main/kotlin/github/hua0512/plugins/下新建平台目录实现下载器继承PlatformDownloader基类实现弹幕处理器如果需要弹幕支持注册插件在ExtractorFactory.kt中注册新的平台提取器你的直播录制工作流从此不同通过Stream-rec你可以建立完整的直播内容管理系统。从直播发现、自动录制、弹幕保存到云端归档形成完整的工作流。系统会持续监控你关注的主播在他们开播时自动开始录制并在直播结束后进行文件处理和上传。典型应用场景内容创作者自动录制竞争对手的直播内容进行分析教育机构录制在线课程和讲座媒体公司采集多个平台的新闻直播个人用户不错过喜欢主播的任何一场直播Stream-rec的模块化设计让你可以根据需要灵活配置无论是简单的个人使用还是复杂的企业级部署都能找到合适的方案。现在就开始构建你的自动化直播录制系统让精彩直播不再错过下一步行动建议从单个直播源开始测试熟悉配置流程逐步添加更多平台和直播源配置云端存储实现自动备份集成到现有的监控告警系统根据实际需求调整录制参数和质量设置通过这个完整的指南你应该已经掌握了Stream-rec的核心功能和部署方法。记住最好的学习方式就是动手实践——立即开始你的第一个直播录制任务吧【免费下载链接】stream-recAutomatic streaming record tool. Live stream and bullet comments recorder. 虎牙/抖音/斗鱼/Twitch/PandaTV/微博直播弹幕自动录制项目地址: https://gitcode.com/gh_mirrors/st/stream-rec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考