WebRTC技术文档 -- 1.音视频直播(笔记)

这篇具有很好参考价值的文章主要介绍了WebRTC技术文档 -- 1.音视频直播(笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

1.1 两条技术路线

1.1.1 以音视频会议为代表的实时互动直播

互动直播主要解决音视频远程交流问题,实时性较强,时延一般低于500ms。

1.1.2 以娱乐直播为代表的流媒体分发

娱乐直播主要解决音视频大规模分发问题,实时性较差,时延一般在3s以上。

1.2 直播技术

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

WebRTC用于实时互动直播,RTMP、HTTP-FLV、HLS、DASH用于娱乐直播。

1.3 现状与未来

1.3.1 现状

实时互动直播与娱乐直播技术相结合成为现在直播服务器的主流技术方案。

WebRTC不仅可以用在浏览器之间进行音视频互动,还可以用在P2P传输、文本聊天、文本传输、游戏、多人实时互动、音频处理(回音消除、降噪)等应用中,甚至是人工智能软件上。

在一些实验产品中,可以使用RTMP推流,然后在浏览器上使用WebRTC技术拉流观看,这种技术对于视频监控行业是个不错的解决方案。

1.3.2 未来

可以利用AI、深度学习技术对音视频数据做二次处理,将这些非结构化数据转变成结构化数据(存入数据库或保存成格式化文件),再利用大数据技术分析生成各种报表,为业务提供支持和服务。

将AI和大数据分析速度提升到实时处理级别,让产品可以根据视频中用户的面部表情、行为举止实时改变服务内容。

1.4 自研直播架构

1.4.1 客户端架构

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

音频采集PCM数据,视频采集YUV数据。

音频有独立的采集设备(麦克风/话筒)、独立的播放设备(扬声器)、访问音频设备的系统API、多种音频编解码器(如Opus、AAC、iLBC、G.711/G.722、Speex)等。

视频也有自己的采集设备(摄像头)、渲染设备(显示器)、各种视频编解码器(如H264、VP8、H265、VP9、AVI)等。

在音视频处理中,一般称每一路的音频/视频为一条轨。

1.4.2 跨平台架构

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

1.4.3 插件化管理

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

1.4.4 其他问题

1)音视频不同步:增加音视频同步模块。

2)3A:AEC(Acoustic Echo Cancelling,回音消除)、AGC(Automatic Gain Control,自动增益控制)、ANC(Active Noise Control,降噪)。

3)音视频的实时性:网络质量很关键,物理层很难保障,需要在软件层加以控制。

4)网络拥塞、丢包、延时、抖动、混音等。

1.4.5 自研系统与WebRTC比较

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

1.5 音视频实时通信目标

目标:尽可能逼近或达到面对面交流的效果。

两种指标:实时通信延迟指标和音视频服务质量指标。

1.5.1 实时通信延迟指标

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

端到端之间,引起延迟的因素有:音视频采集时间、编解码时间、网络传输时间、音视频的渲染时间、各种缓冲区所用的时间等。

1.5.2 视频相关概念

1)分辨率:指图像占用屏幕上像素的多少。对实时通信而言,图像默认分辨率一般设置为640*480或640*360。

2)帧率:指视频每秒放帧(图像)的数量。对实时通信而言,当帧率小于15帧/秒时,会感觉视频质量不佳,卡顿严重。

3)码率:指视频压缩后,每秒数据流的大小。相同分辨率下,码率越大(MOS <= 5)还原度越好,图像越清晰。

1.5.3 影响网络质量因素

1)丢包:网络质量最重要的指标,对网络影响最大。对WebRTC而言,大于2%且小于10%的丢包率是正常的网络。

2)延迟:也是网络质量的重要指标。如果两端之间延迟持续增加,说明网络线路很可能发生了拥塞。

3)抖动:对网络质量影响最小。如果抖动很小,通过循环队列将其消除;如果抖动过大,将乱序包当作丢包处理。在WebRTC中,抖动时长不能超过10秒,超过10秒就认为该包丢了。

1.5.4 提高音视频服务质量

WebRTC技术文档 -- 1.音视频直播(笔记),读书笔记,webrtc,音视频

1)增加带宽

① 5G落地:全面覆盖。

② 客户端WebRTC支持选路方案:按优先级选择最优质的的网络连接线路。

③ 服务端方案:提供更优质的接入服务(让用户连接同一地区、同一运营商的接入服务器),保证云端网络的带宽和质量(可以购买优质的BGP网络作为云内部使用),更合理的路由调度策略(选择距离最近、网络质量最好、服务器负载最小的线路)。

2)减少数据量

减少音视频数据量是以牺牲音视频服务质量为代价。

① 更好的压缩算法:H265压缩率比H264提高了25%左右,AVI在veryslow模式下压缩率比H264提高了40%左右。

② SVC技术:将视频按时间、空间及质量分成多层编码,将它们装在一路流中发给服务端。服务端再根据用户带宽情况选择不同的层下发。

③ Simulcast技术:与SVC技术类似,实现比SVC简单。将视频编码出多种不同分辨率的多路码流发给服务器,服务器根据用户带宽情况选择其中一路最合适的码流下发。

④ 动态码率:当评估出用户带宽不够时通过编译器让其减小输出码率;当评估出带宽增大时增大输出码率。

⑤ 甩帧或减少业务:甩帧或关闭某些不重要的业务。

3)适当增加时延

增加时延,即先将数据放到队列中缓冲一下,然后再从队列中获取数据进行处理,使数据变得"平滑"。

实时音视频直播须将时延控制在一定范围内(单向延迟小于500ms)。

音视频的采集、编解码、渲染等时间是固定的,可以将网络时延计算出来,就可以确定缓冲区的时延。

4)提高网络质量

① NACK/RTX :NACK是RTCP中的一种消息类型,由接收端向发送端报告一段时间内有哪些包丢失了;RTX是指发送端重传丢失包,并使用新的SSRC将传输的音视频包与重传包进行区分。

② FEC前向纠错:使用异或操作传输数据,以便在丢包时通过这种机制恢复丢失的包。FEC特别适合随机少量丢包的场景。

③ JitterBuffer防抖动:可以将抖动较小的乱序包恢复成有序包。

④ NetEQ:专用于音频控制,里面包括了JitterBuffer,另外还利用音频的变速不变调机制将积攒的音频数据快速播放或将不足的音频拉长播放,以实现音频的防抖动。

⑤ 拥塞控制:

WebRTC中拥塞控制算法:GCC(Google Congestion Control,Google拥塞控制)、BBR(Bottleneck Bandwidth and Round-trip propagation time,瓶颈带宽和往返传播时间)、PCC(Performance-oriented Congestion Control,基于性能的拥塞控制)

GCC根据实现分为:基于发送端的拥塞控制算法Transport-CC(Transport-wide Congestion Control,传输带宽拥塞控制),基于接收端的拥塞控制算法Goog-REMB(Google Receiver Estimated Maximum Bitrate)。

5)快速准确评估带宽

实时通信领域有四种常见的带宽评估方法:Goog-REMB、Goog-TCC、NADA、SCReAM。

NADA在准确性和及时性方面好于GCC,GCC在网络使用的公平性方面比NADA更具优势。在有丢包情况的网络下,NADA表现极差,无法与GCC相比。SCReAM在各方面的表现都有失水准。文章来源地址https://www.toymoban.com/news/detail-834593.html

到了这里,关于WebRTC技术文档 -- 1.音视频直播(笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SRS OBS利用RTMP协议实现音视频推拉流;WebRTC 屏幕直播分享工具

    参考:https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started 1)docker直接运行SRS服务: 运行起来后可以http://localhost:8080/ 看到服务基本信息: 2) OBS 推流 在设置里设置直播地址: 然后回到首页点击开始直播 3)点击http://localhost:8080/ 可以网页查看流视频 SRS低延迟启动(暂时测试下来延迟

    2024年04月13日
    浏览(60)
  • 【音视频处理】RTMP、HLS、HTTP-FLV、WebRTC、RTSP的区别?直播协议详解

      大家好,欢迎来到停止重构的频道。 本期我们详细讨论 直播的相关协议 ,包括:HTTP-FLV、HLS、RTMP、Web-RTC、RTSP等等。 我们将会详细介绍这些协议的工作原理、应用场景、及延迟的原因。 我们按这样的顺序讨论​ 1、  RTMP、HTTP-FLV  2、  HLS  3、  Web-RTC  4、  RTSP  RTM

    2024年02月02日
    浏览(48)
  • 音视频直播核心技术

    采集: 是视频直播开始的第一个环节,用户可以通过不同的终端采集视频,比如 iOS、Android、Mac、Windows 等。 前处理: 主要就是美颜美型技术,以及还有加水印、模糊、去噪、滤镜等图像处理技术等等。 编码: 就是音视频数据的压缩,便于传输,一般有软编码和硬编码,软

    2024年01月20日
    浏览(54)
  • WebRTC音视频会议底层支撑技术

    WebRTC允许应用使用P2P通信。WebRTC是一个广泛的话题,在本文中,我们将重点讨以下问题。 为什么Web RTC 如此受欢迎? 在P2P连接过程中会发生什么 信号传递 NATs和ICE STUN TURN服务器 VP9视频编解码器 WebRTC APIs 安全 1.为什么Web RTC 如此受欢迎? 开放源代码 它为浏览器提供了端到端

    2024年02月11日
    浏览(59)
  • WebRTC音视频通话(二)简单音视频通话

    本篇不详细介绍websocket,只针对websocket整合rtc。 webrtc是P2P通信,也就是实际交流的 只有两个人 ,而要建立通信,这两个人需要 交换一些信息来保证通信安全 。而且, webrtc必须通过ssh加密 ,也就是使用https协议、wss协议。 借用一幅图 1.1 创建端点的解析 以下解析不包括we

    2023年04月09日
    浏览(62)
  • WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机

    WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机 在之前已经实现了WebRTC调用ossrs服务,实现直播视频通话功能。但是在使用过程中,RTCCameraVideoCapturer类提供的方法不能修改及调节相机的灯光等设置,那就需要自定义RTCVideoCapturer自行采集画面了。 iOS端WebRTC调用ossrs相关,实现

    2024年02月12日
    浏览(62)
  • WebRTC音视频原理

    WebRTC,网页即时通讯(Web Real-Time Communication),是直接在 Web 浏览器内驱动实时通信(语音、视频和任意数据)方法的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准,并于 2011 年标准化,是谷歌开源的一款产品。 WebRTC 实现了浏览器快速

    2023年04月08日
    浏览(73)
  • 【WebRTC】音视频通信

    WebRTC对等体还需要查找并交换本地和远程音频和视频媒体信息,例如分辨率和编解码器功能。 交换媒体配置信息的信令通过使用被称为SDP的会话描述协议格式来交换,被称为提议和应答的元数据块 一方发起调用 getUserMedia 打开本地摄像头 媒体协商(信令交换,媒体协商主要

    2024年02月07日
    浏览(58)
  • WebRTC音视频通话-WebRTC本地视频通话使用ossrs服务搭建

    iOS开发-ossrs服务WebRTC本地视频通话服务搭建 之前开发中使用到了ossrs,这里记录一下ossrs支持的WebRTC本地服务搭建。 ossrs是什么呢? SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多种实时流媒体协议。 官网地址:https://ossrs.net/lt

    2024年02月12日
    浏览(46)
  • mediasoup webrtc音视频会议搭建

    拉下源码: https://github.com/versatica/mediasoup-demo 源码里有以下目录其中,app网页的界面终端,broadcasters是广播,也就是他支持我们用ffmpeg推流上去给所有的成员广播,server是流媒体服务器。 源码包含了,https服务器用于浏览器获取界面,信令服务器用于房间管理,和流媒体服务

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包