<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[吃面不喝汤的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mbs6176966</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mbs6176966]]></copyright><item><title><![CDATA[设置WDA_EXCLUDEFROMCAPTURE 无效的原因]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147987417</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147987417</guid><author>mbs6176966</author><pubDate>Thu, 15 May 2025 17:05:39 +0800</pubDate><description><![CDATA[虚拟机环境下，系统版本“支持”不代表底层GPU管线支持。必须确保 vGPU / 驱动能够暴露，才能让OBS走WGC，并使Affinity真正生效。在无法保障WGC的情况下，建议在开始录制前隐藏调节面板或使用降级策略，以保证录制画面中不出现敏感UI。]]></description><category></category></item><item><title><![CDATA[破解 Qt QProcess 在 Release 模式下的“卡死”之谜]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147903851</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147903851</guid><author>mbs6176966</author><pubDate>Mon, 12 May 2025 20:06:34 +0800</pubDate><description><![CDATA[在使用 Qt 的QProcess：通过ffprobe同步获取媒体文件的参数（分辨率、采样率、声道数、码率等）。：逐个文件调用或者，异步重新编码到统一格式。：生成后，调用将中间文件拼接成最终输出。在模式下一切运行正常，但切换到（尤其是打包到生产环境）后，却经常出现程序卡在“开始拼接…”或无法结束，不抛错也不返回的怪异现象。本文将深入剖析其背后的根因，并提供简单可靠的解决方案。]]></description><category></category></item><item><title><![CDATA[在阿里云 Ubuntu 24.04 上部署 RabbitMQ：一篇实战指南]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147645120</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147645120</guid><author>mbs6176966</author><pubDate>Thu, 01 May 2025 10:53:24 +0800</pubDate><description><![CDATA[RabbitMQ 是业界常用的开源消息中间件，支持 AMQP 协议，易于部署、高可用、插件丰富。本文以阿里云 ECS 上运行的 Ubuntu 24.04 LTS 为例，手把手带你完成 RabbitMQ 从仓库配置到运行的全流程，并分享在国内环境下常见的坑与对应解决方案。仓库 502/无效：使用 RabbitMQ 官方 Cloudsmith 签名，避开 Erlang-Solutions 国内网络屏蔽。sources.list 解析错误deb行不要带反斜杠续行，改为单行格式。IPv6 不可达。]]></description><category></category></item><item><title><![CDATA[深入定制 QSlider——实现精准点击跳转与拖拽区分]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147257808</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147257808</guid><author>mbs6176966</author><pubDate>Tue, 15 Apr 2025 20:29:47 +0800</pubDate><description><![CDATA[默认 QSlider 在点击槽区域时执行页步进，因此需自行计算槽的实际区域（grooveRect），保证滑块中心与点击位置对齐。这可以通过使用 QStyleOptionSlider 获得准确的矩形区域来实现。通过记录鼠标按下的位置和检测移动距离，实现了点击（直接跳转）与拖拽（连续更新）的区分，提升了用户的交互体验。由于直接点击槽区域未设置 sliderDown 状态，导致松开时无法发出 sliderReleased 信号。]]></description><category></category></item><item><title><![CDATA[OBS SDK 中 ffmpeg_muxer 与 ffmpeg_output 的区别与使用 QSV 编码器的正确方式]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147170893</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147170893</guid><author>mbs6176966</author><pubDate>Sat, 12 Apr 2025 20:36:56 +0800</pubDate><description><![CDATA[特性内部使用直接调用 FFmpeg APIOBS 封装逻辑，复用 FFmpeg muxer编码器支持FFmpeg 原生（如libx264h264_qsvOBS 封装的（如obs_x264obs_qsv11灵活性一般高适合场景快速原型或简单录制高度自定义的录制与推流是否能用obs_qsv11❌ 不支持✅ 支持是否支持接口❌✅在 OBS SDK 的使用中，理解输出类型与编码器的耦合关系非常重要。开发中若选择了错误的输出类型，可能导致编码器加载失败、输出文件为空、甚至程序崩溃。]]></description><category></category></item><item><title><![CDATA[OBS 中如何设置固定码率（CBR）与可变码率（VBR）？]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147054532</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147054532</guid><author>mbs6176966</author><pubDate>Mon, 07 Apr 2025 22:29:57 +0800</pubDate><description><![CDATA[OBS 简单模式对 VBR 做了封装，可能只显示一个码率输入框。若需精确控制“最大码率”，请切换到高级输出模式，或在代码中通过bitrate显式设置。每个编码器的CBR：设置bitrateVBR：设置bitrate和合理选择码率控制方式，能有效提升视频质量或减少卡顿。]]></description><category></category></item><item><title><![CDATA[OBS 中不同编码器的预设作用与设置方法详解]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147054502</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147054502</guid><author>mbs6176966</author><pubDate>Mon, 07 Apr 2025 22:28:53 +0800</pubDate><description><![CDATA[编码预设是一组编码参数集合，用来控制编码效率与资源消耗之间的平衡。更快的预设（如 ultrafast）：占用更少 CPU/GPU，速度更快，但压缩率较低、画质较差。更慢的预设（如 slow）：占用更多资源，速度较慢，但压缩率更高、画质更好。]]></description><category></category></item><item><title><![CDATA[使用 Qt 和 OBS 工具检测系统硬件编码器支持情况（NVENC、QSV、AMF）]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147051997</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147051997</guid><author>mbs6176966</author><pubDate>Mon, 07 Apr 2025 20:19:59 +0800</pubDate><description><![CDATA[本方案通过 Qt + OBS 工具程序实现了：✅ 异步检测硬件加速能力，不卡 UI✅ 支持多平台：NVIDIA / Intel / AMD✅ 自动优先选择最合适的 H.264 编码器在实际软件中可以作为编码设置初始化逻辑的一部分，为用户选择最优性能方案。如果你想扩展支持 HEVC 或 AV1，只需在的源码中增加对应字段解析即可。]]></description><category></category></item><item><title><![CDATA[QScrollArea 内部滚动条 QSS 样式失效问题及解决方案]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147031007</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147031007</guid><author>mbs6176966</author><pubDate>Sun, 06 Apr 2025 21:58:15 +0800</pubDate><description><![CDATA[现象：在 UI 设计器中预览 QSS 效果正常，但程序运行时 QScrollArea 内部滚动条样式依旧是默认样式；全局 QSS 能生效，但不希望全局修改。原因QScrollArea 内部滚动条的生成方式导致层级选择器无法精确匹配。平台原生样式可能干扰 QSS 设置。解决方式直接获取 QScrollArea 内部的滚动条对象，并为其单独设置 objectName 和样式。]]></description><category></category></item><item><title><![CDATA[深入理解 QScrollArea 的 widgetResizable 属性]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/147030071</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/147030071</guid><author>mbs6176966</author><pubDate>Sun, 06 Apr 2025 20:57:21 +0800</pubDate><description><![CDATA[默认（true）：内容区域自动调整为 viewport 大小，适用于自适应显示的场景。设置为 false：允许内容区域尺寸自定义超出 viewport，适合需要滚动浏览大量内容的场景。在设计界面时，根据实际需求选择合适的设置，可以让你的应用既美观又实用。希望这篇博客能帮助你更好地理解和使用 QScrollArea 的属性。]]></description><category></category></item><item><title><![CDATA[利用 QOpenGLWidget 实现 GPU 加速视频帧绘制]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146416135</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146416135</guid><author>mbs6176966</author><pubDate>Fri, 21 Mar 2025 11:08:21 +0800</pubDate><description><![CDATA[初始化 OpenGL 上下文利用 QOpenGLWidget 创建一个 OpenGL 上下文，设置背景色、视口和正交投影。纹理上传使用 QOpenGLWidget 内置的方法将 QImage 上传为 OpenGL 纹理。Qt 内部会处理格式转换和缓存，避免重复上传相同内容。固定函数管线绘制利用 OpenGL 固定函数管线（glBegin/glEnd）绘制一个覆盖整个窗口的矩形，设置顶点和对应的纹理坐标。GPU 会自动根据当前绑定的纹理及过滤模式完成缩放和采样。释放资源与更新。]]></description><category></category></item><item><title><![CDATA[Qt 多线程设计：死循环与信号槽的权衡]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146407913</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146407913</guid><author>mbs6176966</author><pubDate>Thu, 20 Mar 2025 22:33:06 +0800</pubDate><description><![CDATA[信号发送：死循环不影响 emit，音频可以通知视频。信号接收：死循环无事件循环，需用设计 2 或状态检查解决。选择依据：实时性选设计 1，同步和扩展性选设计 2。通过将死循环移到 std::thread，结合 QThread 的事件循环，我实现了音频和视频的高效同步。这种设计既满足了实时性，又提供了灵活性，是音视频播放器的推荐方案。]]></description><category></category></item><item><title><![CDATA[解决 FFmpeg 处理 H.264 视频时因分辨率对齐导致的崩溃问题]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146387545</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146387545</guid><author>mbs6176966</author><pubDate>Thu, 20 Mar 2025 09:15:43 +0800</pubDate><description><![CDATA[这个“坑”让我深刻认识到视频处理的复杂性，尤其是分辨率对齐对 FFmpeg 工作流的影响。将宽度对齐到 16 的倍数看似微小的改动，却解决了崩溃问题，并让我对 H.264 的编码细节有了更深的理解。如果你也遇到类似问题，不妨检查一下对齐逻辑——16 的倍数可能是你的救星！希望这篇总结对你有所帮助。如果有其他 FFmpeg 相关的坑，欢迎交流！]]></description><category></category></item><item><title><![CDATA[解决 开发FFMPEG视频播放器右侧白色线问题]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146338975</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146338975</guid><author>mbs6176966</author><pubDate>Tue, 18 Mar 2025 13:09:10 +0800</pubDate><description><![CDATA[右侧白色线问题是 Qt 视频播放器开发中常见的渲染缺陷，通常由缓冲区对齐、未初始化像素或背景处理不当引起。对齐视频帧宽度并初始化缓冲区。在渲染时清除窗口背景。验证图像转换和缩放逻辑。这些方法不仅适用于本文的场景，也可作为通用的调试和优化手段，适用于其他基于 Qt 和 FFmpeg 的视频应用开发。希望这篇文章能帮助遇到类似问题的开发者快速定位并解决问题！]]></description><category></category></item><item><title><![CDATA[解决 OBS 截图黑屏问题 —— 确保源处于 Active 和 Showing 状态]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146293431</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146293431</guid><author>mbs6176966</author><pubDate>Sun, 16 Mar 2025 12:31:41 +0800</pubDate><description><![CDATA[在 OBS 插件或二次开发中，很多开发者遇到过这样的问题：本文将详细介绍出现黑屏的原因，并分享一种简单有效的解决方案——通过手动激活源来确保 OBS 渲染出有效帧。]]></description><category></category></item><item><title><![CDATA[修复 VS2019 .RC 文件中文乱码与 UAC 窗口显示问题]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146200306</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146200306</guid><author>mbs6176966</author><pubDate>Wed, 12 Mar 2025 11:25:06 +0800</pubDate><description><![CDATA[rc资源文件中的中文字符串显示为乱码。UAC 提权对话框不显示正确的产品名称和应用图标。本文将详细分析这些问题的原因，并提供解决方案。]]></description><category></category></item><item><title><![CDATA[如何为初创公司选择合适的代码签名证书：Sectigo、GlobalSign 和 DigiCert 对比与优化策略]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146138805</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146138805</guid><author>mbs6176966</author><pubDate>Sun, 09 Mar 2025 21:09:26 +0800</pubDate><description><![CDATA[短期：选择 Sectigo EV，结合 Beta 版测试和微软审核，快速建立信任。中期：升级到 GlobalSign，平衡成本与效果。长期：投资 DigiCert，确保与大公司竞争无障碍。关键策略：主动提交微软审核是性价比最高的方法，24-48 小时内可解决 SmartScreen 问题，无需依赖大量下载。对于初创公司，Sectigo 是一个经济实用的起点，通过优化策略和微软支持，完全可以达到与 GlobalSign 或 DigiCert 相似的效果。未来随着业务增长，逐步升级证书是明智之举。]]></description><category></category></item><item><title><![CDATA[申请软著流程 以及 源代码和操作说明格式]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146129156</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146129156</guid><author>mbs6176966</author><pubDate>Sun, 09 Mar 2025 11:17:16 +0800</pubDate><description><![CDATA[申请软著的总体流程是：注册账号 → 填写申请表 → 准备材料 → 提交申请 → 等待审查 → 拿证。所需核心材料包括申请表、身份证明、源代码和说明书。只要按要求准备材料并规范提交，通常都能顺利通过。建议提前在官网查看最新政策，确保流程和材料要求无变化。源代码和软件说明书没有固定的模板文件，但需要满足页眉（软件名称+版本号）、页码（右上角）、页数与行数的基本要求。源代码偏向技术性，需保持代码的可读性；说明书偏向说明性，需涵盖功能与使用细节。]]></description><category></category></item><item><title><![CDATA[Qt 坐标体系：逻辑坐标与物理坐标的区别与实践]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/146052937</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/146052937</guid><author>mbs6176966</author><pubDate>Wed, 05 Mar 2025 21:03:46 +0800</pubDate><description><![CDATA[在 Qt 开发中，逻辑坐标（Logical Coordinates）和物理坐标（Physical Coordinates）是两个至关重要的概念，尤其是在多屏幕、高 DPI 场景下，如何正确使用它们直接影响窗口的显示、绘制精度和用户体验。逻辑坐标是 Qt 默认使用的坐标体系，它与设备的分辨率和 DPI 缩放无关。例如，在 200% DPI 缩放的屏幕上，一个 100×100 的逻辑窗口实际上会占据 200×200 的物理像素，但开发者在代码中仍然使用 100×100 的尺寸。的屏幕上，实际显示区域是。]]></description><category></category></item><item><title><![CDATA[Qt 的 Lambda 捕获局部变量导致 UI 更新异常的分析与解决]]></title><link>https://blog.youkuaiyun.com/mbs6176966/article/details/145969883</link><guid>https://blog.youkuaiyun.com/mbs6176966/article/details/145969883</guid><author>mbs6176966</author><pubDate>Sun, 02 Mar 2025 20:56:28 +0800</pubDate><description><![CDATA[引用捕获（&dotCount）导致 Lambda 访问已失效变量，引发 UI 显示异常。使用值捕获（dotCount）+mutable，让变量变成 Lambda 自己的状态，避免生命周期问题。或者使用类成员变量代替局部变量，确保生命周期足够长。mutable只是让 Lambda 允许修改自身的捕获变量，而不会影响原始变量的存储位置。这个问题不仅仅在 Qt 开发中会出现，在 C++ Lambda 使用时都需要特别注意变量的生命周期，合理选择值捕获或引用捕获，才能确保程序的正确运行。]]></description><category></category></item></channel></rss>