WebRTC → WebRTC与直播相关原理

发布于 2023-05-03 | 作者: 【零声教育】音视频开发进阶 | 来源: CSDN博客 | 转载于: CSDN博客

1、前置知识

1.1 前世今生

在线教育、在线会议、在线面试、在线社交、在线医疗、金融证券在线开户、智能家居都已经非常普及了,将常见的线下场景转至线上,而WebRTC就是实现这些场景的主要手段;

WebRTC的使命是使丰富、高质量的RTC应用程序可以为浏览器、移动平台和loT设备开发,并允许所有人通过一组通用的协议进行通信

1.2 WebRTC解决的问题(主要相对于RTC)

1.3 WebRTC的安全问题

所有WebRTC媒体数据都必须经过加密

WebRTC不是一个插件,也不依赖于任何插件,因此所有应用都可以在浏览器的沙箱中运行,并不用再额外创建新进程,正因为如此,WebRTC有效的阻止了恶意软件进入用户系统

可以说如果 WebRTC 直接拿过来商用的话,几乎是不太可能的,当下普遍的解决方案是自研,根据自身的业务场景进行二次定制开发,或者更简单一点使用第三方 SDK。Agora WebSDK 是基于 WebRTC 封装的API集合,极致简单,对开发者更加友好,能十行之内完成一个简单的 demo 并上线;

2、即时通信(IM)和实时通信(RTC)

2.1 简介

即时通信(IM)和实时通信(声网Agora.io)都是一套网络通信系统,其本质都是对信息进行转发,其最大的特点就是对信息传递的时间规定

2.1.1 场景与需求点分析

2.2 相关技术、协议和解决方案

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发

【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

3、WebRTC基本概念

4、相关工作原理

4.1 H.265在Web端的硬解支持

在旧版的Web端浏览器是不支持H.265的,但是其需求是一直存在,另一种解决方式是通过软解的方式进行播放,但是软解的方式对性能的损耗是比较严重的,因此一般都不支持H.265格式的编码;

在22年9月,Chrome发布了M106版本,默认开启H.265硬解,使得实时预览支持H.265硬解具备可行性; 但是WebRTC本身支持的视频编码格式仅包括VP8、VP9、H.264、AV1,并不支持H.265,短期内也没有计划去支持H.265,因此需要自研实现WebRTC变相支持H.265编码,具体方式有

4.2 信令服务器工作原理

为了高效的利用CPU,信令服务器采用了事件驱动的工作模式;即当没有网络事件(网络请求)时,空闲出来的CPU可以处理其他任务;当有网络事件时,可以及时响应网络事件

5、直播协议和视频监控方案

5.1 WebRTC(RTP)、FLV(RTMP)和HLS协议 → 不同类型的视频流协议

5.1.1 视频流协议

视频流协议是一组规则,用于管理视频数据如何从一个点传输到另一个点;有助于确保数据完好无损并以正确的顺序到达

5.1.2 比较WebRTC和HLS协议

	<video<source id="source" src="http://xxxx/video.m3u8" type="application/x-mpegURL" /></video>
	

5.2 监控方案

安防类项目中都需要有视频监控方案的需求,视频监控客户端主要是Native应用的形式,在Web端需要利用NPAPI、ActiveX之类的插件技术实现

5.2.1 B/S架构实时视频监控解决方案

6、推荐文献

声网-音视频

全民K歌推流直播Web实践

H5直播调研

原文链接:WebRTC → WebRTC与直播相关原理 - 掘金