课程社区链接:首页 - 2025年春季软件工程(罗杰、任健) - 北京航空航天大学 - 班级博客 - 博客园 (cnblogs.com)
作业要求链接:[I.2] 个人作业:软件案例分析 - 作业 - 2025年春季软件工程(罗杰、任健) - 班级博客 - 博客园 (cnblogs.com)
课程目标:让学生掌握软件开发的基本理论与方法,理解软件工程实践,提高团队协作能力,并具备分析和解决软件开发问题的能力。通过学习需求分析、设计、编码、测试和维护等环节,学生能够更系统地理解软件开发流程,并运用工程化方法提升软件质量。
作业目标:了解软件工程的原理在好/坏软件上所起的作用。
- 软件认识
- 第一部分——调研、评测
- 一、软件评测
- 1、软件使用
- 2、软件分析
- 3、改进意见
- 4、用户调研
- 5、评测结论
- 二、Bug分析和提交
- Bug严重性的量化标准
- Bug1:"游戏采集"无法及时捕捉到游戏画面,始终黑屏
- 1. 测试环境
- 2. 可复现性及具体复现步骤
- 3. Bug 具体情况描述
- 4. Bug 分析
- 5. Bug 改进建议
- Bug2:OBS 忽略自身界面,但部分子界面仍会被捕获
- 1. 测试环境
- 2. 可复现性及具体复现步骤
- 3. Bug 具体情况描述
- 4. Bug 分析
- 5. Bug 改进建议
- Bug 未修复原因分析
- Bug反馈
- 一、软件评测
- 第二部分——分析
- 1、工作量分析
- 2、软件质量分析
- 功能特性对比
- 3、软件工程改进建议
- 第三部分——建议与规划
- 市场现状
- 市场概况
- 竞争产品
- 产品定位
- 市场与产品生态
- 核心用户群
- 用户群体之间的关系
- 产品的子产品与生态
- 产品规划
- 新功能设计(NABCD分析)
- 团队角色配置
- 16周开发计划
- 市场现状
软件认识
我与OBS Studio这款软件的结缘说来有趣,某次玩CS:GO打出了引以为豪的操作,突然想向自己的好哥们炫耀炫耀,于是就去搜索视频录制软件,我搜索的关键词很明确:免费,发现大家基本上都在推荐OBS Studio,于是就下载并使用了这款软件。
OBS Studio全称为Open Broadcaster Software,是一款免费开源的视频录制和直播软件,广泛用于游戏直播、教学视频、会议录制等场景,它支持Windows、Mac和Linux多平台,功能强大并且高度的可定制化。
第一部分——调研、评测
一、软件评测
1、软件使用
我主要使用的是OBS的视频录制功能,集中在游戏demo录制方面;
- 软件界面:
我在日常使用中进行了如下的定制化设置:
- 我有外置显示器,所以给场景添加了外置显示器的源,在游戏demo录制中我一般选择源KTC,通过点击右侧的“眼镜”图案可以切换录制源:
- 在录制过程中,声音有两个来源,一是电脑的音频,二是环境的声音(例如解说的声音),在混音器栏目中可以调整二者声音的大小:
- 根据电脑屏幕的属性(分辨率)和录制的侧重点(游戏demo录制侧重帧率),我将录制的视频属性设置如下:
- 我录制的视频一般会放到B站(这是我的B站账号,里面的视频都是使用OBS录制D雨小森的个人空间-D雨小森个人主页-哔哩哔哩视频 (bilibili.com)),或者分享到朋友微信群中,所以我选择输出为.mkv格式,这种格式可以直接在微信群发送,并且使用手机自带的视频软件就可以播放:
2、软件分析
OBS Studio能够满足大多数用户视频录制和直播需求,下面我将结合我自己的使用经历来总结一下视频录制的基本流程:
- 首先,明确电脑的硬件属性,包括显示器分辨率、显示器刷新率、音频设备和麦克风设备,正确的设置硬件的基本参数;
- 创建场景,并在场景的来源中添加自己的视频源(显示器),同时确定是录制全屏还是只录制特定窗口;
- 根据自己的传播需求设置录制格式;
- 点击“开始录制”按钮,OBS 会开始录制视频;
- 在录制过程中,可以通过“预览”窗口实时查看画面效果;
- 点击“停止录制”按钮,视频文件会自动保存到指定位置;
优点 | 缺点 | |
---|---|---|
数据量 | 高效压缩、自定义比特率 | 高画质需求大、直播占用带宽 |
界面 | 模块化设计、可自定义布局 | 学习曲线高、功能入口较深 |
功能 | 功能全面、插件扩展、多平台兼容 | 缺少内置编辑功能、部分功能依赖插件 |
准确度 | 高质量输出、实时监控 | 硬件要求高、网络依赖性强 |
用户体验 | 免费开源、灵活性强 | 学习成本高、界面不够友好、硬件依赖性 |
3、改进意见
- 降低学习曲线:可以提供更详细的初始设置向导,并在软件中集成交互式教程,指导用户如何使用关键功能,此外还没有在软件中预设一些使用场景例如游戏直播、教学视频录制等的设置模板,方便用户直接使用;
- 添加简单的视频剪辑功能(如剪切、合并、添加字幕),减少对第三方软件的依赖;
- 引入智能功能,如 AI 辅助和语音控制;
4、用户调研
- 采访对象:北航大三计算机科学与技术专业学生颜铭鑫,他喜欢打永劫无间,打出高光操作也喜欢录制下来;
5、评测结论
e) 非常推荐
二、Bug分析和提交
Bug严重性的量化标准
- ⭐⭐⭐⭐⭐(5 星):致命性系统故障或安全漏洞,导致软件崩溃或严重的数据泄露。
- ⭐⭐⭐⭐(4 星):严重系统故障或重要功能失效,显著影响用户体验。
- ⭐⭐⭐(3 星):一般性功能缺陷,对部分用户造成不便。
- ⭐⭐(2 星):轻微问题,对用户影响较小。
- ⭐(1 星):细微问题,几乎不影响用户体验。
Bug1:"游戏采集"无法及时捕捉到游戏画面,始终黑屏
1. 测试环境
- 操作系统:Windows 11 专业版 64 位
- OBS 版本:OBS Studio 版本30.2.3
- 硬件配置:
- CPU:AMD Ryzen 5 5500
- GPU:AMD Radeon RX 6650 XT
- 发生时间:2025 年 3 月 14 日
2. 可复现性及具体复现步骤
- 可复现性:必然发生
- 复现步骤:
- 启动 OBS Studio。
- 创建一个新场景。
- 添加来源“游戏捕获”,并选择“捕获特定窗口”。
- 打开任意全屏或窗口化游戏(如《土豆兄弟》)。
- 在 OBS 预览窗口中检查游戏画面是否被捕捉。
3. Bug 具体情况描述
-
现象:
- OBS 无法及时捕捉到游戏画面,预览窗口始终显示黑屏。
- 即使多次切换游戏窗口或重新选择捕获源,问题依旧存在。
- 图片:
-
预期行为:
- 游戏窗口应被及时、稳定地捕捉到,且在预览和录制中均能正常显示。
4. Bug 分析
- 可能成因:
- 游戏使用了反作弊保护(如 BattleEye、Easy Anti-Cheat),阻止了 OBS 的捕获。
- 在多 GPU 环境下,OBS 可能绑定到与游戏不同的 GPU,导致捕获失败。
- 游戏窗口渲染方式(如 DX12、Vulkan)不完全兼容 OBS 的捕获机制。
- 严重性:⭐⭐⭐⭐(4 星)
- 系统功能:无法捕获游戏画面,直接影响核心录制和直播功能。
- 用户体验:用户无法正常录制或直播游戏,需不断尝试切换源或重启。
5. Bug 改进建议
- 正常行为:
- OBS 应能够在多 GPU 环境和反作弊机制下,稳定捕获游戏画面。
- 改进措施:
- 增强 OBS 对 DX12、Vulkan 渲染方式的兼容性。
- 在“游戏捕获”设置中,增加显卡选择选项。
- 提供捕获延迟检测和自动恢复机制,确保游戏画面可见。
Bug2:OBS 忽略自身界面,但部分子界面仍会被捕获
1. 测试环境
- 操作系统:
- OBS 版本:OBS Studio 版本30.2.3
- 硬件配置:
- CPU:AMD Ryzen 5 5500
- GPU:AMD Radeon RX 6650 XT
- 发生时间:2025 年 3 月 14 日
- 其他信息:使用“显示器捕获”来源
2. 可复现性及具体复现步骤
- 可复现性:必然发生
- 复现步骤:
- 打开 OBS Studio 并创建新场景。
- 添加来源“显示器捕获”。
- 在 OBS 中进行任何操作,观察预览窗口。
3. Bug 具体情况描述
-
现象:
- OBS 主界面不会出现在预览或录制中。
- 但“设置”、“属性”等弹出子界面仍会被捕捉,导致用户界面信息泄露。
- 图片:(开启了“隐藏OBS窗口功能后截图无法包含OBS界面,所以只能拍照了)
-
预期行为:
- OBS 应全面屏蔽自身界面,所有子窗口也不应被捕捉。
4. Bug 分析
- 可能成因:
- OBS 对主窗口使用了特殊的窗口排除机制,但对子窗口未完全应用。
- 子窗口调用的渲染方式可能未纳入排除规则。
- 严重性:⭐⭐⭐(3 星)
- 系统功能:信息泄露风险,子窗口可能包含敏感设置。
- 用户体验:用户在设置 OBS 参数时,私密界面可能暴露给观众。
5. Bug 改进建议
- 正常行为:
- OBS 应完整屏蔽自身界面,包含所有子窗口,避免信息泄露。
- 改进措施:
- 扩展窗口排除列表,确保所有 OBS 界面(主窗口+子窗口)不被捕捉。
- 提供“排除指定窗口”功能,允许用户手动选择需隐藏的界面。
Bug 未修复原因分析
- 对用户需求掌握不足:
- 可能开发团队未充分考虑多 GPU 环境和游戏反作弊机制对捕获的影响。
- 测试把关不严:
- 可能未针对高刷新率、多显卡和多窗口环境进行全面测试。
- 技术实现复杂性:
- OBS 捕获不同渲染模式和反作弊机制需底层驱动级支持,修复难度较高。
Bug反馈
在github的OBS项目中,我对上述的两个bug进行了反馈:
第二部分——分析
1、工作量分析
假设 OBS 开发团队由 6 人 组成(计算机科学专业毕业生,具备专业 UI 支持),估计 OBS Studio 达到当前水平需要 18-24 个月。
- 核心功能开发(采集、编码、推流):约 12 个月
- UI/UX 设计与迭代:约 4-5 个月
- 平台优化(Windows/macOS/Linux):约 3 个月
- Bug 测试与维护:约 4 个月(持续进行稳定性改进)
OBS Studio 的复杂性主要来源于多种采集方式(游戏、显示器、窗口)、对多平台的兼容性、以及对最新图形 API 和硬件环境的适配。
2、软件质量分析
OBS Studio 是一款顶级开源直播软件,在同类产品(如 XSplit、Streamlabs OBS)中通常排名第一或第二。
优势:
- 开源且有强大的社区支持;
- 丰富的插件生态系统;
- 跨平台支持(Windows、macOS、Linux);
- 高度可配置,提供多种高级采集与编码选项;
- 性能强大且稳定,特别是在高分辨率(4K)与高帧率(60FPS)环境下,资源占用较低,适合专业用户进行长时间录制与推流;
劣势:
- 对新 API(如 DirectX 12、Vulkan)的兼容性偶尔存在问题
- 初学者上手难度较高
- 某些 UI 相关 Bug 持续存在(如子窗口捕捉问题)
功能特性对比
特性 | OBS Studio | Streamlabs OBS | XSplit Broadcaster |
---|---|---|---|
核心功能(采集/推流) | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
插件扩展性 | ✅ 丰富 | ⛔️ 有限 | ⛔️ 有限 |
硬件加速 | ✅ 支持多种编码器 | ✅ 支持多种编码器 | ✅ 支持多种编码器 |
UI 自定义 | ✅ 高度自定义 | ⛔️ 固定布局 | ✅ 部分支持 |
跨平台支持 | ✅ Windows/macOS/Linux | ⛔️ Windows | ⛔️ Windows |
3、软件工程改进建议
建议:加强自动化测试框架
为解决 Bug 复现问题,防止回归错误,团队应建立覆盖以下场景的自动化测试体系:
- 跨平台环境测试(Windows、Linux、macOS)。
- GPU 选择与采集管道验证。
- 针对极端情况的压力测试(如高刷新率、多 GPU 环境)。
引入自动化测试可减少对手动测试的依赖,提前发现复杂问题,提升软件稳定性和用户信任度。
第三部分——建议与规划
市场现状
市场概况
- 市场大小:OBS属于流媒体、游戏直播、视频制作和在线教育领域,具有广泛的用户基础。从游戏玩家、内容创作者到企业培训人员,全球有数百万用户。根据Statista等行业报告,全球在线游戏直播市场和流媒体制作市场预计将在未来几年继续增长。假设直接用户为500万左右,潜在用户为上千万,且在不断扩展。
- 潜在用户:包括游戏直播用户、教育行业、企业视频会议、社交媒体创作者等。随着直播行业的普及,尤其是TikTok和YouTube直播的崛起,OBS的潜在用户群体正在快速增长。
竞争产品
- 竞争对手:市场上主要的竞争产品包括XSplit、Streamlabs、Wirecast、vMix等。
- XSplit:以易用性为卖点,适合初学者,但缺乏灵活性。
- Streamlabs:流媒体直播的一体化平台,用户界面友好,侧重于用户的直播体验,但在高级功能上可能不如OBS。
- Wirecast和vMix:功能强大的专业视频制作软件,适用于电视直播和企业级应用,但价格较高。
- 竞争优势与劣势:
- OBS的优势:开源、免费,功能高度定制,插件丰富,广泛应用于游戏直播。
- OBS的劣势:用户界面相对复杂,初学者上手难度较大,缺乏集成化的工具和预设。
产品定位
- 定位:OBS的核心优势是免费开源和高度自定义,定位在专业视频制作、游戏直播和在线教育等领域。它适合那些有一定技术背景的用户,如游戏主播、专业视频创作者、视频编辑等。
- 优势:无版权费用、灵活性高、广泛支持插件。
- 劣势:学习曲线陡峭,界面较为简陋,对新手用户不友好。
- 竞争态势:
- 目前OBS在游戏直播领域占据主导地位,但在一般的视频制作和专业广播领域面临来自XSplit、Wirecast等高端产品的竞争。
- 各大厂商已逐步推出易用的集成功能,而OBS的开源和高度自定义使其在用户体验上处于劣势,尤其在快速发展的内容创作领域,OBS可能会错失部分年轻用户群体。
市场与产品生态
核心用户群
- 典型用户:包括职业或业余的游戏直播主播、YouTube创作者、在线教育培训师等。
- 年龄:18-40岁
- 学历:中学及以上,大部分为大学生或职业人士。
- 专业与兴趣:游戏、视频创作、直播内容、编程、技术、教学等。
- 收入:普遍为中低收入群体(一些游戏主播或教育工作者可能有较高收入,但不代表大多数用户)。
- 表面需求:稳定、高清的直播和视频录制功能,易于集成的社交媒体平台支持。
- 潜在需求:更强大的视频编辑和实时互动功能,定制化插件和工作流集成,简化操作界面等。
用户群体之间的关系
- 关系生态:OBS的用户群体高度重叠,很多用户同时是游戏主播、视频创作者、技术开发者或教育工作者。通过建立社区、论坛以及插件开发平台,用户之间可以共享经验和资源,从而形成强大的互动性。
- 利用现有的社区生态,可以鼓励用户参与到软件开发和改进过程中,推动社区共同进步。
产品的子产品与生态
- 插件与子产品关系:OBS有大量的插件和开源工具,如StreamFX、OBS Websocket等,这些产品之间形成了强大的生态系统。
- 可以进一步扩展与其他流媒体平台的集成,或与视频编辑软件、虚拟现实应用等进行深度绑定,构建跨平台生态。
产品规划
新功能设计(NABCD分析)
- 需求(Need):用户急需的是更简化的操作界面和更加易用的设置功能,尤其是对于非技术用户(如初学者、教育行业用户)。
- 行动(Action):开发一款全新的简易模式,简化用户界面,提供自动化设置和预设模板,减少用户对技术细节的关注。
- 利益(Benefit):增加更多初学者的用户,扩大OBS的市场份额,提升用户粘性。
- 挑战(Challenge):简化界面的同时,不能降低功能的灵活性和可定制性,保持开源和免费优势。
- 差异(Differentiation):OBS在开源、自由定制方面的优势非常明显,但对新手用户的友好度较低。新功能将打破这一瓶颈,提供更多一键启动的功能,成为适用于从新手到专家的全生命周期工具。
团队角色配置
- 开发团队:4人
- 2名后端开发:负责核心功能的改进、优化现有功能,处理插件支持等。
- 2名前端开发:优化用户界面,开发简易模式,处理用户体验问题。
- 测试团队:2人
- 1名功能测试:确保新功能符合要求,测试所有平台的兼容性。
- 1名UI/UX测试:负责简易模式的用户体验测试和反馈。
- 美工与设计:1人
- 负责简化模式的UI设计,确保界面友好且易于使用。
16周开发计划
- 第1-2周:需求调研和市场分析,收集现有用户反馈,分析竞争产品。
- 第3-4周:确定简易模式的设计,编写技术方案。
- 第5-8周:开始开发简易模式,完成用户界面设计,初步完成后端与前端功能开发。
- 第9-12周:整合新功能并开始内部测试,收集反馈并修复bug。
- 第13-14周:进行系统集成测试,确保与现有OBS版本兼容。
- 第15周:开展用户测试,改进功能,优化用户体验。
- 第16周:发布软件新版本,启动营销和推广活动。