CN114615549B - 流媒体seek方法、客户端、存储介质和移动设备 - Google Patents
流媒体seek方法、客户端、存储介质和移动设备 Download PDFInfo
- Publication number
- CN114615549B CN114615549B CN202210506681.3A CN202210506681A CN114615549B CN 114615549 B CN114615549 B CN 114615549B CN 202210506681 A CN202210506681 A CN 202210506681A CN 114615549 B CN114615549 B CN 114615549B
- Authority
- CN
- China
- Prior art keywords
- layer unit
- image frame
- code
- character code
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000000605 extraction Methods 0.000 claims abstract description 70
- 238000009877 rendering Methods 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 description 3
- 101100533821 Arabidopsis thaliana FSD1 gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 101150018269 sodB gene Proteins 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种流媒体seek方法、客户端、存储介质和移动设备,该方法为:在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型;将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元;按照解码次序由前到后的顺序,依次对各个有效网络提取层单元进行解码,得到图像帧队列;对图像帧队列中各个图像帧进行渲染,得到目标视频画面。该方法针对有效网络提取层单元进行解码,不对无效网络提取层单元进行解码,可有效减少解码的执行次数,提高图像组数据的解码效率,使得seek的响应速度得到提高。
Description
技术领域
本申请涉及流媒体技术领域,尤其涉及一种流媒体seek方法、客户端、存储介质和移动设备。
背景技术
随着流媒体技术的发展,市面上常见的视频网站的流媒体音视频点播技术,可以概括为:客户端播放器(本申请简称为客户端)向流媒体服务端(本申请简称为服务端)发送网络请求,从服务端中获取视频流,并对视频流进行解码,得到可供屏幕显示的视频画面。服务端提前对视频数据进行编码,得到二进制的视频流,并将视频流保存到数据库中,而后再由客户端从数据库中下载视频流进行解码,实现流媒体视频播放。
在流媒体播放过程中,用户通过拖动客户端上所显示的视频播放进度条,跳过部分视频片段,触发客户端以指定时间点作为开始播放位置进行视频播放,并触发屏幕显示与指定时间点对应的视频画面供用户预览,这一操作过程称之为seek。
然而,现有的seek方式的响应速度较慢,用户需等待较长时间,才能从客户端中观看到视频画面。
发明内容
本申请提供了一种流媒体seek方法、客户端、存储介质和移动设备,目的在于提高seek的响应速度,以减少用户的等待时间,提高用户观看体验。
为了实现上述目的,本申请提供了以下技术方案:
一种流媒体seek方法,包括:
在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;所述目标图像帧包括:用于渲染所述seek命令所示视频画面的图像帧;所述图像组数据包括网络提取层单元序列;所述网络提取层单元序列包括多个网络提取层单元,以及各个所述网络提取层单元的解码次序;所述网络提取层单元包括头部信息和切片;所述切片包括用于渲染视频画面的图像帧;
基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型;
将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元;
按照解码次序由前到后的顺序,依次对所述网络提取层单元序列中各个所述有效网络提取层单元进行解码,得到图像帧队列;
对所述图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向所述用户显示所述目标视频画面。
可选的,所述基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型,包括:
对于每个所述网络提取层单元,对所述网络提取层单元的头部信息进行解析,得到字符编码;
将所述字符编码与第一预设编码进行按位与操作,得到目标字符编码;
在所述目标字符编码等于第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为关键帧。
可选的,所述网络提取层单元还包括起始标识符;
所述对所述网络提取层单元的头部信息进行解析,得到字符编码,包括:
判断所述网络提取层单元的起始标识符是否为预设二进制码;
在所述网络提取层单元的起始标识符为所述预设二进制码的情况下,对所述网络提取层单元的头部信息进行解析,得到字符编码。
可选的,所述判断所述网络提取层单元的起始标识符是否为预设二进制码之后,还包括:
在所述网络提取层单元的起始标识符不为所述预设二进制码的情况下,将所述网络提取层单元标识为无效网络提取层单元。
可选的,所述将所述字符编码与第一预设编码进行按位与操作,得到目标字符编码之后,还包括:
在所述目标字符编码不等于所述第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非关键帧,并判断所述目标字符编码是否等于第三预设编码;
在所述目标字符编码等于所述第三预设编码的情况下,将所述字符编码与第四预设编码进行按位与操作,得到新目标字符编码;
判断所述新目标字符编码是否等于第五预设编码;
在所述新目标字符编码等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非参考帧。
可选的,所述判断所述目标字符编码是否等于第三预设编码之后,还包括:
在所述目标字符编码不等于所述第三预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为参考帧。
可选的,所述判断所述新目标字符编码是否等于第五预设编码之后,还包括:
在所述新目标字符编码不等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为参考帧。
一种客户端,包括:
获取模块,用于在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;所述目标图像帧包括:用于渲染所述seek命令所示视频画面的图像帧;所述图像组数据包括网络提取层单元序列;所述网络提取层单元序列包括多个网络提取层单元,以及各个所述网络提取层单元的解码次序;所述网络提取层单元包括头部信息和切片;所述切片包括用于渲染视频画面的图像帧;
确定模块,用于基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型;
标识模块,用于将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元;
解码模块,用于按照解码次序由前到后的顺序,依次对所述网络提取层单元序列中各个所述有效网络提取层单元进行解码,得到图像帧队列;
渲染模块,用于对所述图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向所述用户显示所述目标视频画面。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任一所述的流媒体seek方法。
一种移动设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的流媒体seek方法。
本申请提供的技术方案,在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据。基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型。将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元。按照解码次序由前到后的顺序,依次对网络提取层单元序列中各个有效网络提取层单元进行解码,得到图像帧队列。对图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向用户显示目标视频画面。基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型,并将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元,在对图像组数据进行解码的过程中,只针对有效网络提取层单元进行解码,不对无效网络提取层单元进行解码,可有效减少解码的执行次数,提高图像组数据的解码效率,使得seek的响应速度得到有效提高,缩短用户的等待时间,提高用户观看体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种流媒体seek方法的流程示意图;
图1b为本申请实施例提供的一种流媒体seek方法的流程示意图;
图2为本申请实施例提供的另一种流媒体seek方法的流程示意图;
图3为本申请实施例提供的一种客户端的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,对视频数据进行编码,实质就是对各个图像帧进行编码,对各个图像帧进行编码所得到的视频流,该视频流所采用的编码格式为H264。由H264编码原理可知,对图像帧进行编码所得到的编码数据,通常称之为数据比特串(SODB)。
在编码得到各个NAL后,为了便于网络传输,还需对各个VCL进行压缩得到二进制的视频流,具体的,对VCL进行压缩所得到的压缩数据,通常称之为网络提取层单元(Network Abstraction Layer Unit,NALU)。
其中,NALU包括起始标识符(用于与其他NALU间隔开来,通常可设为00000001的二进制码)、头部信息(NALU header)和切片(slice)。
头部信息用于指示NALU的类型和重要性,NALU的类型包括但不限于为序列参数集(SPS)、图像参数集(PPS)、I帧、P帧、B帧中的任意一种。
需要说明的是,SPS、PPS、I帧、P帧、B帧均为本领域技术人员所熟悉的技术用语,具体的含义可参见如下所示:
SPS用于记录视频流的所有信息(例如图像尺寸、视频格式等);
PPS用于记录切片信息(例如切片所属图像帧的图像类型、序号等);
I帧为一种自带全部信息的独立帧,无需参考其它图像帧便可独立进行解码,可以理解为这一帧画面的完整保留,且解码时只需要本帧数据就可以完成(因为包含完整视频画面);
P帧为帧间预测编码帧,需要参考前面的I帧或P帧的不同部分才能进行编码;
B帧为双向差别帧,也即是B帧记录的是本帧与前后帧的差别,B帧是由前面的I帧或P帧和后面的P帧来进行预测。
一般来讲,头部信息占用1个字节(即8个比特位),且二进制码的比特位结构为forbidden_bit(1bit)+nal_reference_bit(2bit)+nal_unit_type(5bit)。
具体的,forbidden_bit代表禁止位,占用1个比特位(即第一位比特),初始为0,当网络发现NALU比特错误时可将该比特设为1,以便接收方纠错或丢掉该NALU。
nal_reference_bit代表NALU的重要性,占用2个比特位(即第二位比特和第三为比特),nal_reference_bit的值越大,则代表NALU越重要(即重要性的值越大)。
nal_unit_type代表NALU的类型,占用5个比特位(即后5位比特)。
切片包括视频数据载荷(RBSP),RBSP包括SODB和预设结尾比特。
在流媒体播放领域中,服务端向客户端发送视频流,并不是一次性发送的,具体的,服务端预先将视频流拆分为多个图像组(Group of Pictures,GOP)数据,每个GOP数据均包括同等数据长度的NALU序列。客户端按照预设顺序向服务端依次发送多个网络请求,服务端按照预设顺序将与每个网络请求对应的GOP数据依次发送给客户端。客户端按照预设顺序将各个GOP数据依次保存到缓存队列,并按照预设顺序依次对缓存队列中的各个GOP数据进行解码,得到各个图像帧,并对各个图像帧进行渲染,得到与每个图像帧对应的视频画面,再触发屏幕按照预设顺序播放各个视频画面,实现流媒体视频播放。
一般来讲,在用户拖动视频的进度条开始到拖动结束过程中,客户端依旧经历向服务端发送网络请求、将GOP数据保存到缓存队列、对GOP数据进行解码、对视频数据进行渲染等过程。
在实际应用中,发送网络请求、将GOP数据保存到缓存队列、对视频数据进行渲染等过程的处理效率,仅仅受限于客户端所属设备的硬件性能以及网络通信性能。然而,GOP数据的解码过程,可以通过软件实力改进,进一步提高解码效率,降低解码过程所消耗的时间,以使seek操作的响应速度提高。
为此,本申请提供一种流媒体seek方法,用于提高图像组数据的解码效率,以使seek操作的响应速度提高。
如图1a和图1b所示,为本申请实施例提供的一种流媒体seek方法的流程示意图,应用于客户端,包括如下步骤:
S101:在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的GOP数据。
其中,目标图像帧包括用于渲染seek命令所示视频画面的图像帧,GOP数据包括NALU序列,NALU序列包括多个NALU,以及各个NALU的解码次序。
需要说明的是,预设缓存队列用于缓存服务端向客户端发送的视频流,视频流包括视频的所有GOP数据。基于现有的流媒体技术可知,客户端是一边从服务端下载GOP数据,一边解码GOP数据,并且每当某个GOP数据解码结束之后,便接着从预设缓存队列中获取位于某个GOP数据之后的GOP数据进行解码。
因此,客户端执行seek命令,实际就是跳过部分GOP数据的解码,直接对目标GOP数据进行解码,并在目标GOP数据解码结束之后,从预设缓存队列中获取位于目标GOP数据之后的GOP数据进行解码。要想提高seek命令的响应速度,就需要提高目标GOP数据的解码效率。
S102:按照解码次序由前至后的顺序,读取NALU序列中的各个NALU,得到每个NALU的起始标识符、头部信息和切片。
其中,切片包括用于渲染视频画面的图像帧。
S103:对于每个NALU,判断NALU的起始标识符是否为预设二进制码。
若NALU的起始标识符为预设二进制码,则执行S104,否则执行S105。
其中,预设二进制码可以为00000001。
S104:对NALU的头部信息进行解析,得到字符编码。
在执行S104之后,继续执行S106。
其中,所谓的字符编码通常为十六进制的编码,例如0067。
S105:将NALU标识为无效NALU。
S106:将字符编码与第一预设编码进行按位与操作,得到目标字符编码。
其中,第一预设编码可以设为0x1F。
S107:判断目标字符编码是否等于第二预设编码。
若目标字符编码等于第二预设编码,则执行S108,否则执行S109。
其中,第二预设编码可以设为0x07。
S108:确定NALU所包含的图像帧的类型为关键帧,并将NALU标识为有效NALU。
其中,所谓的关键帧,即客户端渲染视频画面时不可缺少的图像帧,通常来讲,目标字符编码等于第二预设编码,则确定NALU的类型为I帧,I帧通常是视频画面渲染过程中不可缺少的图像帧,一般都将I帧视为关键帧。
S109:确定NALU所包含的图像帧的类型为非关键帧,并判断目标字符编码是否等于第三预设编码。
若目标字符编码等于第三预设编码,则执行S110,否则执行S113。
其中,第三预设编码可以设为0x01。
S110:将字符编码与第四预设编码进行按位与操作,得到新目标字符编码。
其中,第四预设编码可以设为0x60。
S111:判断新目标字符编码是否等于第五预设编码。
若新目标字符编码等于第五预设编码,则执行S112,否则执行S113。
其中,第五预设编码可以设为0x00。
S112:确定NALU所包含的图像帧的类型为非参考帧,并将NALU标识为无效NALU。
其中,所谓的非参考帧,即客户端解码其他NALU的切片时无需参照的图像帧。一般来讲,类型为B帧、且重要度为0的NALU,其切片所包含的图像帧通常为非参考帧。
S113:确定NALU所包含的图像帧的类型为参考帧,并将NALU标识为有效NALU。
其中,所谓的参考帧,即客户端解码其他NALU的切片时所需参照的图像帧。一般来讲,类型为P帧的NALU,其切片所包含的图像帧通常为参考帧。除此之外,类型为B帧、且重要度非0的NALU,其切片所包含的图像帧通常也为参考帧。
S114:按照解码次序由前到后的顺序,依次对NALU序列中各个有效NALU进行解码,得到图像帧队列。
S115:对图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向用户显示目标视频画面。
综上所述,基于每个NALU的头部信息,确定每个NALU所包含的图像帧的类型,并将图像帧的类型为关键帧以及参考帧的NALU,标识为有效NALU,在对GOP数据进行解码的过程中,只针对有效NALU进行解码,不对无效NALU进行解码,可有效减少解码的执行次数,提高GOP数据的解码效率,使得seek的响应速度得到有效提高,缩短用户的等待时间,提高用户观看体验。
需要说明的是,上述实施例提及的S111,为本申请所述流媒体seek方法的一种可选的实现方式。此外,上述实施例提及的S113,也为本申请所述流媒体seek方法的一种可选的实现方式。为此,上述实施例提及的流程,可以概括为图2所述的方法。
如图2所示,为本申请实施例提供的另一种流媒体seek方法的流程示意图,应用于客户端,包括如下步骤:
S201:在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据。
其中,目标图像帧包括:用于渲染seek命令所示视频画面的图像帧;图像组数据包括网络提取层单元序列;网络提取层单元序列包括多个网络提取层单元,以及各个网络提取层单元的解码次序;网络提取层单元包括头部信息和切片;切片包括用于渲染视频画面的图像帧。
S202:基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型。
S203:将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元。
S204:按照解码次序由前到后的顺序,依次对网络提取层单元序列中各个有效网络提取层单元进行解码,得到图像帧队列。
S205:对图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向用户显示目标视频画面。
综上所述,基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型,并将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元,在对图像组数据进行解码的过程中,只针对有效网络提取层单元进行解码,不对无效网络提取层单元进行解码,可有效减少解码的执行次数,提高图像组数据的解码效率,使得seek的响应速度得到有效提高,缩短用户的等待时间,提高用户观看体验。
与上述本申请实施例提供的流媒体seek方法相对应,本申请实施例还提供了一种客户端。
如图3所示,为本申请实施例提供的一种客户端的架构示意图,包括:
获取模块100,用于在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;目标图像帧包括:用于渲染seek命令所示视频画面的图像帧;图像组数据包括网络提取层单元序列;网络提取层单元序列包括多个网络提取层单元,以及各个网络提取层单元的解码次序;网络提取层单元包括起始标识符、头部信息和切片;切片包括用于渲染视频画面的图像帧。
确定模块200,用于基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型。
可选的,确定模块200具体用于:对于每个网络提取层单元,对网络提取层单元的头部信息进行解析,得到字符编码;将字符编码与第一预设编码进行按位与操作,得到目标字符编码;在目标字符编码等于第二预设编码的情况下,确定网络提取层单元所包含的图像帧的类型为关键帧。
确定模块200具体用于:判断网络提取层单元的起始标识符是否为预设二进制码;在网络提取层单元的起始标识符为预设二进制码的情况下,对网络提取层单元的头部信息进行解析,得到字符编码。
确定模块200还用于:在网络提取层单元的起始标识符不为预设二进制码的情况下,将网络提取层单元标识为无效网络提取层单元。
确定模块200还用于:在目标字符编码不等于第二预设编码的情况下,确定网络提取层单元所包含的图像帧的类型为非关键帧,并判断目标字符编码是否等于第三预设编码;在目标字符编码等于第三预设编码的情况下,将字符编码与第四预设编码进行按位与操作,得到新目标字符编码;判断新目标字符编码是否等于第五预设编码;在新目标字符编码等于第五预设编码的情况下,确定网络提取层单元所包含的图像帧的类型为非参考帧。
确定模块200还用于:在目标字符编码不等于第三预设编码的情况下,确定网络提取层单元所包含的图像帧的类型为参考帧。
确定模块200还用于:在新目标字符编码不等于第五预设编码的情况下,确定网络提取层单元所包含的图像帧的类型为参考帧。
标识模块300,用于将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元。
解码模块400,用于按照解码次序由前到后的顺序,依次对网络提取层单元序列中各个有效网络提取层单元进行解码,得到图像帧队列。
渲染模块500,用于对图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向用户显示目标视频画面。
综上所述,基于每个网络提取层单元的头部信息,确定每个网络提取层单元所包含的图像帧的类型,并将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元,在对图像组数据进行解码的过程中,只针对有效网络提取层单元进行解码,不对无效网络提取层单元进行解码,可有效减少解码的执行次数,提高图像组数据的解码效率,使得seek的响应速度得到有效提高,缩短用户的等待时间,提高用户观看体验。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的流媒体seek方法。
本申请还提供了一种移动设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的流媒体seek方法,包括如下步骤:
在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;所述目标图像帧包括:用于渲染所述seek命令所示视频画面的图像帧;所述图像组数据包括网络提取层单元序列;所述网络提取层单元序列包括多个网络提取层单元,以及各个所述网络提取层单元的解码次序;所述网络提取层单元包括头部信息和切片;所述切片包括用于渲染视频画面的图像帧;
基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型;
将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元;
按照解码次序由前到后的顺序,依次对所述网络提取层单元序列中各个所述有效网络提取层单元进行解码,得到图像帧队列;
对所述图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向所述用户显示所述目标视频画面。
具体的,在上述实施例的基础上,所述基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型,包括:
对于每个所述网络提取层单元,对所述网络提取层单元的头部信息进行解析,得到字符编码;
将所述字符编码与第一预设编码进行按位与操作,得到目标字符编码;
在所述目标字符编码等于第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为关键帧。
具体的,在上述实施例的基础上,所述网络提取层单元还包括起始标识符;
所述对所述网络提取层单元的头部信息进行解析,得到字符编码,包括:
判断所述网络提取层单元的起始标识符是否为预设二进制码;
在所述网络提取层单元的起始标识符为所述预设二进制码的情况下,对所述网络提取层单元的头部信息进行解析,得到字符编码。
具体的,在上述实施例的基础上,所述判断所述网络提取层单元的起始标识符是否为预设二进制码之后,还包括:
在所述网络提取层单元的起始标识符不为所述预设二进制码的情况下,将所述网络提取层单元标识为无效网络提取层单元。
具体的,在上述实施例的基础上,所述将所述字符编码与第一预设编码进行按位与操作,得到目标字符编码之后,还包括:
在所述目标字符编码不等于所述第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非关键帧,并判断所述目标字符编码是否等于第三预设编码;
在所述目标字符编码等于所述第三预设编码的情况下,将所述字符编码与第四预设编码进行按位与操作,得到新目标字符编码;
判断所述新目标字符编码是否等于第五预设编码;
在所述新目标字符编码等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非参考帧。
具体的,在上述实施例的基础上,所述判断所述目标字符编码是否等于第三预设编码之后,还包括:
在所述目标字符编码不等于所述第三预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为参考帧。
具体的,在上述实施例的基础上,所述判断所述新目标字符编码是否等于第五预设编码之后,还包括:
在所述新目标字符编码不等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为参考帧。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种流媒体seek方法,其特征在于,包括:
在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;所述目标图像帧包括:用于渲染所述seek命令所示视频画面的图像帧;所述图像组数据包括网络提取层单元序列;所述网络提取层单元序列包括多个网络提取层单元,以及各个所述网络提取层单元的解码次序;所述网络提取层单元包括头部信息和切片;所述切片包括用于渲染视频画面的图像帧;
基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型;
将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元;
按照解码次序由前到后的顺序,依次对所述网络提取层单元序列中各个所述有效网络提取层单元进行解码,得到图像帧队列;
对所述图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向所述用户显示所述目标视频画面;
其中,所述基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型,包括:
对于每个所述网络提取层单元,对所述网络提取层单元的头部信息进行解析,得到字符编码;
将所述字符编码与第一预设编码进行按位与操作,得到目标字符编码;
在所述目标字符编码等于第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为关键帧;
在所述目标字符编码不等于所述第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非关键帧,并判断所述目标字符编码是否等于第三预设编码;
在所述目标字符编码等于所述第三预设编码的情况下,将所述字符编码与第四预设编码进行按位与操作,得到新目标字符编码;
判断所述新目标字符编码是否等于第五预设编码;
在所述新目标字符编码等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非参考帧。
2.根据权利要求1所述的方法,其特征在于,所述网络提取层单元还包括起始标识符;
所述对所述网络提取层单元的头部信息进行解析,得到字符编码,包括:
判断所述网络提取层单元的起始标识符是否为预设二进制码;
在所述网络提取层单元的起始标识符为所述预设二进制码的情况下,对所述网络提取层单元的头部信息进行解析,得到字符编码。
3.根据权利要求2所述的方法,其特征在于,所述判断所述网络提取层单元的起始标识符是否为预设二进制码之后,还包括:
在所述网络提取层单元的起始标识符不为所述预设二进制码的情况下,将所述网络提取层单元标识为无效网络提取层单元。
4.根据权利要求1所述的方法,其特征在于,所述判断所述目标字符编码是否等于第三预设编码之后,还包括:
在所述目标字符编码不等于所述第三预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为参考帧。
5.根据权利要求1所述的方法,其特征在于,所述判断所述新目标字符编码是否等于第五预设编码之后,还包括:
在所述新目标字符编码不等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为参考帧。
6.一种客户端,其特征在于,包括:
获取模块,用于在接收到用户的seek命令后,从预设缓存队列中获取包含目标图像帧的图像组数据;所述目标图像帧包括:用于渲染所述seek命令所示视频画面的图像帧;所述图像组数据包括网络提取层单元序列;所述网络提取层单元序列包括多个网络提取层单元,以及各个所述网络提取层单元的解码次序;所述网络提取层单元包括头部信息和切片;所述切片包括用于渲染视频画面的图像帧;
确定模块,用于基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型;
标识模块,用于将图像帧的类型为关键帧以及参考帧的网络提取层单元,标识为有效网络提取层单元;
解码模块,用于按照解码次序由前到后的顺序,依次对所述网络提取层单元序列中各个所述有效网络提取层单元进行解码,得到图像帧队列;
渲染模块,用于对所述图像帧队列中各个图像帧进行渲染,得到目标视频画面,并触发屏幕向所述用户显示所述目标视频画面;
其中,所述确定模块基于每个所述网络提取层单元的头部信息,确定每个所述网络提取层单元所包含的图像帧的类型,包括:
对于每个所述网络提取层单元,对所述网络提取层单元的头部信息进行解析,得到字符编码;
将所述字符编码与第一预设编码进行按位与操作,得到目标字符编码;
在所述目标字符编码等于第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为关键帧;
在所述目标字符编码不等于所述第二预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非关键帧,并判断所述目标字符编码是否等于第三预设编码;
在所述目标字符编码等于所述第三预设编码的情况下,将所述字符编码与第四预设编码进行按位与操作,得到新目标字符编码;
判断所述新目标字符编码是否等于第五预设编码;
在所述新目标字符编码等于所述第五预设编码的情况下,确定所述网络提取层单元所包含的图像帧的类型为非参考帧。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1-5任一所述的流媒体seek方法。
8.一种移动设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-5任一所述的流媒体seek方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210506681.3A CN114615549B (zh) | 2022-05-11 | 2022-05-11 | 流媒体seek方法、客户端、存储介质和移动设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210506681.3A CN114615549B (zh) | 2022-05-11 | 2022-05-11 | 流媒体seek方法、客户端、存储介质和移动设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114615549A CN114615549A (zh) | 2022-06-10 |
CN114615549B true CN114615549B (zh) | 2022-09-20 |
Family
ID=81869129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210506681.3A Active CN114615549B (zh) | 2022-05-11 | 2022-05-11 | 流媒体seek方法、客户端、存储介质和移动设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114615549B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863302A (zh) * | 2005-11-03 | 2006-11-15 | 华为技术有限公司 | 多媒体通信方法及其终端 |
CN106791875A (zh) * | 2016-11-30 | 2017-05-31 | 华为技术有限公司 | 视频数据解码方法、编码方法以及相关设备 |
CN107484039A (zh) * | 2017-08-22 | 2017-12-15 | 四川长虹电器股份有限公司 | 一种流媒体点播seek画面快速显示的方法 |
CN110022489A (zh) * | 2019-05-30 | 2019-07-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 视频播放方法、装置及存储介质 |
CN110636387A (zh) * | 2019-09-12 | 2019-12-31 | 广西农业职业技术学院 | 一种基于h.264网络视频传输*** |
CN113228588A (zh) * | 2018-12-27 | 2021-08-06 | 华为技术有限公司 | 关于视频译码中的帧内随机接入点图像和前置图像 |
CN113545077A (zh) * | 2019-03-12 | 2021-10-22 | 索尼集团公司 | 图像解码装置、图像解码方法、图像编码装置及图像编码方法 |
CN114073073A (zh) * | 2019-07-08 | 2022-02-18 | 华为技术有限公司 | 视频译码中的混合nal单元图像约束 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3962089A1 (en) * | 2014-06-18 | 2022-03-02 | Telefonaktiebolaget LM Ericsson (publ) | Dependent random access point pictures |
-
2022
- 2022-05-11 CN CN202210506681.3A patent/CN114615549B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863302A (zh) * | 2005-11-03 | 2006-11-15 | 华为技术有限公司 | 多媒体通信方法及其终端 |
CN106791875A (zh) * | 2016-11-30 | 2017-05-31 | 华为技术有限公司 | 视频数据解码方法、编码方法以及相关设备 |
CN107484039A (zh) * | 2017-08-22 | 2017-12-15 | 四川长虹电器股份有限公司 | 一种流媒体点播seek画面快速显示的方法 |
CN113228588A (zh) * | 2018-12-27 | 2021-08-06 | 华为技术有限公司 | 关于视频译码中的帧内随机接入点图像和前置图像 |
CN113545077A (zh) * | 2019-03-12 | 2021-10-22 | 索尼集团公司 | 图像解码装置、图像解码方法、图像编码装置及图像编码方法 |
CN110022489A (zh) * | 2019-05-30 | 2019-07-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 视频播放方法、装置及存储介质 |
CN114073073A (zh) * | 2019-07-08 | 2022-02-18 | 华为技术有限公司 | 视频译码中的混合nal单元图像约束 |
CN110636387A (zh) * | 2019-09-12 | 2019-12-31 | 广西农业职业技术学院 | 一种基于h.264网络视频传输*** |
Also Published As
Publication number | Publication date |
---|---|
CN114615549A (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200153942A1 (en) | Method and system for transmitting a data file over a data network | |
CA2965484C (en) | Adaptive bitrate streaming latency reduction | |
CN110784740A (zh) | 视频处理方法、装置、服务器及可读存储介质 | |
US8542705B2 (en) | Key frame detection and synchronization | |
WO2019062050A1 (zh) | 直播管控方法、装置及电子设备 | |
US10476928B2 (en) | Network video playback method and apparatus | |
CN110519640B (zh) | 视频处理方法、编码器、cdn服务器、解码器、设备及介质 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN106303379A (zh) | 一种视频文件逆序播放方法及*** | |
CN106791875B (zh) | 视频数据解码方法、编码方法以及相关设备 | |
CN112653904B (zh) | 一种基于pts与dts修改的快速视频裁剪方法 | |
US8300701B2 (en) | Offspeed playback in a video editing system of video data compressed using long groups of pictures | |
CN111935500B (zh) | 视频解码方法、装置及电子设备 | |
CN105379281B (zh) | 用于使用图形处理器的视频解码的图片参考控制 | |
CN114615549B (zh) | 流媒体seek方法、客户端、存储介质和移动设备 | |
US10992946B2 (en) | Coding of video and audio with initialization fragments | |
CN104980763B (zh) | 一种视频码流、视频编解码方法及装置 | |
CN115278307A (zh) | 一种视频播放方法、装置、设备和介质 | |
TWI439137B (zh) | 重建一圖像群以在該圖像群中隨機存取之方法及裝置 | |
CN113261283B (zh) | 视频处理方法、装置及计算机可读存储介质 | |
CN115379236B (zh) | 视频处理方法、装置、介质及设备 | |
CN112055231B (zh) | 视频解码方法、解码装置、解码器及电子设备 | |
US20230067994A1 (en) | Encoding and decoding video data | |
CN114584794B (zh) | 一种音视频播放方法、装置、智能机顶盒及存储介质 | |
CN117082249A (zh) | 视频编码方法、视频解码方法、编码器、解码器以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |