一种媒体流信息的处理方法及终端、计算机存储介质技术

技术编号:20246393 阅读:34 留言:0更新日期:2019-01-30 00:35
本发明专利技术公开了一种媒体流信息的处理方法、终端及计算机存储介质,其中,所述方法包括:对第一媒体数据流按照媒体帧类型进行分离,得到至少一个视频帧和至少一个音频帧。将至少一个视频帧发送到第一抖动缓冲区(Jitterbuffer)和第二Jitterbuffer,由第一Jitterbuffer和所述第二Jitterbuffer根据第一或第二最低帧率策略,对所述至少一个音/视频帧构成音/视频流中发生异常的帧执行插帧判决,对异常进行修复后得到待处理的音/视频流。将待处理的视频流和待处理的音频流发送到第三Jitterbuffer,由第三Jitterbuffer根据原始输入时戳的时间顺序,对待处理的视频流和待处理的音频流进行音视频混排处理,得到第二媒体数据流。

【技术实现步骤摘要】
一种媒体流信息的处理方法及终端、计算机存储介质
本专利技术涉及信息处理技术,尤其涉及一种媒体帧信息的处理方法及终端、计算机存储介质。
技术介绍
由发送端和接收端构成的实时通讯系统中,音、视频数据包可能由于网络状况或人为因素(临时关闭本地视频或音频,或同时关闭)发生乱序、抖动、延时、断流等问题,这将导致接收端收到的音、视频数据出现时戳跳变、长时间无音频或无视频等异常现象。为了对异常进行修复,需要采取插帧或补流的技术。不同接收端对媒体数据运行插帧或补流的处理机制是不同的,导致兼容性不好,也达不到对异常修复的良好处理效果。目前需要解决的问题是:需要提高接收端对媒体数据的兼容性,改善对异常修改的效果。然而,相关技术中,对于该问题,尚无有效解决方案。
技术实现思路
有鉴于此,本专利技术实施例提供了一种媒体流信息的处理方法及终端、计算机存储介质,至少解决了现有技术存在的问题。本专利技术实施例的一种媒体流信息的处理方法,所述方法包括:对由至少一个媒体帧信息构成的第一媒体数据流按照媒体帧类型进行分离,得到至少一个视频帧和至少一个音频帧;将所述至少一个视频帧发送到第一抖动缓冲区Jitterbuffer;将所述至少一个音频帧发送到第二Jitterbuffer;由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流;由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流;将所述待处理的视频流和所述待处理的音频流发送到第三Jitterbuffer;由所述第三Jitterbuffer根据原始输入时戳的时间顺序,对所述待处理的视频流和所述待处理的音频流进行音视频混排处理,得到第二媒体数据流。上述方案中,所述方法还包括:设置初始缓冲最小包数,如果当前缓冲包数达到所述初始缓冲最小包数,则执行出队处理,否则,执行入队处理;根据最低出队帧率得到最大出队时间间隔,如果当前时间与上一次成功出队的时间之差大于所述最大出队时间间隔,则执行第一预设操作,否则,结束出队处理,返回到入队处理。上述方案中,所述由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流,包括:执行所述入队处理时,在初始状态下,设置初始缓冲结束标志为真TRUE;读取输入的视频包,当需要等待的关键帧标志为TRUE时,确定入队的首包为关键帧;若当前需要等待关键帧,但当前为非关键帧,则结束当前的入队处理,否则对所述视频包进行入队预处理;进行入队预处理后进行视频包的合法性判断,若当前视频包的包序号大于上一次出队视频包的包序号,则丢弃当前视频包,结束当前入队处理,否则,按照包序号从小到大的顺序,将当前视频包入队。上述方案中,所述由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流,包括:执行所述出队处理时,在初始状态下,若初始缓冲结束标志不为TRUE,则不执行当前出队处理,直接返回到入队处理,否则,根据队列当前为空或不为空的情况分别进行判断;队列当前为空的情况下,若当前时间与上次成功出队时间之差大于最大出队时间间隔时,则执行第一预设操作,否则,结束出队处理,返回到入队处理;队列当前不为空的情况下,若当前时间与上次成功出队时间之差大于待出队首包与上次成功出队包之间的时戳差值时,则将队列首包出队,否则,判断当前时间与上次成功出队时间之差是否大于最大出队时间间隔时,如果是,则执行预设操作,否则,结束出队处理,返回到入队处理。上述方案中,由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流,包括:执行所述入队处理时,在初始状态下,设置初始缓冲结束标志为TRUE;对读取的音频包进行入队预处理;进行入队预处理后进行音频包的合法性判断,若当前音频包的包序号大于上一次出队音频包的包序号,则丢弃当前视频包,结束当前入队处理,否则,按照包序号从小到大的顺序,将当前音频包入队。上述方案中,由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流,包括:执行所述出队处理时,在初始状态下,若初始缓冲结束标志不为TRUE,则不执行当前出队处理,直接返回到入队处理,否则,根据队列当前为空或不为空的情况分别进行判断;队列当前为空的情况下,若当前时间与上次成功出队时间之差大于最大出队时间间隔时,则执行第二预设操作,否则,结束出队处理,返回到入队处理;队列当前不为空的情况下,若当前时间与上次成功出队时间之差大于待出队首包与上次成功出队包之间的时戳差值时,则将队列首包出队,否则,判断当前时间与上次成功出队时间之差是否大于最大出队时间间隔时,如果是,则执行第二预设操作,否则,结束出队处理,返回到入队处理。上述方案中,由所述第三Jitterbuffer根据原始输入时戳的时间顺序,对所述待处理的视频流和所述待处理的音频流进行音视频混排处理,得到第二媒体数据流,包括:执行所述入队处理时,在初始状态下,设置初始缓冲结束标志为TRUE;读取输入的数据包,当需要等待的关键帧标志为TRUE时,确定入队的首包为关键帧;若当前需要等待关键帧,但当前为非关键帧,则结束当前的入队处理,否则对所述数据包进行入队预处理;进行入队预处理后进行数据包的合法性判断,若当前数据包的原始输入时戳大于上一次出队数据包,则丢弃当前数据包,结束当前入队处理,否则,按照原始输入时戳从小到大的顺序,将当前数据包入队。上述方案中,由所述第三Jitterbuffer根据原始输入时戳的时间顺序,对所述待处理的视频流和所述待处理的音频流进行音视频混排处理,得到第二媒体数据流,包括:执行所述出队处理时,在初始状态下,若初始缓冲结束标志不为TRUE,则不执行当前出队处理,直接返回到入队处理,否则,判断队列当前长度是否大于所述初始缓冲最小包数;如果队列当前长度大于所述初始缓冲最小包数,则将队列首包出队,否则,返回到入队处理。本专利技术实施例的一种终端,所述终端包括:分割单元,用于对由至少一个媒体帧信息构成的第一媒体数据流按照媒体帧类型进行分离,得到至少一个视频帧和至少一个音频帧;第一缓冲单元,用于接收所述分割单元所发送的所述至少一个视频帧;根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流;第二缓冲单元,用于接收所述分割单元所发送的所述至少一个音频帧;根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流;第三缓冲单元,用于从所述第一缓冲单元和所述第二缓冲单元分别接收所述待处理的视频流和所述待处理的音频流;根据原始输入本文档来自技高网...

【技术保护点】
1.一种媒体流信息的处理方法,其特征在于,所述方法包括:对由至少一个媒体帧信息构成的第一媒体数据流按照媒体帧类型进行分离,得到至少一个视频帧和至少一个音频帧;将所述至少一个视频帧发送到第一抖动缓冲区Jitterbuffer;将所述至少一个音频帧发送到第二Jitterbuffer;由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流;由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流;将所述待处理的视频流和所述待处理的音频流发送到第三Jitterbuffer;由所述第三Jitterbuffer根据原始输入时戳的时间顺序,对所述待处理的视频流和所述待处理的音频流进行音视频混排处理,得到第二媒体数据流。

【技术特征摘要】
1.一种媒体流信息的处理方法,其特征在于,所述方法包括:对由至少一个媒体帧信息构成的第一媒体数据流按照媒体帧类型进行分离,得到至少一个视频帧和至少一个音频帧;将所述至少一个视频帧发送到第一抖动缓冲区Jitterbuffer;将所述至少一个音频帧发送到第二Jitterbuffer;由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流;由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流;将所述待处理的视频流和所述待处理的音频流发送到第三Jitterbuffer;由所述第三Jitterbuffer根据原始输入时戳的时间顺序,对所述待处理的视频流和所述待处理的音频流进行音视频混排处理,得到第二媒体数据流。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置初始缓冲最小包数,如果当前缓冲包数达到所述初始缓冲最小包数,则执行出队处理,否则,执行入队处理;根据最低出队帧率得到最大出队时间间隔,如果当前时间与上一次成功出队的时间之差大于所述最大出队时间间隔,则执行第一预设操作,否则,结束出队处理,返回到入队处理。3.根据权利要求2所述的方法,其特征在于,所述由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流,包括:执行所述入队处理时,在初始状态下,设置初始缓冲结束标志为真TRUE;读取输入的视频包,当需要等待的关键帧标志为TRUE时,确定入队的首包为关键帧;若当前需要等待关键帧,但当前为非关键帧,则结束当前的入队处理,否则对所述视频包进行入队预处理;进行入队预处理后进行视频包的合法性判断,若当前视频包的包序号大于上一次出队视频包的包序号,则丢弃当前视频包,结束当前入队处理,否则,按照包序号从小到大的顺序,将当前视频包入队。4.根据权利要求2所述的方法,其特征在于,所述由所述第一Jitterbuffer根据第一最低帧率策略,对所述至少一个视频帧构成视频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的视频流,包括:执行所述出队处理时,在初始状态下,若初始缓冲结束标志不为TRUE,则不执行当前出队处理,直接返回到入队处理,否则,根据队列当前为空或不为空的情况分别进行判断;队列当前为空的情况下,若当前时间与上次成功出队时间之差大于最大出队时间间隔时,则执行第一预设操作,否则,结束出队处理,返回到入队处理;队列当前不为空的情况下,若当前时间与上次成功出队时间之差大于待出队首包与上次成功出队包之间的时戳差值时,则将队列首包出队,否则,判断当前时间与上次成功出队时间之差是否大于最大出队时间间隔时,如果是,则执行预设操作,否则,结束出队处理,返回到入队处理。5.根据权利要求2所述的方法,其特征在于,由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流,包括:执行所述入队处理时,在初始状态下,设置初始缓冲结束标志为TRUE;对读取的音频包进行入队预处理;进行入队预处理后进行音频包的合法性判断,若当前音频包的包序号大于上一次出队音频包的包序号,则丢弃当前视频包,结束当前入队处理,否则,按照包序号从小到大的顺序,将当前音频包入队。6.根据权利要求2所述的方法,其特征在于,由所述第二Jitterbuffer根据第二最低帧率策略,对所述至少一个音频帧构成音频流中发生异常的帧执行插帧判决,根据判决结果对异常进行修复后得到待处理的音频流,包括:执行所述出队处理时,在初始状态下,若初始缓冲结束标志不为TRUE,则不执行当前出队处理,直接返回到入队处理,否则,根据队列当前为空或不为空的情况分别进行判断;队列当前为空的情况下,若当前时间与上次成功出队时间之差大于最大出队时间间隔时,则执行第二预设操作,否则,结束出队处理,返回到入队处理;队列当前不为空的情况下,若当前时间与上次成功出队时间之差大于待出队首包与上次成功出队包之间的时戳差值时,则将队列首包出队,否则,判断当前时间与上次成功出队时间之差是否大于最大出队时间间隔时,如果是,则执行第二预设操作,否则,结束出队处理,返回到入队处理。7.根据权利要求2所述的方法,其特征在于,由所述第三Jitterbuffer根据原始输入时戳的时间顺序,对所述待处理的视频流和所述待处理的音频流进行音视频混排处理,得到第二媒体数据流,包括:执行所述入队处理时,在初始状态下,设置初始缓冲结束标志为TRUE;读取输入的数据包,当需要等待的关键帧标志为TRUE时,确定入队的首包为关键帧;若当前需要等待关键帧,但当前为非关键帧,则结束当前的入队处理,否则对所述数据包进行入队预处理;进行入队预处理后进行数据包的合法性判断,...

【专利技术属性】
技术研发人员:王俊
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1