直播系统源码开发,需要了解的一些视频编码基本概念

对于大多数人来说,对于视频的基本印象就是视频清晰度、体积大小、分辨率和视频格式。当然对于只对观看视频和下载视频的朋友们来说这些知识足够了。不过对于直播系统源码开发者而言,对视频文件会有更深入的了解。

AVC/H.264和AAC

随着高清时代的来临,我们逐渐开始了解了 高清的真正含义。网络上各种百科介绍的很详细,在这里不赘述了。需要谈的内容就是直播系统源码中高清视频的编码格式,最为常见的就是H.264,在新一代高清解码显卡中都支持这种编码的硬解。H.264编码格式是目前的明星级编码格式,在各种直播系统源码高清视频中都能见到它的身影。H.264是 MPEG4标准的第十部分,也就是AVC,所以全称为”MPEG-4 AVC/H.264″。

直播系统源码的视频音频之所以需要编码,是因为无损文件体积极为庞大,不适合大范围的传播。高清编码的过程就是使得无损视频以最少的画质音质损失获得最好的质量,为了剔除冗余的数据,需要对直播系统源码编码格式经过判断和计算,才能够使得视频文件体积尽量变得小巧。而不同编码格式之间的视频转换,是为了不损失源文件视频质量或有限的降低质量的情况下,用于各种范围的传播。

有直播系统源码开发经验的朋友肯定会立马想到音频的编码格式AAC,因为AAC同样是MPEG4标准的一部分,这就是为何几乎所有编码教程都会提到这个音频编码的原因。而且AAC的压缩编码效果要好于 MP3,目的也就是取代MP3编码格式。因为AVC和AAC是MPEG4的标准编码的代表,而且编码效果极佳,所以最为流行。

提到直播系统源码的编码格式,还得了解一下X.264、DivX和Xvid。这三种编码格式同样很流行,特别是在DVDRip中极为常见,因为它们都是从官方编码格式演变出来的编码格式,编码效果很好,而且不用交专利费。Divx是由微软官方的编码格式发展而来的,最终为了摆脱不光彩的身份,重新设计了开源的方案。遗憾的是该编码格式并未很好的发扬开源精神,所以会诞生和它抗衡的基于GPL协议开源编码格式Xvid。对于专利版权保护不重视的地区,可以直接使用官方的编码格式。

H.264编码的四种画质级别

  • BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;

  • EP-Extended Profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;

  • MP-Main Profile:主流画质。提供I/P/B
    帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;

  • HP-High Profile:高级画质。在main Profile
    的基础上增加了8×8内部预测、自定义量化、无损视频编码和更多的YUV格式;

其中MP是在直播系统源码流媒体中最常见的,如高清晰度的FLV文件。而HP在高清电影中最为常见,画质最佳。HP比MP编码的视频体积更小,但是对计算性能要求较高。随着计算机性能的提升,我想HP将会占据全部领域。目前基本上已经是HP为主流了。

大多数普通格式转换器只有简单的几个参数选择,在专业级免费视频转换软件MediaCoder中有很多复杂的选项,包括画质级别选项。值得一提的是MediaCoder使用的就是开源免费的的X.264编码器。对于需要复杂调节的视频编码需求的人来说,MediaCoder是一个不错的选择。

视频编码的常见参数基本概念

  • 压缩:Compress,按照特定的编码格式用比未经编码少的比特(或者其它信息相关的单位)表示信息的过程。直播系统源码数据压缩是通过移除数据冗余来实现的,比如说,对于数据重构过程中无用的数据。大多数直播系统源码视频编码方法寻找空间和时间上的冗余来达到压缩的效果。如画面像素采样点之间是相互关联的,相邻象素之间很相近。

  • 码率:Bit
    Rate,指直播系统源码视频或音频文件在单位时间内使用的数据流量,该参数的单位通常是Kbps,也就是千比特每秒。通常2000kbps~3000kbps就已经足以将画质效果表现到极致了。码率参数与视频文件最终体积大小有直接性的关系。

  • 混合码率:Overall Bit
    Rate,指直播系统源码视频文件中视频和音频混合后的整体平均码率。一般描述一个视频文件的码率都是指OBR,如新浪播客允许的OBR上限为523Kbps。

  • 固定码率:Constant Bit
    Rate,指的是直播系统源码编码器的输出码率(或者解码器的输入码率)应该是固定制(常数)。CBR不适合高清晰度视频的编码,因为CBR将导致没有足够的码率应对复杂多变内容部分进行编码(从而导致画质下降),同时在简单的内容部分会浪费一些码率。

  • 可变码率:Variable Bit
    Rate,直播系统源码编码器的输出码率(或者解码器的输入码率)可以根据编码器的输入源信号的负责度自适应的调整,目的是达到保持输出质量保持不变而不是保持输出码率保持不变。VBR编码会消耗较多的计算时间,但可以更好的利用有限的存储空间:用比较多的码率对复杂度高的段进行直播系统源码编码,用比较少的码率对复杂度低的段进行编码。总之需要清晰度高且体积小的视频,选择VBR是明智的选择。

  • 平均码率:Average Bit
    Rate,直播系统源码指音频或视频的平均码率,可以简单的认为等于文件大小除以播放时间。在直播系统源码音频编码方面与CBR基本相同,会按照设定的目标码率进行编码。但当编码器认为“适当”的时候,会使用高于目标码率的数值来进行编码以保证更好的质量。

  • 帧率:Frame Rate,是用于测量画面显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per
    Second,缩写:FPS)。如电影的帧率一般是25fps和29.97fps,而第一人称射击游戏等要求画面极为顺畅的特殊场合,则需要30fps以上的效果,高于60fps就没有必要了。

  • 采样率:每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。一般音乐CD的采样率是44100Hz,所以视频编码中的音频采样率保持在这个级别就完全足够了,通常视频转换器也将这个采样率作为默认设置。

  • Single Pass:在编码的时候只进行一次运算,直接生成经过编码的视频文件。

  • Two
    Pass:需要运算两次,可以理解为先进行一次全局的计算,收集画面信息,并将这些信息记录到信息文件。第二次才根据采集的信息,正式进行压缩,生成压缩文件。

Single pass模式编码较简单,编码速度较快,但是最终质量不如Two pass模式好,对于直播系统源码视频源本身画质就不佳的编码过程可以采用。Two pass通过第一次运算的信息采集,可以让需要高码率的运动画面可以分配更的码率来保证画面质量。而对于不包含太多运动信息的静态画面,则可以消减分配的码率。Twopass模式可以在影片容量与画面质量之间找到最佳平衡点。所以要求画面清晰的视频,肯定要选择Two Pass,只是编码速度惨不忍睹。

  • 封装格式:直播系统源码多媒体封装格式也称多媒体容器 (Multimedia Container),它不同于H.264、
    AAC这类编码格式,它只是为多媒体编码提供了一个“外壳”,也就是所谓的视频格式。如MP4、AVI、MKV、FLV、WMV等。

  • 画面比例:Aspect
    Ratio,指直播系统源码视频画面宽和高的比例。常见的比例有16:9和4:3。电视媒体有严格的视频制式要求,视频比例和帧数都是固定的,而网络传播的视频比例则较为自由。一般DVD和BD电影的视频比例大多是宽屏或者超宽屏。在直播系统源码视频编码过程中一定要注意画面比例是否正确,不然就会出现画面拉伸变形。

  • 分辨率:指直播系统源码视频宽高的像素数值,单位为Px。通常视频分辨率的数值宽高比要等于画面比例,不然视频文件就会产生黑边。标准1080P的分辨率为1920×1080,帧率为60fps,也就是真高清。而最常见的网络传播的1080P高清片帧率通常为23.976fps。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值