OBS直播时编码器、码率控制器、分辨率帧率是什么以及如何向第三方推流

  • Post author:
  • Post category:其他


内容摘要:OBS直播时编码器、码率控制器、分辨率、帧率到底是什么,以及OBS向第三方直播平推流时,要注意什么。



图:OBS直播时输出界面参数设定

OBS编码器

1. 软编:

x264

使用CPU进行编码,占用CPU资源多,但编码出来视频质量更好

2. 硬编:

NVENC H.264

基于GPU编码,编码的计算负载由NV显卡的GPU承担,从而大大降低了CPU的压力。NV显卡编码的缺陷是在相同的h.264编码参数设置下,其编码后视频的质量比x264要次,特别是在大量运动画面和转场画面的情况下,会更为明显。

对于有的电脑来说,虽然配有NV的独立显卡,但在主板Bios上没有激活该显卡,而是使用的集成显卡,因此在“编码器”中不会有“NVENC H.264”的选项。

3.

QuickSync H.264

:即采用英特尔的集成显卡进行H.264的“硬”编码。英特尔显卡编码出来的质量介于CPU编码和NVENC编码之间。

4.

H264 Encoder(AMD Advanced Media Framework)AMF

:采用AMD的显卡进行编码。在其余条件相同的情况下,根据第三方测试结果,在这4种编码中,AMD显卡编码后的视频质量是最低的。

码率控制器

1.

VBR动态码率

:固定设定的码率上下波动,波动幅度较大

根据图像内容的复杂程度来分配不同的码率以确保画面的质量。在图像十分复杂,画面运动剧烈的情况下,其码率就会有大幅的提高,而在画面简单以及运动小或者几乎没有运动的情况下,码率会很低。

2.

CBR固定码率

:根据设定的码率相对波动,波动幅度很小,码率优先,质量第二

3.

ABR平均码率

:可以看成是权衡CBR和VBR的结果。

该模式也是以质量为目标,和VBR相比,更加温和一点,实际码率波动不会那么大,但可能就会牺牲一点点的质量为代价

4.

CRF固定质量模式:

该模式下码率由CRF质量值来进行控制,CRF取值范围在1~51之间,H264编码的

默认CRF值为23

,取值越低,编码质量越好,同时对CPU或者GPU的压力就越大。

关键帧间隔

关键帧间隔越大,也就是GOP越长,数据压缩越大,实际码率就会越低。但GOP太大会导致画质变差,特别是在运动画面中最为明显。所以我们不建议GOP设置太长,以确保画面质量,默认情况下可以设置为0,即系统自动设定。如果自己设置,可以考虑在半秒到2秒之间。

CPU使用预设(Present)

分了10级,即从最下面的placebo到最上面的ultrafast。级别越靠上,CPU处理的数据量越小,编码时对CPU的处理能力要求越低,但画质会越来越差。该参数对CPU的影响非常大,即使是从faster到fast一个级别的变化,CPU的运行量可能就会翻倍。一般可以选择在fast~veryfast级别之间,平衡画质与CPU的负载。

配置(Profile)

定义了视频在进行H264编码时的视频信号抽样和视频压缩方式(算法)相关的一组参数值,或者说特性。H264一共定义了7个档次,我们OBS中只支持最常见的三种,从低到高依次为

baseline、main和high

。在码率等其余参数不变的情况下,三种档次从低到高压缩率逐渐提高,对CPU计算能力的要求也逐步提高,同时画面质量也会更好。

微调(Tune)

8种适应场景。

1.film:电影画质场景,主要用户画质较高、比特率较高的应用场合;

2.animation:适用于卡通场景,对平坦区域较大的图形画面有一定的优化;

3.grain:应用于颗粒化比较多的画面,编码后能够较好保持原画面的颗粒感;

4.stillimage:应用于静态画面场合。

5.psnr和ssim:psnr和ssim是2个视频质量的量化指标,用于客观判断编码后的数据值和编码器前数据值的差异,但比不能真正的反应质量是否有所有提升。

6.fastdecode:使编码后的数据在解码时,对解码器CPU和(或)GPU的要求不高,即低处理能力的解码器也能快速的进行解码。

7.zerolatency:实现快速编码,适用于延迟要求低的场合,但画质可能有一定的影响。

分辨率(resolution)

1.基础画布分辨率:这是指OBS预监和输出框的分辨率,我们建议该分辨率和输入视频的分辨率一致,在不一致时,需要进行手动拉伸,以恰好适应画布的大小。

2. 输出(缩放)分辨率:即编码后的输出分辨率,根据实际需要调整,默认情况下建议于原始视频一致。

输出分辨率的大小对CPU或者计算计算资源有较大的关联性,在码率等其余条件不变的情况下,分辨率越高,占用的计算资源会越高,对硬件的要求越高。

3.缩小方法:指原高高分辨率视频下变换成低分辨率视频时,所采用的计算方法,obs提高了4种算法,即双直线法、区域法、双立方法和lanczos法,这四种方法下变换后的视频质量依次提高,但更好计算资源,所幸的是,对计算资源的占用量也不会有多大的影响。

帧率(FPS)

即一秒钟内视频的帧数,帧数越高,画面的流畅感越强,临场感越强,对于运动剧烈的画面,建议使用高分帧率。

OBS向第三方直播平台推流

以我熟悉的云平台为例(如果是向阿里云、腾讯云推流,也类似)。


图:获取第三方平台的推流地址


注意事项:

  • 第三方推流需使用直播模板为【纯视频】的频道
  • 获取了推流地址后的30分钟内需要进行推流,如果未推流则会过期,要从后台重新获取,也可以联系您的对应售后,获取频道的固定推流地址

主要有两个步骤:

1、打开OBS-设置


图:OBS直播界面中添加推流地址

2、填入推流地址

  • 在推流设置中,服务那一项选择“自定义”
  • 推流地址需要截断,并分开填入到服务器和串流密钥中

以下方推流地址举例,完整地址为:

rtmp://push-pp.vidoab.net/recordf/
CB*********cb3165acx7196c4a8?txSecret=38d274e9bcasd268dd65a9a8d6e&txTime=6364dasq2

特别注意:一般云平台提供的是类似上面的这样的RTMP完整的推流地址,使用OBS时,需要手动将该地址分两部分,填入OBS推流界面的参数中,分别为:

服务器地址:(推流服务器)rtmp://push-pp.vidoab.net/recordf/

串流密钥:(也可以理解是流名称)CB*********cb3165acx7196c4a8?txSecret=38d274e9bcasd268dd65a9a8d6e&txTime=6364dasq2

图如下:


图:OBS直播界面中添加推流地址(服务器地址、串流密钥)

完成后,发起直播,就OK了,如下图:


图:OBS直播界面中发起直播

图片


图(直播实例) / 绿幕舞台背景摄像机采集画面

图片


▲ 图(直播实例-观众观看效果)  / 直播绿幕抠图后直播间直播的实际效果

MR虚拟直播

无延迟直播

视频加密与安全

在线导播台



版权声明:本文为ffffffff8原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。