WebRTC 的音视频开发过程是怎样的?

shanewfx

共 803字,需浏览 2分钟

 ·

2022-02-09 17:35

目前最简单的WebRTC音视频应用开发,应该是基于浏览器内核提供的JS API直接进行Web应用开发,相关的WebRTC JS API的Demo可以参考:WebRTC samples

这种开发基本的音视频应用问题不大,但也存在不少限制,如无法直接接入RTSP流的网络摄像机,无法本地进行多路画面的合成和推流等特殊定制功能。

基于开源的WebRTC,则可以基于WebRTC C++ Native API进行开发,这样可以进行很多定制功能的开发(例如,启用GPU硬件加速的视频编解码、多路画面拼接合成后再使用WebRTC推流、使用RTSP流作为WebRTC推流的视频源,通过WebRTC推流共享视频文件,共享指定应用窗口,本地视频录制,使用外部的音频处理算法等),其实完全可以基于WebRTC开发一款自己的音视频引擎,以满足产品的定制化功能需求。

当然,真正的音视频产品,除了客户端,基本离不开流媒体服务器,目前可以配合WebRTC客户端的开源WebRTC服务器也挺多的了,我比较推荐SRS 4.0,使用起来比较方便,支持WebRTC、RTMP协议推流,支持WebRTC、RTMP、HLS、HTTP FLV拉流,也支持推流到CDN和服务器录制等,开发可以参考:shanewfx:基于WebRTC Native API实现SRS4.0客户端

但SRS 4.0是一个SFU类型的流媒体服务器,如果需要在服务器上进行多路视频流的合流、混音等功能,需要选择MCU类型的流媒体服务器,目前推荐Intel开源的OWT Server(基于licode开发,业务部分使用nodejs开发,媒体处理使用C++开发,封装为node模块供nodejs调用),其也有配套的WebRTC客户端SDK可以使用。

但MCU对服务器的硬件配置要求还是比较高的,真正产品化应该需要硬件加速支持,目前Intel提供了VCA板卡可以支持,但成本应该比较高些。

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报