[直播一揽子]初期调研
这几天在调研直播的技术。虽然现在有很多“开源”的SDK,或者各个厂家的SDK。但是还是想自己去调研一下整个的直播流程/技术,并且通过代码去实现一套这样的功能。 整体规划: 看网上的文章介绍,基本上的流程是这样的:采集,编码,发送,转发,解码。我这次主要研究一下采集,编码,发送这三个客户端采集的步骤。 采集设备:Android手机摄像头采集视频,麦克风采集音频。 编码格式:音频:aac,视频:h264。 发送协议:rtmp协议。 采集方法: 摄像头采集视频的方法有两种:Camera的onPreviewFrame的回调方法,和MediaRecorder的outPut方法。经过对比,发现各有各的优缺点: Camera的onPreviewFrame方法: 优点: 可以获取到视频的原始YUV数据。 使用简单:直接设置一个回调方法就能够获取到预览时的视频数据。 缺点: 需要自己将YUV数据编码为h264格式,对编码需要一定的了解。 MediaRecorder的outPut方法: 优点: 可以直接获取到编码后的h264格式的视频帧数据。 缺点: 获取部分的代码比较麻烦:需要在程序内部架设socket服务来获取h264视频数据。 在各有优缺点的情况下,通过对比其他现有的直播SDK的功能,最终采用了Camera的onPreviewFrame的方法。众所周知,美颜功能已经是目前直播的主要功能点之一