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

在使用OBS进行推流直播时,特别是采集卡采集摄像机信号进行推流直播时,我们可能会遇到这样的问题:
  1.为什么流信号与源信号相比有色彩偏差?
  2.明暗对比较大的视频信号,比如有树荫和太阳,在摄像机上可以看到比较暗淡的部分和十分明亮的部分,但编码后的视频流感觉就看不见了?
  这很大可能是我们对于视频色彩部分的参数设置不够精确导致的。打开OBS右下角“设置”按钮(或者左上角 文件->设置 )。
在这里插入图片描述
  选择“高级”,右边“视频”里面有4个色彩相关的设置选项,分别是渲染器、颜色格式、色彩空间和色彩范围。
  1.渲染器
  实现视频渲染的计算单元,包括了渲染的具体算法和接口等等,OBS提供direct3D11(win10 x64操作系统)和OpenGL2个参数供选择。理论上因二者算法不同,在色彩的还原度上肯定会有差异,但通过比较却无法判断二者的高下,因此我们可以保持默认,以确保OBS运行的稳定性。
  2.颜色格式
  颜色的抽样方式和保存格式。因抽样方式不同,不同的参数对色彩的还原度不同。系统提供I444、I420、RGB和NV12四种颜色格式。其中I444和RGB的色彩采样高,还原度最好;NV12的采样和I420是一致的,不同的是数据保存的格式,因此二者的还原度是一致的。在推流时,如果前方视频信号是I420(目前大部分高清摄像机默认设置为420采样),我们建议选择NV12,如果选择别的格式,会导致系统额外的计算开销,却不能提高色彩的还原度。
  3.色彩空间
   即色域,体现了色彩的丰富性。系统提供(rec.)601和(rec.)709两种色域空间供选择,709较601能提供丰富的色彩,如果信号源是709空间色域,而OBS设置为601的话,推流的信号可能会出现饱和度不够、偏灰、偏白等现象,系统默认为601,推流(特别是高清推流)时建议改为709。
   4.色彩范围
   即色彩的动态范围,在明暗对比很大的画面中,动态范围越大,越能呈现更多的细节。系统提供“局部”和“全部”两个可选参数,建议选择全部。比如一个画面中有阳光、树荫和树荫下的人,如果色彩范围为“局部”,树荫下的人有可能就看不见,导致细节信息丢失。
  
   对于色彩空间和色彩范围两个选项,除了以上位置需要配置之外,如果是采用板卡采集外来信号或者捕捉USB摄像头(非网络)信号,在添加“视频捕获设备”视频源时,也需要进行设置,这一点也务必注意。
USB摄像头捕捉示例

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python obs推流是指使用Python编程语言中的OBS(Open Broadcaster Software)库来实现推流功能。OBS是一款开源的多媒体直播软件,它可以将音频和视频内容进行编码并发送到服务器,从而实现实直播的功能。 使用Python obs推流需要首先安装obs-python库,并且需要在计算机上安装OBS软件。然后,通过编写Python代码来实现推流功能。 首先,需要导入obs-python库,然后创建一个OBS对象: ```python import obspython as obs obs.obs_startup() # 创建OBS对象 obs_object = obs.obs_get_instance() ``` 接下来,需要设置推流的输出设置,包括视频和音频的相关参数。这些参数可以从OBS软件中获取: ```python # 设置输出设置 settings = obs.obs_data_create() obs_output = obs.obs_get_output(obs_object) # 获取输出设置 obs.obs_output_get_video_settings(output_settings, settings) obs.obs_output_get_audio_settings(output_settings, settings) # 设置视频和音频参数 obs.obs_data_set_int(settings, "width", 1920) obs.obs_data_set_int(settings, "height", 1080) obs.obs_data_set_double(settings, "fps_num", 30.0) obs.obs_data_set_double(settings, "fps_den", 1.0) obs.obs_data_set_int(settings, "bitrate", 5000) obs.obs_data_set_int(settings, "audio_bitrate", 128) obs.obs_data_set_int(settings, "audio_channels", 2) obs.obs_data_set_int(settings, "audio_sample_rate", 44100) # 更新输出设置 obs.obs_output_update(obs_output, settings) obs.obs_data_release(settings) ``` 最后,需要开始推流: ```python # 启动推流 obs.obs_output_start(obs_output) ``` 当推流完成,可以通过调用停止推流的函数来结束推流: ```python # 停止推流 obs.obs_output_stop(obs_output) ``` 最后,记得释放资源并关闭OBS对象: ```python obs.obs_output_release(obs_output) obs.obs_shutdown() ``` 以上就是使用Python obs推流的基本步骤,通过编写相应的代码即可实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值