直播开源推拉流SDK1.0版本已经发布有段时间了,期间受到了广泛的关注。随着新技术新场景的不断涌现,1.0版本已经略显简单,不能够更好的满足大家的需求,所以2021年下半年我们着手开始整理需求,从而开始了2.0的开源之路。
新版本2.0增加了很多新的功能,还有对老版本的优化,下面我们详细的来介绍一下:
1.WebRTC的推拉流
相比于1.0是精简了WebRTC的库,这个版本我们把整个完全功能的WebRTC包含进来,这样更方便用户使用。
RTC(Real time communication)实时通信,是实时音视频的一个简称,我们常说的RTC技术一般指的是WebRTC技术,已经被 W3C 和 IETF 发布为正式标准。由于几乎所有主流浏览器都支持 WebRTC 标准 API ,因此也让浏览器之间无插件化的音视频互通成为可能, 大大降低了音视频开发的门槛,开发者只需要调用 WebRTC API 即可快速构建出音视频应用。
直播中我们关心的几个点:延迟 、质量 、成本 等。
传统rtmp直播痛点:TCP,延迟高、拥塞导致卡顿问题较多(质量问题)。
互联网网络复杂、延时敏感、实时音视频流畅度及清晰度较低以和运营成本较高等。
没有一项技术能兼顾并解决直播中的所有问题,RTC是时延、流畅、质量、成本等的平衡,成为技术选型落地的模型。
相对来说RTC包含的技术也是更加的复杂,如下图所示:
2.美颜滤镜
在1.0的时候很多小伙伴说需要美颜功能,或者自己怎么实现美颜。新版本里我们在Android和iOS上都自带了一个基础美颜的库,这样大家可以在此基础上实现更多美颜的功能和玩法。
3.更多的协议支持
除此之外,其他的一些播放格式也都可以支持,因为我们这次开源的内核中包含了FFMpeg,可以做一个超级播放器使用。
4.自采集/自渲染
自定义视频采集
如果您自研(或者购买第三方)美颜和特效处理模块,则需要自己采集和处理摄像头拍摄画面,您可以通过 调用的 enableCustomVideoCapture 接口关闭库自己的摄像头采集和图像处理逻辑。然后您可以使用 sendCustomVideoData 接口向库填充您自己的视频数据。
自定义视频渲染
使用 OpenGL 进行视频画面的渲染,如果您是用在游戏开发中,或者需要在自己的界面引擎中嵌入库,那么就要自己渲染视频画面。
自定义音频采集
如果您是在特殊硬件设备上使用 ,当需要外接声音采集设备并自己采集声音数据时,您可以通过 调用 enableCustomAudioCapture 接口关闭库默认的声音采集流程。然后您可以使用 sendCustomAudioData 接口向库填充您自己的声音数据。
获取音频原数据
声音模块是一个高复杂度的模块,SDK 需要严格控制声音设备的采集和播放逻辑。在某些场景下,当您需要获取远程用户的音频数据或者需要获取本地麦克风采集到的音频数据时,可以通过库提供的相应的回调接口来实现。
5.屏幕共享
随着音视频的迅速发展,无论是在商用还是娱乐方面都有很多场景的实际应用,玩法也是越来越多了,随之而来的就是对衍生功能要求的提高。屏幕共享都是对于商用和娱乐场景最重要的功能之一。开源的新版本也同样支持这一功能。
常用的应用场景:
在线教育:
适用于大班课、小班课等多种教育场景,老师端可以通过屏幕共享将上课需要的课件,资料共享给学生,让教学变得更加高效,提高效率节省时间。
游戏直播:
游戏主播可以通过实时采集屏幕内容,以直播的方式共享给所有观众,让观众能够以主播同样的视角体验游戏。这样可以提高用户的观看体验,让用户可以有身临其境的感觉。使得用户观看的代入感更强,增加用户的粘性。
视频会议:
主持人可将电脑上的材料共享给远端的与会方,所有人观看屏幕的实时视频流,达到信息共享的目的。主持人不必再提起分发文档,因为参与者可以在演示者的屏幕上看到任何文档或文件,甚至可以要求会议者通过屏幕共享工具的传输功能发送这些文档和文件。
远程演示:
在进行远程协作或操作演示时,可以通过采集屏幕和窗口的内容,直观演示具体操作步骤,帮助他人快速理解。屏幕共享允许的在线演示是组织与客户和客户互动的完美方法。借助屏幕共享应用程序,不仅销售人员可以展示他们的产品,而且他们还可以通过提供PC键盘或鼠标的远程控制来邀请客户体验软件程序等项目。这是屏幕共享工具的最佳好处之一。
在线培训:
通过在线培训中使用屏幕共享工具,组织可以节省大量资金,因为他们不必设置整个投影仪设置并为外部讲座付费。相反,讲师的材料可以通过屏幕共享应用程序从他们的PC屏幕轻松共享,供所有与会者查看。讲师甚至可以使用这样的屏幕共享功能作为白板或参与者指针来与学员互动,从而形成交互式和娱乐性的学习环境。
6.更多玩法
新版本增加非常多的功能,这样就能够实现更复杂的应用场景,比如:使用SEI消息实现在线同步答题;使用RTC推拉流实现语音聊天室,在线KTV,狼人杀;使用RTMP+RTC实现在线互动连麦直播场景,比如电商直播;使用播放器组件实现抖音、快手短视频等等应用场景。
最后期待大家体验新版本,给我们多多提意见和建议。
体验地址:
https://github.com/anyrtcIO-Community/anyRTC-RTMP-OpenSource