Android 录屏ffmpeg编码_网络

一、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)
  即一秒钟内视频的帧数,帧数越高,画面的流畅感越强,临场感越强,对于运动剧烈的画面,建议使用高分帧率。