OBS推流时的视频色彩相关参数设置

本文介绍了在使用OBS推流时遇到的色彩偏差问题及其解决方案。主要关注OBS设置中的渲染器、颜色格式、色彩空间和色彩范围四个参数,强调了颜色格式选择NV12以匹配大部分摄像机的I420采样,色彩空间设置为(rec.)709以保证色彩丰富度,以及选择“全部”色彩范围以保留更多细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用OBS进行推流直播时,特别是采集卡采集摄像机信号进行推流直播时,我们可能会遇到这样的问题:
  1.为什么流信号与源信号相比有色彩偏差?
  2.明暗对比较大的视频信号,比如有树荫和太阳,在摄像机上可以看到比较暗淡的部分和十分明亮的部分,但编码后的视频流感觉就看不见了?
  这很大可能是我们对于视频色彩部分的参数设置不够精确导致的。打开OBS右下角“设置”按钮(或者左上角 文件->设置 )。
在这里插入图片描述
  选择“高级”,右边“视频”里面有4个色彩相关的设置选项,分别是渲染器、颜色格式、色彩空间和色彩范围。
  1.渲染器
  实现视频渲染的计算单元,包括了渲染的具体算法和接口等等,OBS提供direct3D11(win10 x64操作系统)和OpenGL2个参数供选择。理论上因二者算法不同,在色彩的还原度上肯定会有差异,但通过比较却无法判断二者的高下,因此我们可以保持默认,以确保OBS运行的稳定性。
  2.颜色格式
  颜色的抽样方式和保存格式。因抽样方式不同,不同的参数对色彩的还原度不同。系统提供I444、I420、RGB和NV12四种颜色格式。其中I444和RGB的色彩采样高,还原度最好;NV12的采样和I420是一致的,不同的是数据保存的格式,因此二者的还原度是一致的。在推流时,如果前方视频信号是I420(目前大部分高清摄像机默认设置为420采样),我们建议选择NV12,如果选择别的格式,会导致系统额外的计算开销,却不能提高色彩的还原度

ON_WM_MEASUREITEM 是一个 Windows 消息处理宏,用于处理自定义控件或窗口中的测量项消息(WM_MEASUREITEM)。这个消息通常在控件需要确定其子项的大小时发送。 当一个控件(如列表框、组合框等)包含可变大小的子项时,它需要知道每个子项的尺寸以便正确地布局和绘制它们。在这种情况下,控件会向其父窗口发送 WM_MEASUREITEM 消息,父窗口通过处理这个消息来确定每个子项的大小。 使用 ON_WM_MEASUREITEM 宏可以简化消息映射过程,使得开发者能够更方便地定义消息处理函数。这个宏通常与 MFC(Microsoft Foundation Class)库一起使用,MFC 提供了一套封装了 Windows API 的类,使得开发 Windows 应用程序更加容易。 示例代码: ```cpp BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx) // ... 其他消息映射 ON_WM_MEASUREITEM(IDC_MY_CONTROL, &CMyDialog::OnMeasureItem) END_MESSAGE_MAP() void CMyDialog::OnMeasureItem(WPARAM wParam, LPARAM lParam) { LPMEASUREITEMSTRUCT lpMIS = (LPMEASUREITEMSTRUCT)lParam; if (lpMIS->CtlType == ODT_LISTBOX) { // 设置子项的高度和宽度 lpMIS->itemHeight = 20; // 例如,高度为20像素 lpMIS->itemWidth = 100; // 例如,宽度为100像素 } } ``` 在这个例子中,当列表框控件需要测量其子项大小时,它会发送 WM_MEASUREITEM 消息到对话框。对话框的消息映射将这个消息关联到 OnMeasureItem 函数,该函数设置了子项的高度和宽度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值