视频直播技术之移动端实现录屏推流的方案
一、录屏推流实现的步骤 1. 采集数据 主要是采集屏幕获得视频数据,采集麦克风获得音频数据,如果可以实现的话,我们还可以采集一些应用内置的音频数据。 2. 数据格式转换 主要是将获取到的视频和音频转换成常见的推流的标准格式,这样能保证让观看终端正常观看。 3. 编码处理 如果不进行编码的话,数据量会非常大,这样不仅浪费带宽,而且会浪费观看终端的性能,所以需要对音视频数据进行编码处理。 4. 封包 & 推流 这块的逻辑可以采用和普通的直播方式进行封装和推流。 总结:其实录屏推流直播和普通的直播的区别就是采集源发生了变化,而在技术层面来将真正需要我们做的事情就是将录屏获取到的数据处理成稳定的编码格式。 二、 Android 实现录屏功能的思路 Android 实现录制屏幕的功能的技术方案现阶段主要为以下两种: 1 、 Android5.0 以下,获取 root 权限使用 adb shell screenrecord 命令功能进行录制。 2 、 Android5.0 以上,使用系统 Api 功能: MediaProjection 和 VirtualDisplay 。 目前的主流实现和使用的思路为: MediaProjection + VirtualDisplay 方法。 这两种方式其实在底层的实现机制是一样的,因为在 5.0 之前, Google 可能介于录制屏幕功能具有一定的危险性