1.直播的采集端(推流端)和播放端
直播的流程:
播放流程: 获取流–>解码–>播放
录制播放路程: 录制音频视频–>剪辑–>编码–>上传服务器 别人播放.
**直播过程 : **录制音视频–>编码–>流媒体传输–>服务器–>流媒体传输到其他app–>解码–>播放
如下图所示:
推流端:
拉流端:
2.音视频的采集
采集主要包括两个方面:视频采集和音频采集。
视频通过摄像头进行采集,这里面涉及到摄像头的相关操作以及摄像头的参数设置,由于各个手机厂商的摄像头存在差异,因此这方面有一些坑,之后的讲摄像头的文章中会一一讲述。音频通过麦克风进行采集,不同手机的麦克风对音频采样率的支持不同,而且有时候为了支持连麦功能需要对音频进行回声消除。
视频采集技术要点:
检测摄像头是否可以使用;
摄像头采集到的图像是横向的,需要对采集到的图像进行一定的旋转后再进行显示;
摄像头采集时有一系列的图像大小可以选择,当采集的图像大小和手机屏幕大小比例不一致时,需要进行特殊处理;
Android手机摄像头有一系列的状态,需要在正确的状态下才能对摄像头进行相应的操作;
Android手机摄像头的很多参数存在兼容性问题,需要较好地处理这些兼容性的问题。
音频采集技术要点:
检测麦克风是否可以使用;
需要检测手机对某个音频采样率的支持;
在一些情况下需要对音频进行回声消除处理;
音频采集时设置正确的缓冲区大小。
3.编码
3.1.视频编码
视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。
- 主要视频编码一览:
|名称|推出机构|推出时间|目前使用领域|
|:--|:--|:--|
| HEVC(H.265) | MPEG/ITU-T | 2013 |研发中|
| H.264 | MPEG/ITU-T | 2003 |各个领域|
| MPEG4 | MPEG | 2001 |不温不火|
| MPEG2 | MPEG | 1994 |不温不火|
| VP9 | Google | 2013 |研发中|
| VP8 | Google | 2008 |不普及|
| VC-1 | Microsoft Inc. | 2006 |微软平台|
不难看出,目前主流的视频编码便是H264。
3.2音频编码
音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。主要音频编码一览:
|名称|推出机构|推出时间|目前使用领域|
|:--|:--|:--|
| AAC | MPEG | 1997 |各个领域(新)|
| AC-3 | Dolby Inc. | 1992 |电影|
| MP3 | MPEG | 1993 |各个领域(旧)|
| WMA | Microsoft Inc. | 1999 |微软平台|
如今主流的音频编码是AAC。
4.封包
音视频经过编码后,就要进行所谓的封包,即封装,也就是音视频的容器。如果把视频比作货物,那封包也就是用来运输货物的容器。是将编码好的多媒体内容混合封装在一起的标准。
容器使得不同多媒体内容同步播放变得很简单,而容器的另一个作用就是为多媒体内容提供索引,也就是说如果没有容器存在的话一部影片你只能从一开始看到最后,不能拖动进度条,而且如果你不自己去手动另外载入音频就没有声音。
下面介绍几种常见的封装格式和优缺点:
1.AVI 格式(后缀为 .AVI):
它的英文全称为 Audio Video Interleaved ,即音频视频交错格式。它于 1992 年被 Microsoft 公司推出。
这种视频格式的优点是图像质量好。由于无损AVI可以保存 alpha 通道,经常被我们使用。缺点太多,体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本 Windows 媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本 Windows 媒体播放器又播放不了采用最新编码编辑的AVI格式视频,所以我们在进行一些AVI格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题。
2.DV-AVI 格式(后缀为 .AVI):
DV的英文全称是 Digital Video Format ,是由索尼、松下、JVC 等多家厂商联合提出的一种家用数字视频格式。
数字摄像机就是使用这种格式记录视频数据的。它可以通过电脑的 IEEE 1394 端口传输视频数据到电脑,也可以将电脑中编辑好的的视频数据回录到数码摄像机中。这种视频格式的文件扩展名也是 avi。电视台采用录像带记录模拟信号,通过 EDIUS 由IEEE 1394端口采集卡从录像带中采集出来的视频就是这种格式。
3.QuickTime File Format 格式(后缀为 .MOV):
美国Apple公司开发的一种视频格式,默认的播放器是苹果的QuickTime。
具有较高的压缩比率和较完美的视频清晰度等特点,并可以保存alpha通道。
4.MPEG 格式(文件后缀可以是 .MPG .MPEG .MPE .DAT .VOB .ASF .3GP .MP4等) :
它的英文全称为 Moving Picture Experts Group,即运动图像专家组格式,该专家组建于1988年,专门负责为 CD 建立视频和音频标准,而成员都是为视频、音频及系统领域的技术专家。
MPEG 文件格式是运动图像压缩算法的国际标准。MPEG 格式目前有三个压缩标准,分别是 MPEG-1、MPEG-2、和MPEG-4 。MPEG-1、MPEG-2 目前已经使用较少,着重介绍 MPEG-4,其制定于1998年,MPEG-4 是为了播放流式媒体的高质量视频而专门设计的,以求使用最少的数据获得最佳的图像质量。目前 MPEG-4 最有吸引力的地方在于它能够保存接近于DVD画质的小体积视频文件。
5.WMV 格式(后缀为.WMV .ASF):
它的英文全称为Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。
WMV格式的主要优点包括:本地或网络回放,丰富的流间关系以及扩展性等。WMV 格式需要在网站上播放,需要安装 Windows Media Player( 简称 WMP ),很不方便,现在已经几乎没有网站采用了。
6.Real Video 格式(后缀为 .RM .RMVB):
Real Networks 公司所制定的音频视频压缩规范称为Real Media。
用户可以使用 RealPlayer 根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。RMVB 格式:这是一种由RM视频格式升级延伸出的新视频格式,当然性能上有很大的提升。RMVB 视频也是有着较明显的优势,一部大小为700MB左右的 DVD 影片,如果将其转录成同样品质的 RMVB 格式,其个头最多也就 400MB 左右。大家可能注意到了,以前在网络上下载电影和视频的时候,经常接触到 RMVB 格式,但是随着时代的发展这种格式被越来越多的更优秀的格式替代,著名的人人影视字幕组在2013年已经宣布不再压制 RMVB 格式视频。
7.Flash Video 格式(后缀为 .FLV):
由 Adobe Flash 延伸出来的的一种流行网络视频封装格式。随着视频网站的丰富,这个格式已经非常普及。
8.Matroska 格式(后缀为 .MKV):
是一种新的多媒体封装格式,这个封装格式可把多种不同编码的视频及16条或以上不同格式的音频和语言不同的字幕封装到一个 Matroska Media 档内。它也是其中一种开放源代码的多媒体封装格式。Matroska 同时还可以提供非常好的交互功能,而且比 MPEG 的方便、强大。
9.MPEG2-TS 格式 (后缀为 .ts)(Transport Stream“传输流”;又称MTS、TS)
是一种传输和存储包含音效、视频与通信协议各种数据的标准格式,用于数字电视广播系统,如DVB、ATSC、IPTV等等。
MPEG2-TS 定义于 MPEG-2 第一部分,系统(即原来之ISO/IEC标准13818-1或ITU-T Rec. H.222.0)。
Media Player Classic、VLC 多媒体播放器等软件可以直接播放MPEG-TS文件。
目前,我们在流媒体传输,尤其是直播中主要采用的就是 FLV 和 MPEG2-TS 格式,分别用于 RTMP/HTTP-FLV 和 HLS 协议。
5.推流和传输
此处不作论述。推荐几篇关于直播的系列文章。
(本文纯为帮助自己理解和记忆有关直播的基本概念)
http://www.jianshu.com/nb/5638906
参考:
视频直播技术详解
Android手机直播(一)总览
Android音视频开发
直播平台的学习与研究