视频细分领域:实时视频,即时通讯
音视频不同步的原因:发送和接收端处理数据的时延,网络传输时延
人类所能感受到音画不同步的最大时间差:20ms(非官方)
解决方案:发送端同步,接收端同步,网络传输控制
相关技术领域:
1、5G新通话
2、音视频技术基础
3、同步技术
4、延时问题
5、评估方案
6、应用
5G新通话
VoNR的加强版,增强型语音通话业务。
它围绕传统语音通话业务,提供了更多的功能。例如,智能翻译、趣味通话、智能客服、内容分享、远程协助等。
5G新通话的技术原理
VoLTE和VoNR,都是借助IMS实现的多媒体业务。在传统数据业务(上网业务)的基础上,经由4G/5G网络,终端和IMS之间建立了一个大通道。
这个大通道,也分为音频通道、视频通道和信令通道等小通道。传统的VoLTE/VoNR音视频通话业务,就是借助这些小通道实现的。
而5G新通话业务,在这些已有通道的基础上,又引入了一个新通道,称为——数据通道(Data Channel,DC)。
IMS DC的网络架构和业务流程(来自3GPP TS 23.228)
5G新通话的部署方案(来自中国广电5G新通话白皮书)
5G新通话传输多样化内容所采用的技术,其实和互联网一样,就是Web技术。
例如:页面展现,用的是HTML和CSS语言;业务逻辑实现,用的是JavaScript;调用底层功能,用的是API接口。
5G新通话业务类别:趣味通话,语音识别翻译,内容分享/远程协助,主叫名片,智能客服
商业进展
2021年底,3GPP SA2工作组在R18中,立项了对IMS Data Channel架构、接口和流程以及基于IMS Data Channel的AR通信业务架构、接口和流程的研究和标准化工作。该项目将于近期结题。
除了3GPP之外,GSMA也有动作。他们于2022年初启动了IMS Data Channel Profile 规范的制定工作,目前该规范(GSMA PRD NG.134)已进入了发布前的审批流程。
在现网项目落地上,运营商的积极性比较高。他们早早就进行了5G新通话的测试验证,也在各大公开场合进行预热。
2022年4月,中国移动正式发布了5G新通话产品,成为全球首发该业务的电信运营商。
不久前的5月16日,中国移动携手高通宣布,联合了vivo、小米和中兴在内的手机厂商,在实验室和外场环境下完成了基于IMS Data Channel的5G新通话端到端业务验证。
目前,国内四家运营商都在推动5G新通话的试点。芯片和终端厂商也在加速推进。我们可以说,5G新通话已经逐渐进入商用化阶段。
VoNR可以采用EVS(Enhance Voice Services)编解码,具有更强的抗丢帧、抗延时、抗抖动和高保真能力,声音传输带宽由50Hz-7000Hz扩展到了20Hz-14000Hz,达到高保真耳机的音质水平。
VoNR可以支持720p分辨率,比VoLTE通话的480p以及微信视频通话的540p更加清晰。
参考文献
https://baijiahao.baidu.com/s?id=1767372451944800580&wfr=spider&for=pc
音视频同步
过程:数据接收,解复用,音视频解码,音视频同步,音视频输出
视频:帧率,视频一秒显示的帧数
音频:采样率,音频一秒播放的样本数
引入时间戳(绝对时间)
编码时依据参考时钟上的给每个音视频数据块都打上时间戳。
播放时,根据音视频时间戳及参考时钟,来调整播放。
所以,视频和音频的同步实际上是一个动态的过程,同步是暂时的,不同步则是常态。以参考时钟为标准,放快了就减慢播放速度;播放快了就加快播放的速度。
I/P/B帧
I帧:帧内压缩,独立解码
P帧:帧间编码,前向预测
B帧:帧间编码,双向时间预测
时间戳
DTS 解码时间戳
PTS 显示时间戳
常用同步策略
将视频同步到音频上:就是以音频的播放速度为基准来同步视频。
将音频同步到视频上:就是以视频的播放速度为基准来同步音频。
将视频和音频同步外部的时钟上:选择一个外部时钟为基准,视频和音频的播放速度都以该时钟为标准。
当播放源比参考时钟慢,则加快其播放速度,或者丢弃;快了,则延迟播放。
考虑到人对声音的敏感度要强于视频,频繁调节音频会带来较差的观感体验,且音频的播放时钟为线性增长,所以一般会以音频时钟为参考时钟,视频同步到音频上。
调整策略仅仅对早到的或晚到的数据块进行延迟或加快处理,有时候是不够的。如果想要更加主动并且有效地调节播放性能,需要引入一个反馈机制,也就是要将当前数据流速度太快或太慢的状态反馈给“源”,让源去放慢或加快数据流的速度。
音视频技术基础知识
1、音视频的主要处理过程:采集,预处理,编码解码,渲染和展示,文件封装解封装,网络协议打包解包,抖动缓冲区。
2、音视频主要参数与格式
视频参数:
1. 分辨率:视频面积大小(像素px)
2. 帧率:每秒的帧数量fps
3. 码率:每秒的数据量bps(b = bit)
音频参数:
1. 采样率:每秒采集的音频点数量Hz
2. 声道数:同时采集声音的通道数量,常见有单声道和立体声道
3. 位宽:也叫采样位宽,指保存单个声音样本点的比特位数,通常是16bit
4. 比特率:也称位率, 指每秒传送的比特 (bit) 数, 单位为 bps
5. 计算公式为: 比特率 = 采样频率 * 采样位数 * 声道数
原始数据格式:
视频:YUV、RGB
音频:PCM
编码格式:
视频:H.264(也叫AVG)、H.265
音频:AAC、HE-AAC、Opus
封装格式:
MP4,MOV,FLV,RM,RMVB,AVI
3、流媒体协议
通常使用的流媒体协议有以下几种:
1. RTMP:基于TCP七层协议,性价比高,是目前直播推流的标准使用协议;
2 HTTP-FLV:基于TCP,使用HTTP传输FLV流,分发性能强,适用于CDN分发;
3 HLS:基于TCP,被HTML5写入标准支持,延时大,但是兼容H5;
4 RTP:基于UDP四层协议,定义简单且性能好,但是需要额外的信令协议。
4、音视频质量评估标准
视频:首屏耗时,清晰度,帧率,流畅度(卡顿),稳定性,延迟
音频:采样率,音质客观评分(POLQA MOS),音画同步(时间戳PTS),连麦-噪声抑制,连麦-回声抵消。
参考文献https://blog.csdn.net/yuan_ahui/article/details/126232480
WebRTC音视频同步详解
WebRTC,Web Real-Time Communications,可编程的实时音视频API,网页实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。
原理:RTP的标准并没有规定音频、视频流的第一个包必须同时采集、发送,也就是说开始的一小段时间内可能只有音频或者视频,再加上可能的网络丢包,音频或者视频流的开始若干包可能丢失,那么不能简单认为接收端收到的第一个音频包和视频包是对齐的,需要一个共同的时间基准来做时间对齐,这就是NTP时间戳的作用。
NTP一种网络协议,时钟同步协议
NTP时间戳是从1900年1月1日00:00:00以来经过的秒数
发送端以一定的频率发送SR(Sender Report)这个RTCP包,分为视频SR和音频SR,SR包内包含一个RTP时间戳和对应的NTP时间戳,可以用 <NTP,RTP>对 做音视频同步。接收端收到后就可以确定某个流的RTP时间戳和NTP时间戳的对应关系,这样音频、视频的时间戳就可以统一到同一个时间基准下。
期望视频目标延迟 = 网络延迟 + 解码延迟 + 渲染延迟
NTP时间戳后通过线性回归得到NTP时间戳Tntp和RTP时间戳Trtp时间戳的对应关系:
Tntp_audio = f(Trtp_audio)
Tntp_video = f(Trtp_video)
其中Tntp = f(Trtp) = kTrtp + b 为线性函数,这样接收端每收到一个RTP包,都可以将RTP时间戳换算成NTP时间戳,从而在同一时间基准下进行音视频同步。
参考文献
https://zhuanlan.zhihu.com/p/663535696
https://blog.csdn.net/qq_39466755/article/details/129655438
RTCP实现音视频同步
RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)一起构成了音视频实时传输中的基础协议。
研究要点:时钟同步和网络延迟
NTP(Network Time Protocol)时钟同步协议
延迟抖动缓冲区
音视频同步是指音视频的rtp时间戳同步. audio/video rtp 时间戳不能自己同步,需要audio/video rtcp同步。
RTP包头格式
RTCP包头格式
音频时间戳
例如:一个音频包打包20ms的数据.采样率48k.对应的采样数为 48000 * 20 / 1000 = 960,也就是说每个音频包里携带960个音频采样,因为1个采样对应1个时间戳,那么相邻两个音频RTP包的时间戳之差就是960。
视频时间戳
视频采样率是帧率,视频时间戳的单位为1/90k秒.比如: 25帧,每帧40ms.40ms有多少时间戳的基本单位呢? 40除以1/90k等于3600。
扩展内容:
Single Nalu:如果一个视频帧包含1个NALU,可以单独打包成一个RTP包,那么RTP时间戳就对应这个帧的采集时间;
FU-A:如果一个视频帧的NALU过大(超过MTU)需要拆分成多个包,可以使用FU-A方式来拆分并打到不同的RTP包里,那么这几个包的RTP时间戳是一样的;
STAP-A:如果某帧较大不能单独打包,但是该帧内部单独的NALU比较小,可以使用STAP-A方式合并多个NALU打包发送,但是这些NALU的时间戳必须一致,打包后的RTP时间戳也必须一致。
NTP时间戳
NTP时间戳是从1900年1月1日00:00:00以来经过的秒数。
rtp是相对时间,ntp是绝对时间。
rtp时间戳和ntp时间戳表示的意义是相同的,可以互相转换。rtp=f(ntp)。
类似中文名张三,英文名zhangjohn.
显示时间PTS
pts= rtp 时间戳 *timebase.
rtp和pts是编解码时间即播放时间,不是传输时间,传输延时与rtp时间戳没关系.
QA1:什么情况会出现不同步,为什么要同步?
开始第一帧不同步。视频第1ms播放变成第0ms,其他帧都是提前1ms,变成音视频不同步。
QA2:什么时候同步,需要多少次同步?
第一帧开始同步。根据上面的算法,第几个rtcp包都能同步,但是播放需要从开始同步,第一帧同步才有意义。
只需要同步一次,后面就是对于基准0的播放时间了。
参考文献https://www.bilibili.com/read/cv22709693/
参考文献https://zhuanlan.zhihu.com/p/363779515
即时通讯——详解音视频同步技术
技术:音视频编码技术AMR-WB,H.264,RTP时间戳,RTCP反馈检测。
同步技术:循环缓冲队列,RTCP反馈控制
表示方法:时间偏差
结果表明,如果偏差限制在一定的范围内,认为媒体是同步的。当偏移在-90ms(音频滞后于视频)到+20ms(音频超前视频)之间时,人感觉不到试听质量的变化,这个区域可以认为是同步区域;当偏移在-185到+90之外时,音频和视频会出现严重的不同步现象,此区域认为是不同步区域。本设计认为偏移在-120ms到+40ms之间音视频同步。
引起音视频不同步的原因主要有两种:一种是终端处理数据引起的,发送端在数据的采集、编码、打包等模块和接收端在处理解包、解压、回放等模块时,由于音频和视频的数据量以及编码算法不同而引起的时间差。并且发送端没有统一的同步时钟;另一种是网络传输延时,网络传输是受到网络的实时传输带宽、传输距离和网络节点的处理速度等因素的影响,在网络阻塞时,媒体信息不能保证以连续的“流”数据方式传输,特别是不能保证数据量大的视频信息的连续传输,从而引起媒体流内和流间的失步。
同步系统设计:发送端在发送音视频流时,要给各帧数据打上相对时间戳,并且音频流和视频流,一个作为主流,另一个作为从流。主流连续播放,从流的播放由主流的播放状态决定,从而实现同步。考虑到人对声音更为敏感,在本设计中选择音频流作为主流,视频流作为从流。
AnyChat采用动态缓冲技术,会根据不同的网络状况实时调节缓冲区的大小,在实时性和流畅性之间保持平衡。
根据实际网络测试,AnyChat的音视频延迟指标如下:
网络状态较好时(无丢包,网络延迟<=10ms):<1s
网络状态一般时(无丢包,网络延迟<=50ms):<=1s, >=0.5s
网络状态较差时(丢包率<=5%,网络延迟<=100ms):<=1.5s
网络状态较好时(无丢包,网络延迟<10ms):<100ms
网络状态一般时(无丢包,网络延迟<50ms):<=100ms
网络状态较差时(丢包率<=5%,网络延迟<100ms):<=250ms
网络状态很差时(丢包率<=20%,网络延迟<500ms):<=1100ms
注:上述指标为发言模式下的测试值,如采用放歌模式,则内核为了保障播放的流畅性,会适当增加缓冲区大小,导致延迟增大。
AnyChat Platform Core SDK V4.6对延迟进行了优化,局域网环境下,实时高清视频(720P,25fps)通话延迟<100ms。
参考文献https://www.cnblogs.com/x_wukong/p/5876645.html
实时音视频聊天中的延时问题
音视频传输过程中的时延可以分为三类:
1、设备端上的延时主要与硬件性能、采用的编解码算法、音视频数据量相关,设备端上的延时可达到30~200ms。
2、端与服务器间的时延
如果服务器就近部署在服务区域、服务器与客户端的网络运营商一致时,影响上下行网络延时的主要因素就是终端网络的负载和网络类型。一般来说,无线网络环境下的传输延时波动较大,传输延时通常在10~100ms不定。而有线宽带网络下,同城的传输延时能较稳定的低至5ms~10ms。
3、服务器间的时延
仅以骨干网络来讲,数据传输从黑龙江到广州大约需要30ms,从上海到洛杉矶大约需要 110ms~130ms。
延时低≠通话质量可靠
影响实时音频通讯质量的因素包括:音频采样率、码率、延时。
影响实时视频质量的因素包括:码率、帧率、分辨率、延时。
参考文献https://zhuanlan.zhihu.com/p/466375700
一种优化的手机直播系统中音视频同步方法
一种基于网络时延预测的优化方案。该方案利用统计学方法预估网络时延,并根据预估结果对音视频数据进行同步。
音视频同步问题的研究主要从两个方向展开:一方面是精确度更高的同步算法设计,另一方面是通过网络环境与设备特性的分析来调整音视频同步算法的参数。
音视频同步方案
1. 网络时延预测
我们提出的优化方案利用统计学方法对网络时延进行预估,以提高音视频同步的准确性。
具体来说,我们在客户端收到音视频数据后,利用时间戳记录数据的到达时间,然后对当前时刻与前几次数据到达时间的差值进行统计。通过对差值序列的分析,我们可以得出网络时延的分布情况和平均值,并基于此对后续数据进行时序排列。(时延变大,说明网络质量变差,就提前修改缓冲区的大小)
2. 音视频同步
在我们预估出网络时延之后,我们就可以开始对音视频数据进行调整,使其达到同步。具体来说,我们利用之前记录的时间戳,并将它们与网络时延相结合来调整音视频流的时序。
参考文献https://www.51c51.com/danpianji/xinxi/86/948170.html
实时音视频质量评估方案
性能、码率、抗性、时延、音画同步
卡顿(流畅度):手机终端测试
视频质量:通过开源算法进行评估
视频评估:计算损伤视频的质量分数(全参考PSNR,无参考,部分参考)
视频评估算法:PSNR,MOVIE,ST-MAD,VMAF,DeepVQA
评价指标:视觉信息逼真度(VIF),详细损失度量(DLM),Motion相邻帧像素差
音频评估算法:PESQ,STOI可短是客观可懂
参考文献https://www.jianshu.com/p/beda7779840a
腾讯云SDK
音视频数据堆积情况(缓冲区的数据存量)
如果曲线始终贴着0刻度线走,说明整个推流过程非常顺畅,一点都没有堆积。
如果出现大于0的部分,说明当时有网络波动导致数据积压,有可能在播放端产生轻微卡顿和音画不同步的现象。
如果堆积超出红色警戒线,说明已经产生了丢包,必然会在播放端产生卡顿和音画不同步的现象。
参考文献https://cloud.tencent.com/document/product/454/9867
论文
《多媒体通信中的音视频同步问题研究与实现》
H.323终端音视频复用模型,调整最大分段长度(MFS),发送端同步发送,接收端同步播放。
《音视频同步的研究与实现》
连续媒体中特别是音视频流内和流间同步,重点是信源端和信宿端的同步控制方法的研究。
播放调度器,单元排队时延偏移。
根据音视频数据帧时间戳的对应关系,通过调整视频播放过程实现音、视频媒体间同步控制,从而达到媒体间同步的效果。
《视频聊天系统的音视频同步研究》
基于媒体传输双方的双缓冲和双端同步控制的音视频聊天系统。
音视频采集技术、编码压缩技术、传输技术、接收播放技术、缓冲技术、音视频同步技术、音视频播放表现过程控制技术等。
发送端和接收端都设有缓冲区,该缓冲区是一种双向循环链表的结构,该结构可以方便地在任何位置进行插入、删除等操作。
《一种面向互联网应用的多路实时流媒体同步合成方案》
一种基于RTMP(real-time messaging protocol)协议的多路音视频实时同步合成方案。
基于时域的自适应加权平均多路音频混合和基于像素域的多画面合成,生成一路音频流和视频流。
《机载娱乐系统音视频同步技术研究与应用》
码率控制:初始量化参数选择的码率控制算法
网络质量准确评估:时延抖动参数计算网络状况标志量
《音视频同步的研究与实现》学位论文
1同步的定义 内容,空间,时间
2参考模型 媒体层,码流层,对象层,规范层
3影响同步的因素 延时抖动,时钟偏差,数据丢失,网络传输条件
4基于RTP协议的同步机制
RTP报头的序列号:媒体内,媒体流重组
时间戳:媒体间,同时播放
SSRC字节:标识不同媒体源
RTCP协议中的网络监测字段:RTP协议只是作为一种协议,它要真正用于实时同步控制,还要靠具体的应用程序。反馈,调整发送率、带宽。
5 RTP工作原理(2.5)
6同步标准
当偏移在-80ms(音频滞后视频)到+80ms(音频超前视频)之间时,多数观众都不会感到偏移的存在,这就是同步区域;
当偏移在-160ms到+160ms之外时,几乎所有观众都对播映不满意,这一区域称为不同步区域;
在同步区域和不同步区域之间还存在两个临界区域。
总结
1、同步的基准:以音频时钟为参考时钟,计算视频时钟与音频时钟的偏差;
2、样例数据中的时间戳如果为NTP,判断偏移在-120ms(音频滞后于视频)到+40ms(阈值)之间为音视频同步;
3、如果需要更准确的同步,需要对前期的编解码、发送接收、传输过程进行控制,如循环缓冲队列,RTCP反馈控制等。
4、可行的方案
①前端展示,阈值告警
数据包堆积的统计,绘制偏移量曲线,超出门限就告警 参考腾讯云SDK
②预测
统计音视频时间戳的差值,预测未来的时间是否会不同步
③动态调整阈值
统计时延,时延有变大趋势时,将阈值增大
④评估视频质量的算法VMAF
对时延等参数的精准计算
5、研究方向
①切片和会话样例数据中可用字段分析
视频切片和音频切片的定位
②不同步的原因分析,分情况讨论方案
同步在终端,监控点在gm口,判断时延/丢包大于多少,会导致终端不同步
③容错机制
RTP没有重传机制,传输过程没有缓冲区
如果终端出现视频丢包,音频如何同步
标签:视频,同步,音频,网络,音视频,时间,调研 From: https://blog.51cto.com/u_16507092/9164469