手机游戏直播中的录屏怎么实现

直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用领域。手游直播就是现在常见的一种新兴应用场景。手游直播与一般直播最大的不同点,同时也是它的技术难点,在于录屏技术。游戏玩家录屏功能,实时地把自己玩游戏的场景分享展示给其他观众。录屏给很多游戏制作平台和直播内容平台提供了一种新的产品思路。

录屏实现的四个步骤:

  • 01

    采集:获取屏幕采集的视频数据、麦克风采集的音频数据、游戏内置的音频数据。

  • 02

    处理:转化成可以推流的标准格式,防止推出的流有问题。

  • 03

    编码:处理好硬编支持,节省终端的性能开销

  • 04

    封包、推流:和普通的直播方式一样处理。

  • 05

    从以上的录屏步骤来看,录屏直播和普通直播的采集源发生了变化。而真正实现录屏直播功能,则需要我们获取到数据,处理成能更稳定编码、推流的格式,最后才能稳定高质量地推出视频流。

iOS 的录屏思路简述

  • 01

    ReplayKit ReplayKit 是苹果 iOS 10 以上版本提供的用于录屏并对外直播的功能。简单而言就是苹果通过这个功能把采集到的屏幕视频信息和音频信息回调给开发者,开发者可以任意处理这些信息。 但是问题是,ReplayKit 使用上限制较多,首先要求系统必须为 iOS 10 以上;其次,被录屏的 App 必须支持 ReplayKit 功能。这也很容易理解,毕竟录屏是比较敏感的行为。所以必须游戏本身支持,以表示被录制方已经同意录屏。 熊猫 TV 作为国内首家支持 ReplayKit Live 的直播平台,开创了直播行业的先河。熊猫 TV iOS 上的录屏方案采用七牛提供的 ReplayKit 方案实现。

  • 02

    Airplay Mirroring Airplay Mirroring 是苹果用于屏幕投影的功能,投屏的原理就是把设备的屏幕数据和音频数据通过 Airplay Mirroring 协议传输给第三方的支持该协议的显示播放设备。但 Airplay Mirroring 是苹果的私有协议,传输过程中音视频数据都是被苹果加密的,不对第三方开放。因此要想获得这些数据,只能通过破解协议的方式来达成。

  • 03

    优缺点分析:

Android 的录屏思路简述

  • 01

    View.getDrawingCache() 方法 通过 View 的 cache 内容获取到 Bitmap 对象来达到录屏的效果。但是很多手机上面该方式会存在性能问题,另外该方式并不是一个真正意义上的录屏方式,另外部分 View 组件的内容并不能获取到,比如 webview 。

  • 02

    读取 /dev/graphics/fb0 方法 Android 基于 Linux,所以可以通过读取 fb0 设备节点,即 framebuffer 中的帧数据来实现屏幕的录制。但是读取这个设备节点需要 root 权限。

  • 03

    screencap -p xxx.png/screenshot xxx.png 方法 screencap 是 Android shell 的命令,可以通过该 shell 命令读取到屏幕的帧数据来达到录屏的功能。但该命令仍然需要 root 权限。

  • 04

    MediaProjection + VirtualDisplay (>= 5.0) 方法 在 Android 5.0 以后,Google 开放了截屏的接口,可以通过「虚拟屏幕」来实现录屏。该方式是目前 PLDroidMediaStreaming 采用的方式。

七牛 iOS ReplayKit 的录屏方案

  • 01

    1. 游戏端自己要实现 ReplayKit 被录制端的协议;

  • 02

    2. 录制平台集成最新版本的七牛直播 SDK ;

  • 03

    3. 录制平台创建 Broadcast Upload Extension,让支持 ReplayKit 的游戏可以被录制;

  • 04

    4. 添加推流管理类,拿到 ReplayKit 数据后推流出去。

  • 05

    iOS ReplayKit 录屏方案 demo

七牛 Android 的录屏方案

  • 01

    1. 更新最新版本的七牛直播 SDK ;

  • 02

    2. AndroidManifest.xml 注册 ; <activity android:name="com.qiniu.pili.droid.streaming.screen.ScreenCaptureRequestActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" > </activity>

  • 03

    3. 使用七牛提供的核心类 ScreenStreamingManager 、ScreenStreamingManager 封装屏幕的录制、音频的采集,编码,封包和推流操作。用户只需要简单的调用相关 API 即可实现录屏推流。

  • 04

    在当你想在自己的产品中加入录屏直播功能,那么需要考虑清楚到底是自研还是使用三方的 SDK。如果采取自研方案,那么可以参考以上的录屏思路,你还需要仔细了解系统平台的 API 介绍。如果采用第三方 SDK 则可以较快集成,但需要了解 SDK 稳定性和易用性,且仔细阅读 SDK 的使用细则。

(0)

相关推荐

  • 如何在腾讯会议直播中进行录屏

    现在我们很多人都在使用腾讯会议进行直播上课,想要进行录屏该怎么操作呢?今天就跟大家介绍一下如何在腾讯会议直播中进行录屏的具体操作步骤.1. 如图,进入腾讯会议的直播页面,在页面底部点击"共享 ...

  • 如何在华为手机中进行录屏操作?

    相信很多小伙伴都有在使用华为手机,在其中如何才能进行录屏操作呢?方法很简单,下面小编就来为大家介绍.具体如下:1. 首先,将手机桌面整体向下滑动,直至出现下图所示菜单:2. 点击上面右边的第一个标志, ...

  • 如何在小米6手机中开启录屏功能

    随着科技的发展,手机已经成为人们日常生活中必不可少的工具,当我们在使用手机时,有的时候可能会需要对屏幕进行录制,那么该如何进行录屏呢?接下来就由小编来告诉大家如何操作.具体如下:1. 第一步,打开手机 ...

  • 如何打开华为nova2s手机中的录屏功能

    现如今,手机已经融入了人们的生活,当我们在使用华为nova2s的时候,如果想要录制屏幕的话,应如何调出录屏功能呢?接下来就由小编来告诉大家.具体如下:1. 1.第一步,打开手机后,向下滑动手机屏幕,打 ...

  • 如何在小米手机中进行录屏

    小米手机是一款为广大消费者所喜爱的手机品牌,它颜值高,性能高,是值得选购的手机.很多用户不知道怎么在小米手机中进行录屏,小编今天就来为您解答这个问题.具体如下:1. 首先,请大家打开自己的手机,然后下 ...

  • 如何在iphone手机中开启录屏功能

    有的小伙伴在使用iPhone苹果手机时,发现别人的手机都可以录屏,自己的手机却不知道如何录屏,小编想要在这儿给大家说个好消息,iOS11系统后的系统都可以录屏了,那么如何开启录屏功能呢?小编就来为大家 ...

  • 苹果iPhone手机中的录屏功能如何添加到控制中心

    今天给大家介绍一下苹果iPhone手机中的录屏功能如何添加到控制中心的具体操作步骤.1. 解锁手机后,找到桌面上的设置图标,打开2. 在打开的设置页面,向上滑动屏幕,找到"控制中心" ...

  • 如何在苹果iPhone手机中给录屏视频加上手机壳

    我们在使用iPhone手机录屏之后,可以使用软件,给录屏的视频添加手机壳效果,今天就跟大家介绍一下如何在苹果iPhone手机中给录屏视频加上手机壳的具体操作步骤.1. 首先我们需要在手机上安装reco ...

  • 如何打开vivo手机中的录屏勿扰功能

    有的小伙伴在使用vivo手机录屏时,为了防止消息提示或者弹窗影响了录屏,因此想要打开录屏勿扰功能,但是却不知道如何打开,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并打开设置应用.2.第 ...