用于网络视频直播的媒体低延迟通信方法与系统与流程

文档序号:16590264发布日期:2019-01-14 19:02阅读:345来源:国知局
用于网络视频直播的媒体低延迟通信方法与系统与流程

本发明涉及网络通信技术领域,特别涉及用于网络视频直播的媒体低延迟通信方法与系统。



背景技术:

全球互联网自上世纪九十年代以来迅速拓展,已经成为当今世界推动经济发展和社会进步的重要信息基础设施。自互联网兴起以来,已有各种不同的直接或间接利用互联网的应用被开发出来,以使人们的日常生活更加便利,而利用网络进行视频会议、网络直播等即是基于互联网开发出来的通信方式,能够使距离较远的多方参与者进行图像声音交流,使各方参与者能够观看到其它各方参与者展示的图像和发出的声音,极大地便利了参与者信息交流的过程。

例如,在利用互联网进行网络视频直播时,直播方会将包含播放内容的音视频发送至观看方,观看方无需到例如表演现场、比赛现场等特定地点观看表演或比赛,而是可以在任意能够连接网络的位置发送/接收音视频信息,实现网络视频直播。在发送方(即直播方)将音视频发送给接收方(即观看方)之前,先将音视频经过编码得到一帧一帧的视频帧及音频帧,然后依序通过网络传输到接收方,经过接收方解码得到音视频文件进行播放。

在实施上述网络视频直播的过程中,直播方与观看方之间的通信可能会由于网络传输速度较慢或网络不稳定等原因而受到干扰,导致在直播过程中发生信号延时的现象,图像和声音不连续或不同步,使得观看方在信号延时过程中无法正常视听直播内容,对视频直播过程产生较大的负面影响。



技术实现要素:

(一)发明目的

为克服上述现有技术存在的至少一种缺陷,尽量弥补因网络状态不好导致观看方无法视听网络视频直播的内容,本发明提供以下技术方案。

(二)技术方案

作为本发明的第一方面,本发明公开了一种用于网络视频直播的媒体低延迟通信方法,包括:

判断获取到的当前视频帧图像与前一视频帧图像之间的场景变化程度是否超过预设的场景变化阈值;

对所述当前视频帧及获取到的相应音频帧分别进行数据分包,并依据所述场景变化程度是否超过预设的场景变化阈值的判断结果,在每个视频数据包和音频数据包中添加相应的场景标记;

缓冲所述视频数据包和所述音频数据包,依据所述场景标记调整所述视频数据包和所述音频数据包的发送优先级,并依照所述发送优先级发出所述视频数据包和所述音频数据包;

接收方依据所述场景标记缓冲接收到的所述视频数据包和所述音频数据包,以实现音视频数据播放。

一种可能的实施方式中,所述获取到的视频帧和所述获取到的音频帧通过实时录制的音视频进行编码得到。

一种可能的实施方式中,通过帧间差分法和/或背景差分法判断所述场景变化程度是否超过预设的场景变化阈值。

一种可能的实施方式中,接收方的缓冲大小可变,其依据所述场景标记进行调节。

一种可能的实施方式中,其特征在于,在所述对所述当前视频帧及获取到的相应音频帧分别进行数据分包之前,还包括:在每一帧视频帧和音频帧中添加相应的时间标识;并且,

在所述接收方依据所述场景标记缓冲接收到的所述视频数据包和所述音频数据包之后,还包括:依据各数据包携带的所述时间标识以及预设的时长阈值,限制所述发送优先级高的数据超前于所述发送优先级低的数据播放的时长。

一种可能的实施方式中,所述时长阈值可变,其依据所述场景标记进行调节。

作为本发明的第二方面,本发明公开了一种用于网络视频直播的媒体低延迟通信系统,包括:

场景判断模块,用于判断获取到的当前视频帧图像与前一视频帧图像之间的场景变化程度是否超过预设的场景变化阈值;

数据分包模块,用于对所述当前视频帧及获取到的相应音频帧分别进行数据分包;

场景标识模块,用于在所述数据分包之后,依据所述场景变化程度是否超过预设的场景变化阈值的判断结果,在每个视频数据包和音频数据包中添加相应的场景标记;

发送缓冲模块,用于在所述添加相应场景标记后,缓冲所述视频数据包和所述音频数据包,依据所述场景标记调整所述视频数据包和所述音频数据包的发送优先级,并依照所述发送优先级发出所述视频数据包和所述音频数据包;

接收缓冲模块,用于依据所述场景标记缓冲接收到的所述视频数据包和所述音频数据包,以实现音视频数据播放。

一种可能的实施方式中,该系统还包括:

编码录制模块,用于实时录制的音视频并对其进行编码得到所述获取到的视频帧和所述获取到的音频帧。

一种可能的实施方式中,所述场景判断模块包括:第一判断单元和/或第二判断单元,所述第一判断单元用于通过帧间差分法判断所述场景变化程度是否超过预设的场景变化阈值,所述第二判断单元用于通过背景差分法判断所述场景变化程度是否超过预设的场景变化阈值。

一种可能的实施方式中,所述发送缓冲模块包括:第一调节单元,用于依据所述场景标记调节所述发送缓冲模块的缓冲大小。

一种可能的实施方式中,该系统还包括:

时间标识模块,用于在所述数据分包之前,在每一帧视频帧和音频帧中添加相应的时间标识;

时差调节模块,用于在所述接收缓冲模块缓冲数据包之后,依据各数据包携带的所述时间标识以及预设的时长阈值,限制所述发送优先级高的数据超前于所述发送优先级低的数据播放的时长。

一种可能的实施方式中,所述时长阈值可变,所述时差调节模块依据所述场景标记对所述时长阈值进行调节。

(三)有益效果

本发明提供的用于网络视频直播的媒体低延迟通信方法与系统,能够对直播方发出的包含直播内容的音视频中视频的内容进行判断,来调整视频传输和音频传输的优先级,以在网络视频直播有延时或不稳定时优先发送重要数据,降低网络延时产生的干扰,保证接收方能够最大程度上不中断、不漏掉直播的重点内容;同时通过音视频数据内添加时间标识来限制暂缓发送的数据包被暂缓的时长,防止优先级低的数据包落后太多。

附图说明

以下参考附图描述的实施例是示例性的,旨在用于解释和说明本发明,而不能理解为对本发明的保护范围的限制。

图1是本发明提供的用于网络视频直播的媒体低延时通信方法第一实施例的流程示意图。

图2是本发明提供的用于网络视频直播的媒体低延时通信方法第二实施例的流程示意图。

图3是本发明提供的用于网络视频直播的媒体低延时通信系统第一实施例的结构框图。

图4是本发明提供的用于网络视频直播的媒体低延时通信系统第二实施例的结构框图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。

需要说明的是:在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本文中,“第一”、“第二”等仅用于彼此的区分,而非表示它们的重要程度及顺序等。

本文中的模块、单元或组件的划分仅仅是一种逻辑功能的划分,在实际实现时可以有其他的划分方式,例如多个模块和/或单元可以结合或集成于另一个系统中。作为分离部件说明的模块、单元、组件在物理上可以是分开的,也可以是不分开的。作为单元显示的部件可以是物理单元,也可以不是物理单元,即可以位于一个具体地方,也可以分布到网格单元中。因此可以根据实际需要选择其中的部分或全部的单元来实现实施例的方案。

下面参考图1详细描述本发明提供的用于网络视频直播的媒体低延时通信方法的第一实施例。本实施例主要应用于网络视频直播,能够对发送方发出的包含网络直播内容的音视频中视频的内容进行判断,来调整视频传输和音频传输的优先级,以在网络通信有延时或不稳定时优先发送重要数据,降低网络延时产生的干扰,保证接收方能够最大程度上不中断、不漏掉网络直播的重点内容。

如图1所示,本实施例提供的媒体低延时通信方法包括如下步骤:

步骤100,判断获取到的当前视频帧图像与前一视频帧图像之间的场景变化程度是否超过预设的场景变化阈值。

一个视频帧即为一幅静态图像,多个视频帧组合起来即为一段视频,音频帧同理。在对音视频编码得到视频帧及音频帧的过程中,会对视频帧施行同场景判断机制,具体方式即为对当前需要发送给接收方的视频帧vn与前一视频帧vn-1的图像进行识别,得到相邻两帧图像的场景变化程度,并判断场景变化程度sn有无超出预设的场景变化阈值st。

若场景变化程度sn超出st,则表示视频帧vn和视频帧vn-1在场景上有显著变化。例如视频帧vn的画面为演唱会现场台下观众的场景,视频帧vn-1的画面为歌手在舞台上唱歌的场景,此种情况下两帧画面的场景变化程度会超出场景变化阈值st,会被判定为有显著变化。

若场景变化程度sn未超出st,则表示视频帧vn和视频帧vn-1在场景上未有显著变化。例如视频帧vn的画面和视频帧vn-1的画面均为歌手在舞台上唱歌的场景,此种情况下两帧画面的场景变化程度不会超出场景变化阈值st,会被判定为未有显著变化。

需要说明的是,一段音视频中会包含很多的视频帧和音频帧,除了第一帧视频帧和音频帧之外,后续的所有视频帧都需要与前一帧进行上述场景变化程度的比较。

还需要说明的是,与当前视频帧图像进行场景变化程度对比的除了前一视频帧图像外,还可以是前第n视频帧图像,n>1,即还可以是与前第二帧图像对比,前第三帧图像对比等,跳帧进行对比,n的具体取值可根据实际情况设置,但不宜设置过大,否则可能会遗漏在一段较短时长内场景变化又变回的情况。

步骤200,对当前视频帧及获取到的相应音频帧分别进行数据分包,并依据场景变化程度是否超过预设的场景变化阈值的判断结果,在每个视频数据包和音频数据包中添加相应的场景标记。

在判断出视频帧vn的画面和视频帧vn-1的画面是否有显著变化之后,将视频帧vn以及与其对应的音频帧an分别进行数据分包。在利用互联网进行数据传输时,会将数据分成多个数据包并分批发送,接收方接收到数据包之后会进行整合,得到完整的能够播放的数据。

在将视频帧vn和音频帧an进行数据分包后,得到多个视频数据包和多个音频数据包,在每个视频数据包和每个音频数据包中都添加场景标记。添加的场景标记取决于在未分包之前场景变化程度是否超过预设的场景变化阈值,若视频帧vn的场景相对于视频帧vn-1有显著变化,则在视频帧vn的数据包中添加的场景标记和在视频帧vn-1的数据包中添加的场景标记不同,以上述视频帧vn的画面为演唱会现场台下观众的场景而视频帧vn-1的画面为歌手在舞台上唱歌的场景为例,视频帧vn-1和音频帧an-1的数据包中添加的场景标记为sm,则视频帧vn和视频帧vn-1的数据包中添加的场景标记为sm+1。而若是视频帧vn的画面和视频帧vn-1的画面无显著变化,例如均为歌手在舞台上唱歌的场景,则视频帧vn和音频帧an的数据包中添加的场景标记与视频帧vn-1和音频帧an-1相同,均为sm。

可以理解的是,数据包可以采用udp数据包或tcp数据包。udp(userdatagramprotocol,用户数据报协议)是一种无连接的协议,用于提供面向事务的简单不可靠信息传送服务,能够支持需要在计算机之间传输数据的网络应用,udp不对传送数据包进行可靠性保证,适合于一次传输少量数据,且传输速度较快。tcp(transmissioncontrolprotocol,传输控制协议)是一种面向连接的协议,其包含了专门的传递保证机制,并能确保数据的发送和接收顺序,但需要占用系统资源,传输速度在同等条件下比udp慢。

步骤300,缓冲视频数据包和音频数据包,依据场景标记调整视频数据包和音频数据包的发送优先级,并依照发送优先级发出视频数据包和音频数据包。

发送方通过发送缓冲池来缓冲数据。在将视频帧vn和音频帧an分别进行数据分包之后,将视频数据包发送至发送缓冲池的视频发送缓冲区内,将音频数据包发送至发送缓冲池的音频发送缓冲区。缓冲池用于缓冲数据,用于将数据累计到一定程度后再发送出去。

在视频数据包和音频数据包被发送至发送缓冲池后,需要对当前视频帧的数据包的场景标记与前一视频帧的数据包的场景标记进行检测,以判断相邻视频帧是否属于同一场景。场景标记相同则表示当前视频帧和前一视频帧为同场景,场景标记不同则为不同场景,进而分出同场景下调整发送优先级的方式和不同场景下调整发送优先级的方式。

可以理解的是,由于音频数据包也被添加了场景标记,因此也可以通过判断当前音频帧的数据包的场景标记与前一音频帧的数据包的场景标记是否相同来得知是否同场景。

在当前视频帧与前一视频帧为同场景的情况下,表明当前视频帧的直播画面与前一视频帧的直播画面基本相同,例如该两帧的画面均为歌手在舞台上唱歌的场景,则此时直播的主要内容为歌手唱出的歌声(音频)而非歌手的面貌和舞台的背景(视频),因此声音比画面包含的直播内容要多,此时将音频数据包的发送优先级调整为高于视频数据包的发送优先级,即,在判断出当前帧的画面与前一帧的画面为同场景时,发送缓冲池发送的视频数据包和音频数据包的比例向音频数据包倾斜。

例如,初始时刻,发送缓冲池每毫秒发送m个数据包,其中音、视频数据包比例为1:9,在第一帧视频帧的数据包和第一帧音频帧的数据包发出后,第二帧视频帧的数据包和第二帧音频帧的数据包进入到发送缓冲池中,并被检测到第二帧视频帧与第一帧视频帧同场景,则此时发送缓冲池中的音、视频数据包比例调整为2:8,使得接收方接收到同样数量的数据包时,音频数据包占比更多一些。

若是在网络状态较好的情况下,即使音频数据包的发送占比提高,接收方也能够同步地接收到视频数据包和音频数据包。若是网络状态突然变差,例如网速较慢、网络不稳定等,则由于音频数据包的发送占比提高,接收方(观看方)接收到的音频数据包占比也会提高,音频数据会比视频数据提前缓冲完毕并播放出来,则在接收方看来,网络直播演唱会窗口的画面可能会有卡顿,但歌手的歌声却能尽量保持连续,保证接收方能够最大程度上不中断、不漏掉演唱会的重点。

在当前视频帧与前一视频帧为不同场景的情况下,表明当前视频帧的直播画面与前一视频帧的直播画面差别较大,例如从前一帧的演唱会现场台下观众的场景转变为当前帧的歌手在舞台上唱歌的场景,则此时歌手在唱歌的同时可能会有精彩的动作表演,因此画面信息可能比声音信息更重要或者画面和声音信息同等重要。此时将视频数据包的发送优先级调整为高于或等于音频数据包的发送优先级,即,在判断出当前帧的画面与前一帧的画面为不同场景时,发送缓冲池发送的视频数据包和音频数据包的比例向视频数据包倾斜,或者比例恢复到初始比例。

例如,在第n帧视频帧的数据包和第n帧音频帧的数据包发出后,第n+1帧视频帧的数据包和第n+1帧音频帧的数据包进入到发送缓冲池中,并被检测到第n+1帧视频帧与第n帧视频帧的场景不同,则此时发送缓冲池中的音、视频数据包比例从同场景下的2:8调整为0.5:9.5,使得接收方接收到同样数量的数据包时,视频数据包占比更多一些;或者音、视频数据包比例恢复到初始比例1:9,使两者均衡发出。

若是在网络状态较好的情况下,即使视频数据包的发送占比相对于初始比例提高,接收方也能够同步地接收到视频数据包和音频数据包。若是网络状态较差,则由于视频数据包的发送占比提高,接收方(观看方)接收到的视频数据包占比也会提高,视频数据会比音频数据提前缓冲完毕并播放出来,则在接收方看来,网络直播窗口的声音可能会有卡顿,但歌手在现场的动作表演的内容却能尽量保持连续,保证接收方能够最大程度上不中断、不漏掉歌手的现场动作表演的重点内容。在音、视频数据包在发送缓冲池中恢复到初始的正常比例时,接收方(观看方)接收到的音、视频数据包也会较为均衡,画面和声音都可能会有卡顿,但相对于有优先级的情况来说,声音和画面较为兼顾。

由上述内容可知,发送优先级实际即为数据传输的带宽分配。

在整个网络直播的过程中,无论网络环境的好坏,发送缓冲池内的数据包总是在根据场景标记判断出同场景或不同场景并调解优先级之后再将数据包根据优先级发出。

步骤400,接收方依据场景标记缓冲接收到的视频数据包和音频数据包,以实现音视频数据播放。

接收方通过接收缓冲池来缓冲数据。发送方(直播方)按照发送优先级将音、视频数据包发出后,接收方(观看方)接收到音、视频数据包,并放入接收缓冲池中,其中,音频数据包放入音频接收缓冲区,视频数据包放入视频接收缓冲区。在音、视频缓冲至一定数据量后,依据各数据包携带的场景标记以及其他一些特征,将数据包解码得到视频帧和音频帧,并逐帧进行播放,以使接收方的能够视听到演唱会,实现互联网网络视频直播。

在网络状态良好的情况下,发送方发出的音、视频数据包均能快速接收到,因此无论数据包的发送优先级如何,接收方均能及时缓冲完成音、视频并播放出来,使得接收方的播放画面及声音连续。

在网络状态不好的情况下,发送方按照发送优先级发出音、视频数据包,接收方同时缓冲音、视频数据包,在同场景下,音频数据包的发送优先级高,优先发送包含重要数据的音频数据包,接收方会先缓冲完毕音频数据,因此音频数据会先被播放出来,降低网络延时产生的干扰。不同场景下,视频数据包的发送优先级高,优先发送包含重要数据的视频数据包,接收方会先缓冲完毕视频数据,因此视频数据会先被播放出来,同样降低网络延时产生的干扰。在网络恢复到良好状态时,对于发送方来说,发送方依旧是按照场景的识别来按照发送优先级发出数据包,对于接收方来说,由于网络环境良好因此缓冲速度变快,接收方由于之前的网络状态不好时产生音画不同步,此时可以切去音视频中因未缓冲完成而落后播放的部分,直接从另一方超前的播放点处开始同步播放之后的音视频内容。

在一种实施方式中,步骤100中获取到的视频帧和获取到的音频帧通过实时录制的音视频进行编码得到。

作为原始数据的各个视频帧和音频帧,其通常是由音视频文件编码得到的。音视频文件是现场通过摄像头等录制设备实时录制的。录制方在演唱会开始时开始现场直播演唱会现场的画面和声音,实时录制的文件被立即编码得到视频帧和音频帧,并在编码过程中进行后续的场景变化程度的判断。

在步骤100中的判断两帧图像场景变化时,当前帧图像与前一帧图像的场景变化判断在编码过程中实现。

在一种实施方式中,音视频的编码方式依据网络状态确定。

编码方式包括视频码率、视频分辨率、视频帧率、音频码率、音频采样率等参数。

视频码率就是数据传输时单位时间传送的数据位数,即取样率,单位为kbps(千位每秒)。单位时间内取样率越大,精度就越高,数据量也越大,处理出来的文件就越接近原始文件。音频码率与视频码率原理相同,音频码率是音频的取样率。

分辨率是用于度量图像内数据量多少的一个参数,通常表示成ppi(pixelperinch,每英寸像素),分辨率越高,视频越清晰,数据量也越大。

帧率(framerate)是用于测量显示帧数的量度,单位为fps(framespersecond,每秒显示帧数)。帧率越高,画面越流畅越逼真,帧率过低则画面会有卡顿。

采样率是指每秒钟采集多少个信号样本,采样频率越高,则在单位时间内得到的样本数据就越多,对信号波形的表示也越精确,音频的音质、音调越还原,数据量也越大。

可以理解的是,在网络状态不好的时候,编码时采用的码率、分辨率、帧率、采样率等会设置的相对低一些,以压缩、减小数据量,使得接收方在能够准确接收到直播内容的同时降低对网速的要求,以保证数据的正常传输。在网络状态良好的时候,编码时采用的码率、分辨率、帧率、采样率等可以设置的正常或高一些,以提高观看方的观看体验。

在一种实施方式中,通过帧间差分法和/或背景差分法判断场景变化程度是否超过预设的场景变化阈值。

在步骤100中判断是否有场景变化时,可以通过帧间差分法来判断两帧视频帧图像有无场景变化,也可以通过背景差分法判断两帧视频帧图像有无场景变化,还可以同时利用帧间差分法和背景差分法进行双层判断,进一步增加判断结果的准确性。

帧间差分法是将视频流中相邻两帧或相隔几帧图像的两幅图像像素值相减,得到两帧图像亮度差的绝对值,通过判断该绝对值是否大于预设的阈值来确定两帧的场景是否有显著变化。

背景差分法是采用图像序列中的当前帧和背景参考模型比较来检测运动物体的一种方法,通过将当前获取的图像帧与背景图像做差分运算,得到目标运动区域的灰度图,对灰度图进行阈值化并取绝对值,通过判断该绝对值是否大于预设的阈值来确定两帧的场景是否有显著变化。其中,背景图像依据当前获取图像帧进行更新。

在一种实施方式中,接收方的缓冲大小可变,其依据场景标记进行调节。

接收方包括接收缓冲池,接收缓冲池的视频接收缓冲区和音频接收缓冲区的大小可以设置为始终不变的,也可以设置为可变的。若视频接收缓冲区和音频接收缓冲区设置为大小可变,则变化的依据即为步骤200中添加于数据包中的场景标记。

在对接收到的音、视频数据包进行缓冲、解码的过程中,会对音、视频数据包携带的场景标记进行检测。若检测到数据包携带的场景标记相同,则表示两帧视频帧的画面场景没有显著变化,此时可以适当减小接收缓冲池的缓冲容量,相当于减少音视频数据的缓冲时间,进而尽快播放出已接收到的音视频数据。在网络状况不好的情况下,由于音频数据包的占用空间相对较小,并且同场景下可以适当允许视频画面质量较差,因此适当减小接收缓冲池的缓冲容量,以尽快播放出音频内容,减少直播过程中的卡顿现象。

若检测到数据包携带的场景标记不同,则表示两帧视频帧的画面场景存在显著变化,此时可以适当增大接收缓冲池的缓冲容量,相当于增加音视频数据的缓冲时间,进而使已接收到的音视频数据缓冲完一段后再播放。在网络状况不好的情况下,由于视频数据包的占用空间相对较大,因此需要缓冲完成一段时长的视频之后再播出,因此适当增加接收缓冲池的缓冲容量,防止发生缓冲完只够播放例如不到一秒的视频就立即播放,以减少直播过程中的卡顿感。

在一种实施方式中,发送方发出数据包之后,等待接收方反馈的确认信号,在收到所述确认信号后删除缓冲区内相应的数据包,发送方在超过设定时间未接收到确认信号时,自动重新发出数据包。

发送方的发送缓冲池在发出数据包之后,接收方若接收到数据包,则向发送方反馈确认信号,表明自己接收到了数据包,发送方既可以在发送缓冲池中删除该数据包,但若数据包发生丢包现象,则发送方在超过设定时间未接收到确认信号时,判定发出的数据包丢失,并自动重新发出数据包,以再次尝试使使接收方接收数据包。

下面参考图2详细描述本发明提供的用于网络视频直播的媒体低延时通信方法的第二实施例。本实施例能够对发送方发出的包含网络直播内容的音视频中视频的内容进行判断,来调整视频传输和音频传输的优先级,以在网络通信有延时或不稳定时优先发送重要数据,降低网络延时产生的干扰,保证接收方能够最大程度上不中断、不漏掉网络直播的重点内容;同时通过音视频数据内添加时间标识来限制暂缓发送的数据包被暂缓的时长,防止优先级低的数据包落后太多。

如图2所示,本实施例提供的媒体低延时通信方法包括如下步骤:

步骤100,判断获取到的当前视频帧图像与前一视频帧图像之间的场景变化程度是否超过预设的场景变化阈值,并且在每一帧视频帧和音频帧中添加相应的时间标识。

在对音视频编码得到视频帧及音频帧的过程中,会对视频帧施行同场景判断机制,具体方式即为对当前需要发送给接收方的视频帧vn与前一视频帧vn-1的图像进行识别,得到相邻两帧图像的场景变化程度,并判断场景变化程度sn有无超出预设的场景变化阈值st。若场景变化程度sn超出st,则表示视频帧vn和视频帧vn-1在场景上有显著变化。若场景变化程度sn未超出st,则表示视频帧vn和视频帧vn-1在场景上未有显著变化。

需要说明的是,与当前视频帧图像进行场景变化程度对比的除了前一视频帧图像外,还可以是前第n视频帧图像,n>1,即还可以是与前第二帧图像对比,前第三帧图像对比等,跳帧进行对比,n的具体取值可根据实际情况设置,但不宜设置过大,否则可能会遗漏在一段较短时长内场景变化又变回的情况。

由于获取到每一帧视频帧的时间各不相同,因此根据获取时间或时钟信号等为视频帧添加时间标识,各视频帧的时间标识所包含的时刻各不相同。音频帧则是与同步的视频帧具有同样的时间标识,因此各音频帧的时间标识所包含的时刻也各不相同。具体的,时间标识可以是时间戳。时间戳(timestamp)是能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

可以理解的是,也可以是先在视频帧和音频帧中添加时间标识,然后再判断两帧视频帧图像的场景变化程度是否超出场景变化阈值,两者的执行顺序并无强制性要求。

步骤200,对当前视频帧及获取到的相应音频帧分别进行数据分包,并依据场景变化程度是否超过预设的场景变化阈值的判断结果,在每个视频数据包和音频数据包中添加相应的场景标记。

在判断出视频帧vn的画面和视频帧vn-1的画面是否有显著变化之后,将视频帧vn以及与其对应的音频帧an分别进行数据分包。

在将视频帧vn和音频帧an进行数据分包后,得到多个视频数据包和多个音频数据包,在每个视频数据包和每个音频数据包中都添加场景标记。若视频帧vn的场景相对于视频帧vn-1有显著变化,则在视频帧vn的数据包中添加的场景标记和在视频帧vn-1的数据包中添加的场景标记不同,若视频帧vn的场景相对于视频帧vn-1无显著变化,则在视频帧vn的数据包和视频帧vn-1的数据包中添加相同的场景标记。音频帧的场景标记依据视频帧而来,同一时刻的视频帧与音频帧的场景标记相同。

需要说明的是,携带有时间标识的视频帧和音频帧在数据分包之后,各数据包依旧携带有时间标识。

步骤300,缓冲视频数据包和音频数据包,依据场景标记调整视频数据包和音频数据包的发送优先级,并依照发送优先级发出视频数据包和音频数据包。

在将视频帧vn和音频帧an分别进行数据分包之后,将视频数据包发送至发送缓冲池的视频发送缓冲区内,将音频数据包发送至发送缓冲池的音频发送缓冲区。

在视频数据包和音频数据包被发送至发送缓冲池后,需要对当前视频帧的数据包的场景标记与前一视频帧的数据包的场景标记进行检测,场景标记相同则表示当前视频数据包所属的视频帧和前一视频数据包所属的视频帧为同场景,场景标记不同则为不同场景。

在当前视频帧与前一视频帧为同场景的情况下,将音频数据包的发送优先级调整为高于视频数据包的发送优先级,使得在发送数据的带宽分配中,音频数据包占用的带宽适当增多。由于音频数据包的发送占比提高,接收方(观看方)接收到的音频数据包占比也会提高,音频数据会比视频数据提前缓冲完毕并播放出来,使得网络直播时,例如演唱会现场直播时,歌手的歌声能尽量保持连续,保证接收方能够最大程度上不中断、不漏掉演唱的重点内容。

在当前视频帧与前一视频帧为不同场景的情况下,将视频数据包的发送优先级调整为高于或等于音频数据包的发送优先级,使得在发送数据的带宽分配中,视频数据包占用的带宽适当增多。由于视频数据包的发送占比提高,接收方(观看方)接收到的视频数据包占比也会提高,视频数据会比音频数据提前缓冲完毕并播放出来,使得演唱会的画面能尽量保持连续,保证接收方能够最大程度上不中断、不漏掉演唱的重点内容。

在整个网络直播的过程中,无论网络环境的好坏,发送缓冲池内的数据包总是在根据场景标记判断出同场景或不同场景并调解优先级之后再将数据包根据优先级发出。

步骤400,接收方依据场景标记缓冲接收到的视频数据包和音频数据包,以实现音视频数据播放,并且依据各数据包携带的时间标识以及预设的时长阈值,限制发送优先级高的数据超前于发送优先级低的数据播放的时长。

发送方将在发送缓冲池内缓冲完毕的数据发出,接收方接收到发送方发出的视频数据包和音频数据包,并依据数据包携带的场景标记以及包头等数据来对数据包进行识别、缓冲,同时接收缓冲池在接收到数据包之后,还对当前视频帧的数据包的场景标记与前一视频帧的数据包的场景标记进行检测,以判断相邻视频帧是否属于同一场景。场景标记相同则表示当前视频帧和前一视频帧为同场景,场景标记不同则为不同场景。在数据缓冲完成之后,需要对音视频播放的时间差进行判断,防止音频或视频超前另一方过多。在数据缓冲完毕后解码并播放音视频内容,实现网络视频直播的目的。

在发送方优先发送优先级高的数据包时,例如,发送方持续优先发送音频数据包时,若网络状况不好,则接收方播放的音频会超前于视频,而若网络状况长时间处于不好的状态,则为了避免播放的音频超前于视频过多,在播放音频之前,还需对音频数据包的时间标识进行检测,若接收缓冲池中即将播放的音频数据包的时间标识为tn,视频数据包的时间标识也为tn,则表明音、视频数据包同步播放,音、视频之间不存在时间差。

若接收缓冲池中即将播放的音频数据包的时间标识为tn+10,视频数据包的时间标识也为tn,则音频超前了视频10个单位的时间差,相当于超前了10帧。此时就需要将超前的帧数和预设的时长阈值进行比较,若时长阈值为20,则超前的帧数并未超过时长阈值,因此允许继续超前播放音频,而视频则由于数据包在网络中传输不畅而只能以卡顿状态播放。若时长阈值为10帧,则超前的帧数已经达到时长阈值的限制,此时不能再持续地超前播放音频而不播放视频,即不能在扩大音画不同步的时间差,而是需要放弃视频落后于音频部分的内容,待视频数据缓冲到tn+10时,音、视频均直接从时间标识为tn+10的位置开始播放。

若在上述音频超前播放的过程中,接收方检测到接收到的音、视频数据包的场景标记有变化,则表示该帧的画面场景与前一帧不同,此时视频播放可能会赶上一部分被音频超前的部分,再之后的场景又不再变化,则音频可能会继续加大超前于视频的长度。

若在音频超前视频播放并且未超过时长阈值时,网络状态由坏变好,音、视频数据包均能正常接收并流畅缓冲,则可以放弃视频落后于音频部分的内容,并同步播放时间标识相同的音、视频数据,此时音、视频之间的时间差为零。

在一种实施方式中,时长阈值可变,其依据场景标记进行调节。

用于判断超前播放的数据包的超前量超出设定值的时长阈值是可调节的,具体依据接收到的数据包的场景标记进行调节。

若接收缓冲池接收到的当前视频帧数据包的场景标记与前一视频帧数据包的场景标记相同,即未发生场景变化,此时发送方会多发出音频数据,则时长阈值可以适当变大,以使接收缓冲池在迟迟接收不到完整的视频帧时,允许音频多超前播放一些。

若接收缓冲池接收到的当前视频帧数据包的场景标记与前一视频帧数据包的场景标记不同,即发生了场景变化,此时发送方会多发出视频数据,则时长阈值可以适当变小,以使音频不要超出视频过多,音、视频能够尽量同步播出。

在一种实施方式中,步骤100中获取到的视频帧和获取到的音频帧通过实时录制的音视频进行编码得到。

作为原始数据的各个视频帧和音频帧,其通常是由音视频文件编码得到的。音视频文件是现场通过摄像头等录制设备实时录制的。

在一种实施方式中,音视频的编码方式依据网络状态确定。

编码方式包括视频码率、视频分辨率、视频帧率、音频码率、音频采样率等参数。可以理解的是,在网络状态不好的时候,编码时采用的码率、分辨率、帧率、采样率等会设置的相对低一些,以压缩、减小数据量,使得接收方在能够准确接收到网络直播内容的同时降低对网速的要求,以保证数据的正常传输。在网络状态良好的时候,编码时采用的码率、分辨率、帧率、采样率等可以设置的正常或高一些,以提高观看方的观看体验。

在一种实施方式中,通过帧间差分法和/或背景差分法判断场景变化程度是否超过预设的场景变化阈值。

在一种实施方式中,接收方的缓冲大小可变,其依据场景标记进行调节。

在对接收到的音、视频数据包进行缓冲、解码的过程中,会对音、视频数据包携带的场景标记进行检测。若检测到数据包携带的场景标记相同,则表示两帧视频帧的画面场景没有显著变化,此时可以适当减小接收缓冲池的缓冲容量,在网络状况不好的情况下,适当减小接收缓冲池的缓冲容量可以尽快播放出音频内容,减少直播过程中的卡顿现象。

若检测到数据包携带的场景标记不同,则表示两帧视频帧的画面场景存在显著变化,此时可以适当增大接收缓冲池的缓冲容量,在网络状况不好的情况下,适当增加接收缓冲池的缓冲容量,可以防止发生缓冲完只够播放例如不到一秒的视频就立即播放,以减少直播过程中的卡顿感。

在一种实施方式中,发送方发出数据包之后,等待接收方反馈的确认信号,在收到所述确认信号后删除缓冲区内相应的数据包,发送方在超过设定时间未接收到确认信号时,自动重新发出数据包。

下面参考图3详细描述本发明提供的用于网络视频直播的媒体低延时通信系统的第一实施例。本实施例为实施前述方法第一实施例的系统,该系统主要应用于网络视频直播,能够对发送方发出的包含网络直播内容的音视频中视频的内容进行判断,来调整视频传输和音频传输的优先级,以在网络通信有延时或不稳定时优先发送重要数据,降低网络延时产生的干扰,保证接收方能够最大程度上不中断、不漏掉网络直播的重点内容。

如图3所示,本实施例提供的媒体低延时通信系统包括:

场景判断模块,用于判断获取到的当前视频帧图像与前一视频帧图像之间的场景变化程度是否超过预设的场景变化阈值。若超过场景变化阈值则判定为两帧场景不同,未超过场景变化阈值则判定为两帧场景相同。

数据分包模块,用于对经过场景判断模块判断的当前视频帧及获取到的相应音频帧分别进行数据分包。

场景标识模块,其与场景判断模块连接,用于在数据分包之后,依据场景变化程度是否超过预设的场景变化阈值的判断结果,在每个视频数据包和音频数据包中添加相应的场景标记。若场景判断模块判定两帧的场景相同,则数据包中添加的场景标记相同,若场景判断模块判定两帧的场景不同,则数据包中添加的场景标记不同。

发送缓冲模块,用于在添加相应场景标记后,缓冲视频数据包和音频数据包,依据场景标记调整视频数据包和音频数据包的发送优先级,并依照发送优先级发出视频数据包和音频数据包。发送缓冲模块包括用于缓冲视频数据包和音频数据包的发送缓冲池。若两帧的场景标记相同,则判定音频数据的优先级高,此时发送缓冲模块的发送带宽中音频数据的占比提高,在发送数据包时,音频数据包的发送量相对增多。若两帧的场景标记不同,则判定视频数据的优先级高,此时发送缓冲模块的发送带宽中视频数据的占比提高,在发送数据包时,音频数据包的发送量相对增多。

接收缓冲模块,其与接收方的播放端连接,用于接收发送缓冲模块发出的视频数据包和音频数据包,并依据场景标记缓冲接收到的视频数据包和音频数据包,以实现音视频数据播放。接收缓冲模块包括用于缓冲视频数据包和音频数据包的接收缓冲池。若音频数据包的优先级高,则接收缓冲模块会提前缓冲完成并提前播放音频,使得在网络状况不好并且同场景时,优先播放音频。若视频数据包的优先级高,则接收缓冲模块会提前缓冲完成并提前播放视频,使得在网络状况不好并且不同场景时,优先播放视频。

图3中,虚线上方为发送侧,虚线下方为接收侧。

在一种实施方式中,该系统还包括:编码录制模块,其与录像设备连接,用于实时录制的音视频并对其进行编码得到获取到的视频帧和获取到的音频帧。

在一种实施方式中,场景判断模块包括:第一判断单元和/或第二判断单元,第一判断单元用于通过帧间差分法判断场景变化程度是否超过预设的场景变化阈值,第二判断单元用于通过背景差分法判断场景变化程度是否超过预设的场景变化阈值。

在一种实施方式中,发送缓冲模块包括:第一调节单元,用于依据场景标记调节发送缓冲模块的缓冲大小。第一调节单元与发送缓冲池连接。在两帧视频帧同场景时,第一调节单元可以将发送缓冲模块的缓冲大小适当调小,在两帧视频帧不同场景时,第一调节单元可以将发送缓冲模块的缓冲大小适当调大。

下面参考图4详细描述本发明提供的用于网络视频直播的媒体低延时通信系统的第二实施例。本实施例为实施前述方法第二实施例的系统,该系统能够对发送方发出的包含网络直播内容的音视频中视频的内容进行判断,来调整视频传输和音频传输的优先级,以在网络通信有延时或不稳定时优先发送重要数据,降低网络延时产生的干扰,保证接收方能够最大程度上不中断、不漏掉网络直播的重点内容。同时通过音视频数据内添加时间标识来限制暂缓发送的数据包被暂缓的时长,防止优先级低的数据包落后太多。

如图4所示,本实施例提供的媒体低延时通信系统包括:

场景判断模块,用于判断获取到的当前视频帧图像与前一视频帧图像之间的场景变化程度是否超过预设的场景变化阈值。若超过场景变化阈值则判定为两帧场景不同,未超过场景变化阈值则判定为两帧场景相同。

时间标识模块,用于在数据分包之前,在每一帧视频帧和音频帧中添加相应的时间标识,时间标识可以采用时间戳。

数据分包模块,用于对经过场景判断模块判断的当前视频帧及获取到的相应音频帧分别进行数据分包。

场景标识模块,其与场景判断模块连接,用于在数据分包之后,依据场景变化程度是否超过预设的场景变化阈值的判断结果,在每个视频数据包和音频数据包中添加相应的场景标记。若场景判断模块判定两帧的场景相同,则数据包中添加的场景标记相同,若场景判断模块判定两帧的场景不同,则数据包中添加的场景标记不同。

发送缓冲模块,用于在添加相应场景标记后,缓冲视频数据包和音频数据包,依据场景标记调整视频数据包和音频数据包的发送优先级,并依照发送优先级发出视频数据包和音频数据包。发送缓冲模块包括用于缓冲视频数据包和音频数据包的发送缓冲池。若两帧的场景标记相同,则判定音频数据的优先级高,此时发送缓冲模块的发送带宽中音频数据的占比提高,在发送数据包时,音频数据包的发送量相对增多。若两帧的场景标记不同,则判定视频数据的优先级高,此时发送缓冲模块的发送带宽中视频数据的占比提高,在发送数据包时,音频数据包的发送量相对增多。

接收缓冲模块,其与接收方的播放端连接,用于接收发送缓冲模块发出的视频数据包和音频数据包,并依据场景标记缓冲接收到的视频数据包和音频数据包,以实现音视频数据播放。接收缓冲模块包括用于缓冲视频数据包和音频数据包的接收缓冲池。

时差调节模块,其与接收缓冲模块连接,用于在接收缓冲模块缓冲数据包之后,依据各数据包携带的时间标识以及预设的时长阈值,限制发送优先级高的数据超前于发送优先级低的数据播放的时长,防止优先级低的数据包落后太多。

图4中,虚线上方为发送侧,虚线下方为接收侧。

在一种实施方式中,时长阈值可变,时差调节模块依据场景标记对时长阈值进行调节。在接收缓冲模块中的两帧视频帧为同场景时,时差调节模块可以将时长阈值适当调大,在接收缓冲模块中的两帧视频帧为不同场景时,时差调节模块可以将时长阈值适当调小。

在一种实施方式中,该系统还包括:编码录制模块,其与录像设备连接,用于实时录制的音视频并对其进行编码得到获取到的视频帧和获取到的音频帧。

在一种实施方式中,场景判断模块包括:第一判断单元和/或第二判断单元,第一判断单元用于通过帧间差分法判断场景变化程度是否超过预设的场景变化阈值,第二判断单元用于通过背景差分法判断场景变化程度是否超过预设的场景变化阈值。

在一种实施方式中,发送缓冲模块包括:第一调节单元,用于依据场景标记调节发送缓冲模块的缓冲大小。第一调节单元与发送缓冲池连接。在两帧视频帧同场景时,第一调节单元可以将发送缓冲模块的缓冲大小适当调小,在两帧视频帧不同场景时,第一调节单元可以将发送缓冲模块的缓冲大小适当调大。

本实施例的场景判断模块、数据分包模块、场景标识模块、发送缓冲模块、接收缓冲模块、编码录制模块等部件的具体设置均可参照前述系统第一实施例所描述的结构设置,不再一一赘述。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1