我们为众多实时交互场景提供服务。在某些场景下,用户不仅需要实时交互,还需要记录交互过程。那么好的录音方案有哪些特点呢?在回答这个问题之前,先说说客户为什么要用录音。一般来说,用户使用录音功能的原因主要有以下三个:1.质量检验。例如,在教育场景中,需要通过回放录像来检查课程质量,在社交直播或金融双录场景中,需要保留录制的视频以供合规审查。2.留证。教育、医疗、音视频客服等场景,需要备案留证,以应对可能出现的纠纷。在这种场景下,录制方案的核心需求是内容完整性,甚至不能容忍秒级的视频丢失。3.回放。比如教育场景、直播场景,用户想要看回放。这是在大多数实时交互场景中使用录音的主要原因。那么在这种场景下,什么是好的录音方案呢?录音方案可以从五个维度来衡量:录音效果:需要还原真实的交互场景,包括音视频、课件、白板、聊天信息等所有元素。同时,不能对主播的音视频互动体验造成任何负面影响。集成难度:越简单越好,最好不要开发。等待时间:等待时间越短越好,最好在录制结束后立即回放。文件兼容性:任何平台,任何浏览器均可播放。文件迁移的便捷性:文件下载上传等迁移过程应该非常简单,便于录音文件管理。为了解决各种场景的录制需求,目前主流的解决方案有两种。1、音频、视频、白板等元素分别录制,然后拼接回放。主要思路是分别录制音视频、白板、课件、PPT、聊天内容等,录制完成后分别播放,播放进度与时间戳对齐。该方案的优势在于白板、课件、聊天内容等都以数据的形式进行回放,可以保留原汁原味的真实交互效果。比如PPT可以独立翻,更加灵活。但它的缺点也很明显:1.难以集成。需要同时开发音视频录制、白板录制、聊天内容录制。特别地,不同的元素需要通过时间戳对齐来回放。要达到非常好的同步效果,需要付出很大的开发努力。2.播放兼容性有限。这种方式只能通过专用播放器播放,不能很好的兼容主流播放器。3.等待时间长。为了解决播放兼容性问题,往往需要在录制完成后进行离线处理,将其转换成完整的MP4文件。这个过程需要等待很长时间,并且会带来额外的转码成本。2、本地客户端录屏无论是本地客户端录屏,还是通过屏幕共享将屏幕流发送到云端进行录屏,本质都是在用户本地客户端截取屏幕内容。该方案的优点是所见即所得,播放效果可以与真实的交互场景保持一致。但是它的缺点也比较明显:1.影响本地用户的RTC交互体验。在本地截取屏幕内容会极大地消耗终端设备的计算资源。如果是实时上传,也会占用主播的上行带宽资源。这些都会影响本地用户的音视频通话体验,甚至会造成卡顿、模糊等严重后果,这对于实时交互场景来说是无法接受的致命缺陷。2.整合困难。开发者需要在端开发,需要解决文件的本地存储和上传等问题,经常需要处理复杂的混音问题,集成门槛很高。除了以上两种主流思路,还有没有其他更好的方案呢?Agora提出第三个新思路:页面录制页面录制是指通过网页渲染的方式,在服务器端同步录制音视频、白板、课件、聊天信息,还原真实的交互场景。原理是:开发者通过RESTfulAPI发起录制请求,将需要录制的页面URL以请求参数的形式发送给Agora录制服务。声网录制服务会打开网页,实时录制画面生成一个MP4文件上传到指定的第三方云存储平台。具体页面记录文档,可以点击“阅读原文”进行浏览。根据之前记录方案的维度,将页面记录和之前我们列举的记录方案进行对比:在集成方面,通过RestfulAPI发起请求记录,简单易用。录制效果实现所见即所得。音视频、白板、课件和聊天信息全部同时记录,无需额外的带宽和性能开销。录制过程不影响任何主播/观众的RTC交互体验。录制完成后,可实时生成MP4文件,兼容所有主流播放器。文件下载非常简单,便于录音文件管理。同时,页面录制具有录制任意网页的能力,所以使用WebRTC或者其他方案开发RTC功能的开发者也可以使用。
