咱们为很多实时互动场景提供了服务。在一些场景中,用户不仅须要实时互动,还须要把互动的过程录下来。那么一个好的录制解决方案到底须要具备哪些特色呢?
在答复这个问题之前,先聊一下客户应用录制的起因。一般来讲,用户应用录制性能的起因次要有三种:
1. 质检。 比方在教育场景下,须要通过回放录制来查看课程品质,在社交直播或金融双录场景下,须要保留录制视频,做合规性审查。
2. 留证。 如教育、医疗、音视频客服等场景,需存档留证以应答可能的纠纷。这种场景下,对录制计划的外围诉求是内容完整性,不能容忍哪怕是秒级的视频丢录。
3. 回放。 比方在教育场景、直播场景下,用户心愿观看回放。这也是大多数实时互动场景里应用录制的次要起因。
那么在这种场景下,怎么才算是一个好的录制解决方案呢?
能够从五个维度来掂量录制计划:
- 录制成果 :须要还原实在的互动场景,包含音视频、课件、白板、聊天信息等所有元素。同时,不能对主播音视频互动体验造成任何负面影响。
- 集成难度 :越简略越好,最好是不须要开发。
- 期待时长 :期待时长越短越好,最好是录制完结后能够立刻回放。
- 文件兼容性 :任何平台、任意浏览器都能够播放。
- 文件迁徙的便利性 :文件下载、上传等迁徙过程要非常简单,便于录制文件治理。
为了解决各种场景的录制需要,目前有两种比拟支流的计划。
一、音视频、白板等元素别离录制,而后拼接回放
次要思路是将音视频、白板、课件、PPT、聊天内容等别离录制下来,录制完结后再别离回放,并通过工夫戳对齐播放进度。这种计划的益处是,白板、课件、聊天内容等均以数据模式回放,能够保留原有的实在互动成果,例如 PPT 能够独自翻页,灵活性较好。但其毛病也非常明显:
1. 集成难度大。 须要同时开发音视频录制、白板录制、聊天内容的录制,特地是各不同元素须要通过工夫戳对齐回放,要做到十分好的同步成果需投入较多开发精力。
2. 播放兼容性受限。 这种形式只能通过非凡播放器来回放,无奈很好地兼容支流播放器。
3. 等待时间长。 为了解决播放兼容性问题,往往须要在录制完结后进行离线解决,转成一个残缺的 MP4 文件,这个过程等待时间较长,还会带来额定的转码老本。
二、本地客户端录屏
不论是本地客户端录制,还是通过屏幕共享将屏幕流发送到云端进行录制,其本质都是在用户的本地客户端上捕捉屏幕内容。这种计划的益处是所见即所得,回放成果跟实在互动场景能够保持一致。但其毛病也是相当显著:
1. 影响本地用户的 RTC 互动体验。 本地捕捉屏幕内容会极大地耗费终端设备的计算资源,如果要实时上传,还会占用主播上行的带宽资源,这些都会影响本地用户的音视频通话体验甚至会呈现卡顿、含糊等重大的结果,这对一个实时互动场景来说是难以承受的致命缺点。
2. 集成难度大。 开发者须要在端上进行开发,须要解决文件本地存储、上传等问题,往往还须要解决简单的混音问题,集成门槛十分高。
除了以上两种支流思路,是否还有其余更好的计划呢?
声网 Agora 提出了第三种新思路:页面录制
页面录制是指通过 Web 页面渲染的形式, 在服务端同步录制音视频、白板、课件以及聊天信息等,还原实在的互动场景。其原理是:开发者通过 RESTful API 发动录制申请,并将待录制页面的 URL 以申请参数的模式发给 Agora 录制服务,Agora 录制服务会关上该 Web 页面,并以录屏的形式实时录制生成 MP4 文件,上传至指定的第三方云存储平台。具体 页面录制 文档,可点击「浏览原文」浏览。
依据此前录制计划判断维度,将页面录制与此前咱们列举的录制计划相比:
- 在集成上,通过 Restful API 发动申请录制,简略易用。
- 录制成果实现所见即所得的,将音视频、白板、课件以及聊天信息等内容全副同时录制下来,且不带来额定的带宽、性能开销,录制过程不影响任何主播 / 观众的 RTC 互动体验。
- 录制完结后,能够实时生成 MP4 文件,兼容各支流播放器。
- 文件下载非常简单,便于录制文件治理。
同时,页面录制具备录制任意网页页面的能力,所以用 WebRTC 或其它计划自研 RTC 性能的开发者同样能够应用。