CN111770390B - 数据处理方法、装置、服务器及存储介质 - Google Patents

数据处理方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN111770390B
CN111770390B CN202010659502.0A CN202010659502A CN111770390B CN 111770390 B CN111770390 B CN 111770390B CN 202010659502 A CN202010659502 A CN 202010659502A CN 111770390 B CN111770390 B CN 111770390B
Authority
CN
China
Prior art keywords
data
code stream
frame
target
encoded
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
Application number
CN202010659502.0A
Other languages
English (en)
Other versions
CN111770390A (zh
Inventor
吴昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010659502.0A priority Critical patent/CN111770390B/zh
Publication of CN111770390A publication Critical patent/CN111770390A/zh
Application granted granted Critical
Publication of CN111770390B publication Critical patent/CN111770390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置、服务器及存储介质,其中方法包括:获取多媒体数据的初始码流;根据切片时长从初始码流的多个编码数据中确定出目标编码数据,并对初始码流进行重新编码,重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除目标编码数据之外的其他编码数据重新编码成帧间编码帧;对重新编码得到的目标码流进行切片处理,得到目标码流的多个分片数据,以在客户端显示多个分片数据解码得到的多媒体数据,可保证服务器在采用不同码率进行切片时,得到分片数据的一致性。

Description

数据处理方法、装置、服务器及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、服务器及存储介质。
背景技术
随着互联网技术的不断深入发展,各类应用软件不断兴起,以丰富用户的日常生活,如当前兴起的直播软件,可实现直播用户和观众用户的实时互动,提升用户的观看体验。当前直播的实现大都是采用的,服务器从直播用户对应客户端获取到多媒体数据的码流数据后,可将码流数据进行分片处理,从而将分片得到的分片数据下发到观众用户所在的客户端,观众用户对应客户端对分片数据进行解码后,可播放解码得到的多媒体数据。
由于服务器采用不同码率对多媒体数据的码流数据进行切片处理得到的分片数据是不一致的,所以,在观众用户需要切换获取不同码率切换得到的分片数据进行播放时,由于分片数据的不一致可能导致观众用户对应的客户端的多媒体播放出现画面前进或回退的问题,从而使得播放的多媒体数据不流畅的问题,所以,如何保证服务器在采用不同码率进行切片时,得到分片数据的一致性,从而使得观众用户获取不同码率对应的分片数据进行播放时的流畅度成为了当前的研究热点。
发明内容
本发明实施例提供了一种数据处理方法、装置、服务器及存储介质,可保证服务器在采用不同码率进行切片时,得到分片数据的一致性。
一方面,本发明实施例提供了一种数据处理方法,包括:
获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,并对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;
对重新编码得到的目标码流进行切片处理,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
再一方面,本发明实施例提供了一种数据处理装置,包括:
获取单元,用于获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
确定单元,用于根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据;
编码单元,用于对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;
切片单元,用于对重新编码得到的目标码流进行切片处理,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
再一方面,本发明实施例提供了一种智能终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如下步骤:
获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,并对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;
对重新编码得到的目标码流进行切片处理,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
再一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时,用于执行如第一方面所述的数据处理方法。
在本发明实施例中,服务器在获取多媒体数据的初始码流后,可根据切片时长从初始码流包括的多个编码数据中确定出目标编码数据,从而可将目标编码数据进行重新编码成帧内编码帧,并将与该目标编码数据处于同一切片时长中的其他编码数据重新编码成帧间编码帧,由于编码后的初始码流按照该切片时长进行切片时可参照的帧内编码帧,只有处于该切片时长对应图像组的第一个帧,所以,服务器在对该重新编码得到的目标码流进行切片处理后,即使服务器是基于不同的码率对该目标码流进行切片处理的,也可保证服务器进行切片处理得到的分片数据是连续一致的。对应的,也就保证了客户端从服务器中获取分片数据进行多媒体数据显示时的连续性,可实现对客户端中多媒体数据的显示优化。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理系统的示意图;
图2是本发明实施例提供的一种数据处理方法的示意流程图;
图3a是本发明实施例提供的一种多媒体数据的初始码流的示意图;
图3b是本发明实施例提供的一种对初始码流进行重新编码得到目标码流的示意图;
图3c是本发明实施例提供的一种采用不同码率对目标码流进行切片处理的示意图;
图3d是本发明实施例提供的一种直播场景下的多媒体数据处理的示意图;
图4是本发明实施例提供的一种数据处理方法的示意流程图;
图5a是本发明实施例提供的一种插入指示帧的执行代码的示意图;
图5b是本发明实施例提供的一种在初始码流中插入指示帧的示意图;
图5c是本发明实施例提供的一种基于插入指示帧后的初始码流进行重新编码得到目标码流的示意图;
图5d是本发明实施例提供的一种指示帧的示意图;
图5e是本发明实施例提供的一种在初始码流中插入指示标识的示意图;
图6a是本发明实施例提供的一种进行切片处理的执行代码的示意图;
图6b是本发明实施例提供的一种进行切片处理的示意图;
图6c是本发明实施例提供的一种数据处理方法的示意图;
图7是本发明实施例提供的一种数据处理装置的示意性框图;
图8是本发明实施例提供的一种服务器的示意性框图。
具体实施方式
本发明实施例提出了一种数据处理方法,通过将多媒体数据的初始码流重新编码成目标码流,由于重新编码得到的目标码流中的帧内编码帧(即关键帧)是对由切片时长确定出的目标编码数据进行重新编码得到的,实现了对切片数据的协调统一,从而保证了服务器在采用不同的码率对该目标码流进行切片处理时,得到的分片数据是连续一致的,也就保证了客户端在从服务器中获取采用不同码率切片得到的分片数据是协调统一,从而有效解决了客户端从服务器中获取采用不同码率切片处理得到的分片数据不一致而导致的播放卡顿问题。在具体实现中,服务器可先获取多媒体数据的初始码流,该初始码流是第一客户端在采集到多媒体数据后,对采集到的多媒体数据进行编码后发送到服务器的,其中,该第一客户端可以是直播用户对应的客户端,对应地,该第一客户端采集到的多媒体数据则可包括音频数据,视频数据,或者音视频数据等。在该多媒体数据包括音频数据时,第一客户端对该音频数据进行编码后得到的初始码流可以是:高级音频编码(Advanced AudioCoding,AAC)数据,或者动态影像专家压缩标准音频层面3(Moving Picture ExpertsGroup Audio Layer III,MP3)编码数据,其中,AAC是基于动态图像专家组(MovingPicture Experts Group,MPEG)的2代音频编码技术,是当前直播流媒体的主流音频编码(或解码)格式;而在该多媒体数据包括视频数据时,第一客户端对视频数据进行编码后得到的初始码流可以是:基于H.264/H.265的编码视频,其中,H.264/H.265是一种视频编码(或解码)标准,该视频编码标准是由国际电信联盟电信标准分局((ITUTelecommunication Standardization Sector,ITU-T) 视频编码专家组(Video CodingExperts Group ,VCEG)和国际标准化组织(International Standard Organization,ISO)或国际电工委员会(International Electro technical Commission, IEC)的动态图像专家组(MPEG)联合组成的联合视频组(Joint Video Team,JVT)提出的一种高度压缩数字视频编码(或解码)标准。
在一个实施例中,第一客户端在对多媒体数据进行数据编码得到初始码流后,可将该初始码流发送到服务器,该第一客户端在将初始码流(即编码后的多媒体数据)发送到服务器时,是采用的将编码后的多媒体数据通过实时消息传输协议(Real Time MessagingProtocol,RTMP)封装或者其他传输协议进行传输的,其中,RTMP是一种进行实时数据通信的网络协议,主要用来支持在Flash/AIR平台(一种跨操作系统的运行平台)之间进行的多媒体数据通信,或者用来支持在基于RTMP协议的多媒体数据和交互服务器之间进行的多媒体数据通信。对应地,服务器在接收到第一客户端发送的封装后的初始码流后,则可进行解封装处理,从而得到该多媒体数据的初始码流,其中,该媒体数据的初始码流中包括多个编码数据,且该多个编码数据按照对应的图像帧在多媒体数据中的显示时间顺序依次排列,在一个实施例中,编码数据的类型包括以下三种:
①帧内编码帧(即I帧):又称为关键帧,对帧内编码帧进行解码时不需要其他帧参考,可对该帧内编码帧进行直接解码得到视频图像,帧内编码帧的帧数据较大;
②前向预测编码数据(P帧):又称为帧间编码帧,或非关键帧,对P帧进行解码时,需要参考该P帧前面的帧,仅靠P帧本身的帧数据无法对图像进行恢复,P帧的帧数据通常较小;
③双向预测内插编码数据(B帧):又称为帧间编码帧,或非关键帧,对B帧进行解码时,需要参考该B帧前面和后面的帧,仅靠B帧本身的帧数据也无法对图像进行恢复,B帧的帧数据也通常较小。
在一个实施例中,为了对编码数据中处于不同位置的I帧进行区分,还提出了即时解码刷新(InstantaneousDecodingRefresh,IDR)帧的概念,IDR帧是码流数据(如上述的初始码流)开始的第一帧,且在对码流数据进行解码时,可基于IDR帧刷新编码相关参数信息,即解码器可在检测到IDR帧时立即刷新编码相关参数,并开始进行解码,其中,IDR帧后面的帧不会参考IDR帧前面的帧,可以理解的是,IDR帧是码流数据的第一个I帧,也即是码流数据的第一帧。此外,码流数据还包括图像组(group of pictures,GOP)的概念,GOP是指多媒体数据中的一组图像数据,在多媒体数据的编码中,用于代表两个IDR帧之间的间隔。
在一个实施例中,服务器在获取到多媒体数据的码流数据后,可根据切片时长确定出GOP的大小,其中,切片时长是指对生成的目标码流进行切片处理时,得到的分片数据中包括的编码数据的播放时长,而GOP代表两个IDR帧之间的间隔,根据GOP,服务器从初始码流中确定出多个目标编码数据,并基于该目标编码数据对该初始码流中的编码数据进行重新编码,以使得重新编码得到的目标码流中的帧内编码帧是对该目标编码数据进行重新编码得到的,并将该初始码流中除该目标编码数据之外的其余编码数据重新编码为帧间编码帧,其中,该帧内编码帧即是上述的I帧,帧间编码帧可以为上述的B帧,也可为上述的P帧。基于编码得到的目标码流,可对该目标码流进行切片处理,从而得到目标码流的多个分片数据,在对该目标码流进行切片处理时,可由该服务器直接对该目标码流进行切片处理,也可由与该服务器关联的其他切片服务器对该目标码流进行切片处理,在对目标码流进行切片处理时,是基于该目标码流中的任一帧内编码帧开始切片的,且同一分片数据中的编码数据对应的显示时长等于该切片时长,因此,无论是采用上述的获取到多媒体数据的初始码流对该目标码流进行切片,还是采用其他服务器对该目标码流进行切片得到的分片数据是完全一致的,也就使得分片数据保持了全局一致性,从而在将分片数据下发到第二客户端时,可保证第二客户端对获取到的分片数据进行解码后,得到的多媒体数据是连续的,也就提升了多媒体数据在第二客户端进行播放时的流畅度,其中,该第二客户端和该第一客户端不同,是多媒体数据的播放客户端。
在一个实施例中,该多媒体数据处理方法可应用在如图1所示的用于对切片式直播系统中,其中,该切片式直播系统可以是基于动态码率自适应技术(HTTP LiveStreaming,HLS)的切片式直播系统,或者基于超文本传输协议的动态自适应技术(DynamicAdaptive Streaming over HTTP,DASH)的切片式直播系统,HLS用于直播用户所在的用户终端和观众用户所在的基于iOS系统(一种操作系统)的终端之前的音视频服务,DASH用于有效地将MPEG的媒体通过HTTP协议,以自适应、渐进式、下载或流的方式进行内容分发。如图1所示,该切片式直播系统可包括直播用户所在的第一客户端10,服务器11,以及观众用户所在的第二客户端12,具体地,第一客户端10可对直播用户在直播时的多媒体数据(如音视频数据)进行实时采集,并可将采集到的多媒体数据进行编码封装后,发送到服务器11中,服务器11在接收到封装后的多媒体数据后,则可对封装后的多媒体数据进行解封装处理,得到多媒体数据编码后的初始码流。
在一个实施例中,服务器11在获取到多媒体数据的初始码流后,服务器11还可基于切片时长对获取到的初始码流中的编码数据进行重新编码得到目标码流,其中,目标码流中的帧内编码帧是对根据切片时长确定出的目标编码数据进行重新编码得到的,服务器11在确定出目标码流后,则可在对该目标码流进行切片处理时,其中,服务器11是将该目标码流中的帧内编码帧作为分片数据的第一帧进行切片的,所以,对目标码流进行切片得到的分片数据对应的显示长度也就等于该切片时长。服务器11在得到目标码流的分片数据后,则可将该分片数据发送到第二客户端,以使得该第二客户端可对接收到的分片数据进行解码处理得到多媒体数据,从而可在第二客户端显示该多媒体数据,由于进行切片处理得到的分片数据的第一帧为重新编码得到的目标码流中的帧内编码帧,而该帧内编码帧又是根据切片时长从初始码流中确定出的,所以,对该目标码流进行切片处理得到的每个分片数据的播放时长,恰好等于切片时长,使得服务器11对目标码流进行切片得到的多个分片数据可按照目标码流中帧内编码帧的排列顺序依次排列,从而使得服务器11可实现在任意码流下对目标码流进行切片得到的分片数据的起止时间是可以对齐的。
在一个实施例中,该多媒体数据是第一客户端通过图像采集设备获取到的数据,例如可以是通过摄像头采集到的音视频数据,为了将第一客户端采集到的多媒体数据实时显示在第二客户端中,该第一客户端在获取到该多媒体数据后,可先对该多媒体数据进行编码处理,得到该多媒体数据对应的码流数据(即初始码流),并采用推流工具,如RTMP推流工具将该初始码流发送到服务器,服务器在接收到封装后的初始码流后,第二客户端则可将基于rtmp协议,或者流媒体格式(Flash Video,flv)协议,或者流文件(TransportStream,ts)协议,或者实时传输协议(Real-time Transport Protocol,rtp)等其他协议从服务器中获取码流数据的分片数据,并显示由该分片数据解码得到的多媒体数据,请求获取多媒体数据进行播放的第二客户端在请求HLS或者DASH时,需要先访问索引文件,然后从索引文件中确定出需要获取的下一个分片数据,其中,基于HLS的切片式直播系统对应的索引文件是m3u8文件,而基于DASH的切片式直播系统的索引文件则是mpd文件,由于第二客户端请求索引文件并确定出下一个分片数据时,该第二客户端访问索引文件的通信方式采用的是短连接的通信方式,所以,如果第二客户端在多媒体数据的播放过程中请求不到服务器采用相同码率对该多媒体数据的码流数据进行切片处理得到的分片数据,那么将导致第二客户端从服务器中获取到服务器采用不同码率切片得到的分片数据,从而导致第二客户端在多媒体数据播放过程中出现画面前进或者回退的问题,影响第二客户端对应用户的观看体验,为了保证第二客户端从服务器获取到的分片数据的一致性,请参见图2,是本发明实施例提出的一种数据处理方法的示意流程图,如图2所示,该方法可包括:
S201,获取多媒体数据的初始码流。
在一个实施例中,所述多媒体数据包括多个图像帧,所述多媒体数据例如是第一客户端采集的直播用户的直播数据,该第一客户端在获取到多媒体数据后,可对该多媒体数据的图像帧进行编码,得到该多媒体数据的初始码流,其中,该初始码流包括多个编码数据,该多个编码数据是对该多媒体数据包括的多个图像帧依次进行编码后得到的,且该多个编码数据按照对应图像帧在多媒体数据中的显示时间顺序依次排列,即该初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据。服务器获取到的初始码流可如图3a所示,该射线所指示的方向用于指示该编码数据对应的图像帧在多媒体数据中的显示时间顺序,如100s标记的编码数据用于指示该编码数据对应的图像帧在多媒体数据中的显示时间为100s。其中,该初始码流中包括多个编码数据可包括帧内编码帧,或帧间编码帧,其中,该帧内编码帧包括I帧,帧间编码帧P帧或B帧,如图3a所示的初始码流中包括的I帧为用灰度填充的编码数据,未填充的编码数据则为B帧或者P帧,在一个实施例中,I帧是由第一客户端对当前图像帧进行完整编码得到的,对应的,I帧可直接解码得到对应的完整图像帧;而B帧或者P帧则是由第一客户端基于当前图像帧与前一帧图像或者后一帧图像的差异数据进行编码得到的,对应地,在对B帧或者P帧进行解码时,则需要参考该B帧或者P帧的前一帧图像或者后一帧图像才能解码得到完整的图像帧。
在一个实施例中,第一客户端在对多媒体数据中的图像帧进行编码处理,得到对应的编码数据时,是基于图像帧的编码协议进行编码处理的,该编码协议例如可以是H.265标准协议,或者H.264标准协议。在一个实施例中,第一客户端在采集到多媒体数据后,是先将多媒体数据的码流数据(即初始码流)基于RTMP或者实时传输协议(Real-timeTransport Protocol,RTP)对该初始码流进行封装后传输到服务器的,RTP常用于流媒体系统,配合实时流传输协议(Real Time Streaming Protocol,RTSP)协议,或者直接用rtp传输ts流,也常用于视频会议系统,使它成为网际互连协议(Internet Protocol,IP)电话产业的技术基础,RTP协议和RTP控制协议RTCP一起使用,而且它是创建在用户数据报协议(User Datagram Protocol,UDP)协议上的。
在一个实施例中,服务器在确定出多媒体数据的初始码流后,如果直接对该初始码流进行切片处理,在服务器采用不同的码率对该初始码流进行切片处理时,各分片数据解码得到的图像帧是存在重叠的,所以,如果服务器获取到初始码流后,对该初始码流直接进行切片处理,使得客户端(即上述的第二客户端)在获取不同码率的分片数据时,可能存在对获取到的分片数据进行解码得到的图像帧是不连续的,而导致显示在客户端的图像帧卡顿的问题,所以,为了避免该问题,服务器可在获取到多媒体数据的初始码流后,对该初始码流中的编码数据进行重新编码得到目标码流,即转而执行步骤S202,服务器在采用不同的码率对目标码流进行切片处理时,则可得到连续的且不存在重叠的分片数据,从而可使得第二客户端在从服务器中获取分片数据进行显示时的连续性。
S202,根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,并对所述初始码流进行重新编码。
在一个实施例中,为了保证服务器在采取不同的码率对码流数据切片得到的分片数据是连续且一致的,服务器可在获取到初始码流后,对该初始码流中的编码数据进行重新编码,得到目标码流,在具体实现中,服务器可先确定出切片时长,从而可基于该切片时长和该初始码流的帧率确定出图像组(GOP)大小,举例来说,若服务器确定出的切片时长为2秒,帧率为3帧每秒,则服务器基于该切片时长和该帧率确定出的图像组大小则为6,可以理解的是,一个切片图像组和一个分片数据相对应,所以,在图像组大小为6时,该服务器切片处理得到的分片数据中则包括6个编码数据,在服务器确定出图像组大小后,则可基于该切片图像组的大小从初始码流的多个编码数据中确定出目标编码数据,其中,该切片时长是开发用户基于需求自行设定的,该切片时长还可以是4s或者5s等。
在一个实施例中,服务器对该初始码流进行重新编码包括:将根据切片时长确定出的目标编码数据重新编码成帧内编码帧,并将与该目标编码帧处于同一切片时长中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧,如图3b所示,若根据切片时长确定出的目标编码帧为图3b中由三角符号标记的编码帧,若基于该切片时长确定出的图像组大小为6,则与该目标编码帧处于同一切片时长的编码帧则可以是如图3b中由虚线框标记出的编码帧,服务器在对该切片时长中的编码数据进行重新编码时,则是对该切片时长中的目标编码帧进行重新编码成帧内编码帧,将该切片时长中除该目标编码帧之外的其他编码帧重新编码成帧间编码帧的,由此,服务器可对初始码流中每个切片时长中的编码数据进行重新编码,从而得到该初始码流对应的目标码流,若该初始码流如图3b的上图所示,则得到的目标码流可为图3b中的下图所示。
在一个实施例中,服务器在根据切片时长从初始码流的多个编码数据中确定出目标编码数据时,可先根据该切片时长确定出的图像组大小,在指定的位置处插入指示帧,其中,服务器可在确定出的图像组的最后一个编码数据的后一个位置处插入一个指示帧,而服务器在基于切片时长对该初始码流进行重新编码时,则可基于指示帧的指示,将处于该指示帧的后一个编码数据重新编码成帧内编码帧,而将该初始码流中的其他数据重新编码成帧间编码帧,从而实现对初始码流的重新编码。在一个实施例中,服务器在对初始码流进行重新编码,得到对应的目标码流后,则可对目标码流进行切片处理,即转而执行步骤S203。
S203,对重新编码得到的目标码流进行切片处理,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
在一个实施例中,服务器在对初始码流进行重新编码后,则可对重新编码得到的目标码流进行切片处理,得到该目标码流的分片数据,由于对初始码流进行重新编码得到的目标码流的帧内编码帧,是对由切片时长确定出的目标编码数据进行重新编码后得到的,且服务器在对该目标码流进行切片处理时,切片得到的分片数据的大小等于该切片时长确定出的图像组大小,而且,是基于该目标码流中的帧内编码帧进行切片得到的,由此可以保证服务器在采用不同码率对该目标码流进行切片得到的分片数据是连续的,不会存在不同码率得到的切片数据存在重复数据的问题,从而可保证客户端(即上述的第二客户端)在从服务器获取不同码率的分片数据的连续性,可提升在第二客户端中显示该分片数据解码得到的多媒体数据的流畅性。
在一个实施例中,若服务器对初始码流重新编码得到的目标码流可如图3c中由30标记的码流所示,服务器确定出的切片时长为2s,则服务器基于该切片时长和帧率(假设为3帧每秒)确定出的图像组大小为6,则服务器可确定划分得到的每个分片数据中包括的编码数据的数量为6,那么,在服务器对如图3c中由30标记的目标码流进行切片处理时,可先从该目标码流中选取任一帧内编码帧(即I帧)开始切片,并基于该目标码流中编码数据的排列顺序,依次往后将包括该目标编码帧在内的6个编码帧划分成为一个切片数据,如图3c中由分片-1标记的分片数据,以及分片-2标记的分片数据,其中,由分片-1标记的分片数据和分片-2标记的分片数据若是服务器采用第一码率对目标码流进行分片处理后得到的,那么服务器在采用第二码率对目标码流进行分片处理得到的分片数据可以为如图3c中由分片-11和分片-22标记的分片数据所示,由图3c可知,基于对初始码流进行重新编码得到的目标码流,服务器在基于不同码率对目标码流进行切片处理得到的分片数据是一致的。对应的,客户端若在从服务器获取到由分片-1标记的分片数据后,切换到从基于第二码率切片得到的切片数据中继续获取分片数据,客户端获可获取由分片-22标记的分片数据,从而保证对获得的分片数据解码得到的多媒体数据的连续性。
在本发明实施例中,服务器在获取多媒体数据的初始码流后,可根据切片时长从初始码流包括的多个编码数据中确定出目标编码数据,从而可将目标编码数据进行重新编码成帧内编码帧,并将与该目标编码数据处于同一切片时长中的其他编码数据重新编码成帧间编码帧,由于编码后的初始码流按照该切片时长进行切片时可参照的帧内编码帧,只有处于该切片时长对应图像组的第一个帧,所以,服务器在对该重新编码得到的目标码流进行切片处理后,即使服务器是基于不同的码率对该目标码流进行切片处理的,也可保证服务器进行切片处理得到的分片数据是连续一致的。对应的,也就保证了客户端从服务器中获取分片数据进行多媒体数据显示时的连续性,可实现对客户端中多媒体数据的显示优化。
在一个实施例中,如图3d所示,若多媒体数据是由主播用户对应的第一客户端采集得到的,该第一客户端采集到的多媒体数据例如可以是音视频数据等,为了实现将第一客户端采集得到的音视频数据实时传输到观众用户对应的第二客户端进行显示,从而实现直播互动,该第一客户端在采集到主播用户的音视频数据后,可对该音视频数据进行重新编码,得到音视频数据的初始码流,并将该初始码流基于RTP/RTMP协议进行封装,以发送到用于对码流数据进行切片处理的服务器,其中,该服务器提供的切片服务是基于码率确定出的,不同码率切片得到的分片数据和第二客户端对应终端设备的分辨率相适应,如基于第一码率切片得到的分片数据和第二客户端对应终端设备的分辨率为1080p相适应,而第二码率切片得到的分片数据则和第二客户端对应终端设备的分辨率为4k相适应。
服务器在获取到封装后的码流数据后,可进行解封装处理,得到该音视频数据的初始码流,为了使得服务器在采用不同码率对码流数据进行切片得到的切片数据的一致性,可先对该初始码流进行重新编码得到目标码流,其中,该重新编码包括:将基于切片时长确定出的目标编码数据重新编码成帧内编码帧,将其他编码数据重新编码成帧间编码帧,从而可保证每个分片数据中有且仅有一个帧内编码帧是用于参考进行分片处理的,所以,服务器在采用不同码率对该分片数据进行切片处理时,得到的分片数据的起止时间是可以对齐的,那么服务器在采用不同码率对分片数据进行切片处理得到的分片数据是不存在重复数据的分片数据,从而使得客户端在从服务器获取不同码率分片得到的分片数据时,得到的分片数据是连续的,从而保证了客户端显示的多媒体数据的连续性。在一个实施例中,用于对该初始码流进行切片处理的服务器的数量可以为一个,该一个服务器可提供不同码率的切片服务,如图3d所示,或者,用于提供不同码率的切片服务的服务器也可以是不同的,为了提升对码流数据进行切片处理的容灾能力,可采用两个不同的服务器提供相同码率的切片服务的方法,当提供第一码率的服务器故障时,另一台也同样提供该第一码率的服务器可接替故障的服务器对码流数据进行切片,使得系统的稳定性更高,其中,上述的第一客户端也可以称为推流客户端,第二客户端也可称为播放客户端。
请参见图4,是本发明实施例提出的一种数据处理方法的示意流程图,该方法可应用于上述的服务器,如图4所示,该方法可包括:
S401,获取多媒体数据的初始码流。
在一个实施例中,服务器获取的初始码流是在接收到主播用户通过第一客户端推流发送到该服务器的封装数据后,对该封装数据进行解封装处理后得到的,服务器在对该封装数据进行解封装处理后可得到多媒体数据的初始码流,其中,该初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据,进一步地,服务器可在获取到该多媒体数据的初始码流后,确定该初始码流中每个编码数据的时间标识,该时间标识包括:解码时间标识,即解码时间戳(Decoding Time Stamp,DTS),其中,该解码时间戳用于指示对应编码数据的解码时间,可以理解的是,如果初始码流中各编码数据的解码时间戳是非连续的,例如,如果初始码流中依次排列的三个编码数据对应的解码时间戳分别为:10s,5s,20s,但是初始码流中的编码数据是按照对应图像帧在多媒体数据中的显示时间顺序依次排列的,所以,服务器可认为第二个解码时间戳是错误的,则需要先对该解码时间戳进行平滑处理,即服务器在确定出初始码流中每个编码数据的解码时间标识后,需要对该解码时间标识进行校准处理,使得校准后的每个编码数据的解码时间标识按照排列顺序单调递增,校准后的三个编码数据对应的解码时间戳例如可以是10s,15s和20s。
在一个实施例中,服务器在确定出初始码流中每个编码数据的时间标识后,并在对该解码时间表示进行校准处理之前,可先为该初始码流的第一个编码数据添加基准同步时间戳,该基准同步时间戳的数据内容可放在初始码流,用于描述数据属性的元数据(metadata)中,其中,存储在metadata中的基准同步时间戳以键值对(key-value)的格式进行存储,存储的基准同步时间戳可以例如“basetime:123456789”,其中,key为basetime(即基准同步时间戳标识),value为123456789,即十进制格式的世界统一时间(CoordinatedUniversal Time,UTC时间)。服务器基于该基准同步时间戳和每个编码数据对应的解码时间戳,可确定出每个编码数据对应的解码时间,其中,该每个编码数据的解码时间即是该编码数据对应的解码时间戳加上该基准同步时间戳的和。在服务器获取到初始码流,并对该初始码流中各编码数据的解码时间戳进行校准处理后,则可对该初始码流进行重新编码,即转而执行步骤S402。
S402,根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,并对所述初始码流进行重新编码,其中,所述重新编码包括:将所述目标编码数据重新编码成帧内编码帧,并将同一切片时长中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧。
在一个实施例中,服务器在根据该切片时长从该初始码流的多个编码数据中确定出目标码流数据时,可先根据该切片时长,为该初始码流添加编码指示信息,从而可根据该编码指示信息,从该初始码流的多个编码数据中确定出目标编码数据。其中,该编码指示信息包括:指示帧,则服务器在根据切片时长,为初始码流添加编码指示信息时,可先确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:显示时间标识,即显示时间戳(Presentation Time Stamp,PTS),服务器基于初始码流中每个编码数据的显示时间标识指示的显示时间,则可从所述初始码流的第一帧的显示时间标识指示的显示时间开始,依次累加所述初始码流的第一帧之后的编码帧的显示时间标识对应的显示时间,从而可在累加得到的显示时间大于或等于所述切片时长时对应编码数据后插入所述指示帧。在具体实现中,如图5a所示的代码,服务器在插入指示帧时,可运行该代码进行指示帧的插入,举例来说,若服务器确定出的切片时长为2s,若服务器从初始码流的第一帧的显示时间标识指示的显示时间开始,依次累加到第6个编码帧的显示时间标识指示的显示时间时,确定累加的显示时长等于该切片时长,则在第6个编码帧后插入该指示帧;或者,如果服务器确定出的切片时长为2s,服务器从初始码流的第一帧的显示时间标识指示的显示时间开始,依次累加到第6个编码帧的显示时间标识指示的显示时间时,确定累加的显示时长小于该切片时长,而在累加到第7个编码帧的显示时间标识指示的显示时间时,确定累加的显示时长大于该切片时长,则服务器在该第6个编码帧和第7个编码帧之间的位置插入该指示帧,在一个实施例中,该指示帧例如可以是自定义sei帧,服务器在初始码流中进行sei帧的插入可如图5b所示,服务器获取到的初始码流可如图5b中的上图所示,插入sei帧后的初始码流可如图5b中的下图所示。
在一个实施例中,服务器为初始码流插入指示帧后,则可根据该指示帧从初始码流的多个编码数据中确定出目标编码数据,具体地,服务器可按照该初始码流中编码数据的排列顺序,将该初始码流中该指示帧的后一帧作为目标编码数据,从而可基于确定出的目标编码帧将多媒体数据的初始码流进行重新编码,具体地,服务器在将初始码流进行重新编码时,是将该目标编码数据重新编码成帧内编码帧,并将同一切片时长中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧,即服务器在基于指示帧对该初始码流进行重新编码时,可将该指示帧的后一帧重新编码成帧内编码帧,并将初始码流中除该指示帧的后一帧之外的其他帧重新编码成帧间编码帧,并在重新编码后删除该指示帧,如图5c所示,若服务器插入sei帧后的初始码流如图5c中的上图所示,服务器则可将该初始码流中处于sei帧后一帧的编码帧重新编码成帧内编码帧,将其他帧重新编码成帧间编码帧,并在编码完成后删除该sei帧,重新编码后得到的目标码流则可如图5c中的下图所示。在一个实施例中,为初始码流添加的sei帧的协议格式是:添加类型SEI 有效载荷(payload)=5以及通用唯一识别码(Universally Unique Identifier,UUID):SetKeyFrameInidc标记(一种关键帧控制信息)。sei帧的格式如图5d所示,其中,该格式包括的尺寸(size)字段为可变字节,符合h.264 sei标准,size长度中的字节不包含0x80 结束字节,但包含Content字节,其中,UUID为16字节,Content为自定义的字符串:{\"key_frame\":1}。
在一个实施例中,该编码指示信息还可包括指示标识,则服务器在根据该切片时长为该初始码流添加编码指示信息时,可根据该切片时长,确定每个分片数据包括的编码数据的第二数量,从而可按照所述初始码流中编码数据的排列顺序,从所述初始码流的第一帧开始,并为依次间隔所述第二数量的编码数据添加所述指示标识,如图5e所示,该指示标识可以添加到码流数据的编码数据中,也可添加到码流数据对应的封装数据中,其中,添加到码流数据的封装数据的指示标识可以是script data标识(一种标签标识)。在服务器为该初始码流添加指示标识后,则可基于该指示标识从初始码流的多个编码数据中确定出目标编码数据,具体地,服务器可按照所述初始码流中编码数据的排列顺序,将该初始码流中添加了指示标识的编码数据作为目标编码数据。
S403,将对所述初始码流重新编码得到的码流作为目标码流。
S404,从所述目标码流中选取任一帧内编码帧开始切片,并根据所述任一帧内编码帧的显示时间标识确定所述任一帧内编码帧对应的显示时间。
S405,累加所述任一帧内编码帧的显示时间以及所述任一帧内编码帧之后的帧间编码帧的显示时间,直到累加的时间大于或等于所述切片时长时结束切片,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
在步骤S403~步骤S405中,服务器在对初始码流进行重编码后,可将对初始码流重新编码得到的码流数据作为目标码流,并对目标码流开始切片处理,具体地,服务器可执行如图6a所示的代码,对目标码流进行切片处理,即服务器可从目标码流中的任一帧内编码帧(IDR帧)开始执行切片,并将所述任一帧内编码帧的显示时间标识指示的显示时间,以及该帧内编码帧之后的帧间编码帧的显示时间标识对应的显示时间进行累加,直至累加得到的显示时间大于或等于该切片时长,则结束切片,如图6b所示,若服务器从图6b中单箭头指示的帧内编码帧开始切片,并开始累加显示时间,若累加到双箭头指示的编码数据时的显示时间等于该切片时长,则停止切片,得到一个分片数据,或者,若累加到双箭头指示的编码数据时的显示时间小于该切片时长,但累加到双箭头指示的编码数据的后一帧编码数据时的显示时间大于该切片时长,也从该双箭头指示的编码数据结束切片,得到的切片数据如图6b所示。
在一个实施例中,在如图6c所示的服务器对多媒体数据进行处理的示意图,服务器在接收到直播用户对应的第一客户端基于RTP或RTMP协议上传的多媒体数据的封装数据后,可分别执行①为多媒体数据的初始码流加入基准同步时间戳,以指示第一帧的显示时间,②校准初始码流中编码数据的时间戳(包括解码时间戳和显示时间戳),以保持解码时间戳单调递增,③根据指定的切片时长,在指定位置插入指示帧(如sei帧);服务器在接收到初始码流,并执行上述操作后,可对该初始码流进行重新编码,在对该初始码流进行重新编码时,是基于插入的指示帧进行的,进一步地,服务器可对重新编码得到的目标码流进行切片处理,具体地,服务器是基于加入码流数据中的基准同步时间戳以及每个编码数据对应的显示时间标识来进行切片处理的。在服务器对目标码流进行切片处理得到多个分片数据后,可基于切片对应的码流将每个分片数据自适应的封装,并将封装后的分片数据发送到内容分发节点(Content Delivery Network,CDN),CDN在接收到封装的分片数据后,则可将封装后的分片数据下发到观众用户对应的第二客户端。在一个实施例中,后台用户可通过调度接口对服务器进行切片处理时的切片时长进行配置,以使得后台用户可基于场景需求,对服务器执行的切片业务进行控制,使得服务器可实现采用不同码率对码流数据进行分片处理得到的分片数据是一致的,且不存在重复数据的,可提升多媒体数据的播放系统(如上述的直播系统)的容灾能力和鲁棒性。
在本发明实施例中,服务器在获取到多媒体数据的初始码流后,可将初始码流中根据切片时长确定出的目标编码数据重新编码成帧内编码帧,并将该初始码流中的其他编码数据重新编码成帧间编码帧,从而实现将该多媒体数据的初始码流重新编码成目标码流。进一步的,服务器在将初始码流重新编码成目标码流后,可从目标码流中选取任一帧内编码帧开始切片,并在累加该帧内编码帧的显示时间和该帧内编码帧之后的帧间编码帧的显示时间得到的累加显示时间大于或等于该切片时长时,则结束切片得到对应的一个分片数据,由于服务器重新编码得到的目标码流中的帧内编码帧,是在切片处理得到的分片数据的唯一帧内编码帧,所以服务器无论采用任何码率对该目标码流进行切片得到的分片数据是完全一致,且不存在重复数据的,使得服务器实现了分片数据的全局一致性。
基于上述数据处理方法实施例的描述,本发明实施例还提出了一种数据处理装置,该数据处理装置可以是运行于上述服务器中的一个计算机程序(包括程序代码)。该数据处理装置可用于执行如图2和图4所述的数据处理方法,请参见图7,该数据处理装置包括:获取单元701,确定单元702,编码单元703和切片单元704。
获取单元701,用于获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
确定单元702,用于根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据;
编码单元703,用于对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;
切片单元704,用于对重新编码得到的目标码流进行切片处理,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
在一个实施例中,所述确定单元702,具体用于:
根据所述切片时长,为所述初始码流添加编码指示信息;
根据所述编码指示信息,从所述初始码流的多个编码数据中确定出目标编码数据。
在一个实施例中,所述编码指示信息包括:指示帧,所述确定单元702,具体用于:
确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:显示时间标识;
从所述初始码流的第一帧的显示时间标识指示的显示时间开始,依次累加所述初始码流的第一帧之后的编码帧的显示时间标识对应的显示时间;
在累加得到的显示时长大于或等于所述切片时长时对应编码数据后插入所述指示帧。
在一个实施例中,所述编码指示信息包括:指示帧,所述确定单元702,具体用于:
按照所述初始码流中编码数据的排列顺序,将所述初始码流中所述指示帧的后一帧作为目标编码数据。
在一个实施例中,所述编码指示信息包括:指示标识,所述编码指示信息包括:指示帧,所述确定单元702,具体用于:
根据所述切片时长,确定每个分片数据包括的编码数据的第二数量;
按照所述初始码流中编码数据的排列顺序,从所述初始码流的第一帧开始,并为依次间隔所述第二数量的编码数据添加所述指示标识。
在一个实施例中,所述编码指示信息包括:指示帧,所述确定单元702,具体用于:
按照所述初始码流中编码数据的排列顺序,将所述初始码流中添加了所述指示标识的编码数据作为目标编码数据。
所述切片单元704,具体用于:
将对所述初始码流重新编码得到的码流作为目标码流;
从所述目标码流中选取任一帧内编码帧开始切片,并根据所述任一帧内编码帧的显示时间标识确定所述任一帧内编码帧对应的显示时间;
累加所述任一帧内编码帧的显示时间以及所述任一帧内编码帧之后的帧间编码帧的显示时间,直到累加的时间大于或等于所述切片时长时结束切片。
在一个实施例中,所述装置还包括:校准单元705。
所述确定单元703,还医院确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:解码时间标识;
校准单元705,用于对所述解码时间标识进行校准处理,使得校准后的每个编码数据的解码时间标识按照排列顺序单调递增。
在本发明实施例中,获取单元701在获取多媒体数据的初始码流后,确定单元702可根据切片时长从初始码流包括的多个编码数据中确定出目标编码数据,编码单元703从而可将目标编码数据进行重新编码成帧内编码帧,并将与该目标编码数据处于同一切片时长中的其他编码数据重新编码成帧间编码帧,由于编码后的初始码流按照该切片时长进行切片时可参照的帧内编码帧,只有处于该切片时长对应图像组的第一个帧,所以,在对该重新编码得到的目标码流进行切片处理后,即使切片单元704是基于不同的码率对该目标码流进行切片处理的,也可保证服务器进行切片处理得到的分片数据是连续一致的。对应的,也就保证了客户端从服务器中获取分片数据进行多媒体数据显示时的连续性,可实现对客户端中多媒体数据的显示优化。
请参见图8,是本发明实施例提供的一种服务器的结构示意性框图,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。上述的第一客户端,或者第二客户端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。如图8所示的本实施例中的服务器可包括:一个或多个处理器801;一个或多个输入设备802,一个或多个输出设备803和存储器804。上述处理器801、输入设备802、输出设备803和存储器804通过总线805连接。存储器804用于存储计算机程序,所述计算机程序包括程序指令,处理器801 用于执行所述存储器804存储的程序指令。
所述存储器804可以包括易失性存储器(volatile memory),如随机存取存储器(random-access memory,RAM);存储器804也可以包括非易失性存储器(non-volatilememory),如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储器804还可以包括上述种类的存储器的组合。
所述处理器801可以是中央处理器(central processing unit,CPU)。所述处理器801还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)等。该PLD可以是现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)等。所述处理器801也可以为上述结构的组合。
本发明实施例中,所述存储器804用于存储计算机程序,所述计算机程序包括程序指令,处理器801用于执行存储器804存储的程序指令,用来实现上述如图2和图4中相应方法的步骤。
在一个实施例中,所述处理器801被配置调用所述程序指令,用于执行:
获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,并对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;
对重新编码得到的目标码流进行切片处理,得到所述目标码流的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据。
在一个实施例中,所述处理器801被配置调用所述程序指令,用于执行:
根据所述切片时长,为所述初始码流添加编码指示信息;
根据所述编码指示信息,从所述初始码流的多个编码数据中确定出目标编码数据。
在一个实施例中,所述编码指示信息包括:指示帧,所述处理器801被配置调用所述程序指令,用于执行:
确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:显示时间标识;
从所述初始码流的第一帧的显示时间标识指示的显示时间开始,依次累加所述初始码流的第一帧之后的编码帧的显示时间标识对应的显示时间;
在累加得到的显示时长大于或等于所述切片时长时对应编码数据后插入所述指示帧。
在一个实施例中,所述处理器801被配置调用所述程序指令,用于执行:
按照所述初始码流中编码数据的排列顺序,将所述初始码流中所述指示帧的后一帧作为目标编码数据。
在一个实施例中,所述编码指示信息包括:指示标识,所述处理器801被配置调用所述程序指令,用于执行:
根据所述切片时长,确定每个分片数据包括的编码数据的第二数量;
按照所述初始码流中编码数据的排列顺序,从所述初始码流的第一帧开始,并为依次间隔所述第二数量的编码数据添加所述指示标识。
在一个实施例中,所述处理器801被配置调用所述程序指令,用于执行:
按照所述初始码流中编码数据的排列顺序,将所述初始码流中添加了所述指示标识的编码数据作为目标编码数据。
在一个实施例中,所述处理器801被配置调用所述程序指令,用于执行:
将对所述初始码流重新编码得到的码流作为目标码流;
从所述目标码流中选取任一帧内编码帧开始切片,并根据所述任一帧内编码帧的显示时间标识确定所述任一帧内编码帧对应的显示时间;
累加所述任一帧内编码帧的显示时间以及所述任一帧内编码帧之后的帧间编码帧的显示时间,直到累加的时间大于或等于所述切片时长时结束切片。
在一个实施例中,所述处理器801被配置调用所述程序指令,用于执行:
确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:解码时间标识;
对所述解码时间标识进行校准处理,使得校准后的每个编码数据的解码时间标识按照排列顺序单调递增。
本发明实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述如图2或图4所示的方法实施例。其中,所述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明的局部实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或局部流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (11)

1.一种数据处理方法,其特征在于,包括:
获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,并对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;所述切片时长是后台用户通过调度接口,基于场景需求自行设定的;
通过目标码率对应的服务器采用所述目标码率,对重新编码得到的目标码流进行切片处理,得到所述目标码流在所述目标码率下的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据;所述目标码率属于N种码率中的任一码率,任一码率下的每个分片数据的起始帧均为所述帧内编码帧,且任一码率下的每个分片数据内的所述帧内编码帧的数量为1帧,所述N种码率分别对应不同服务器,N为大于1的正整数。
2.根据权利要求1所述的方法,其特征在于,所述根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据,包括:
根据所述切片时长,为所述初始码流添加编码指示信息;
根据所述编码指示信息,从所述初始码流的多个编码数据中确定出目标编码数据。
3.根据权利要求2所述的方法,其特征在于,所述编码指示信息包括:指示帧,所述根据所述切片时长,为所述初始码流添加编码指示信息,包括:
确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:显示时间标识;
从所述初始码流的第一帧的显示时间标识指示的显示时间开始,依次累加所述初始码流的第一帧之后的编码帧的显示时间标识对应的显示时间;
在累加得到的显示时长大于或等于所述切片时长时对应编码数据后插入所述指示帧。
4.根据权利要求3所述的方法,其特征在于,所述根据所述编码指示信息,从所述初始码流的多个编码数据中确定出目标编码数据,包括:
按照所述初始码流中编码数据的排列顺序,将所述初始码流中所述指示帧的后一帧作为目标编码数据。
5.根据权利要求2所述的方法,其特征在于,所述编码指示信息包括:指示标识,所述根据所述切片时长,为所述初始码流添加编码指示信息,包括:
根据所述切片时长,确定每个分片数据包括的编码数据的第二数量;
按照所述初始码流中编码数据的排列顺序,从所述初始码流的第一帧开始,并为依次间隔所述第二数量的编码数据添加所述指示标识。
6.根据权利要求5所述的方法,其特征在于,所述根据所述编码指示信息,从所述初始码流的多个编码数据中确定出目标编码数据,包括:
按照所述初始码流中编码数据的排列顺序,将所述初始码流中添加了所述指示标识的编码数据作为目标编码数据。
7.根据权利要求1所述的方法,其特征在于,所述通过目标码率对应的服务器采用所述目标码率,对重新编码得到的目标码流进行切片处理,得到所述目标码流在所述目标码率下的多个分片数据,包括:
将对所述初始码流重新编码得到的码流作为目标码流;
通过目标码率对应的服务器采用所述目标码率,从所述目标码流中选取任一帧内编码帧开始切片,并根据所述任一帧内编码帧的显示时间标识确定所述任一帧内编码帧对应的显示时间;
累加所述任一帧内编码帧的显示时间以及所述任一帧内编码帧之后的帧间编码帧的显示时间,直到累加的时间大于或等于所述切片时长时结束切片,得到所述目标码流在所述目标码率下的多个分片数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述初始码流中每个编码数据的时间标识,所述时间标识包括:解码时间标识;
对所述解码时间标识进行校准处理,使得校准后的每个编码数据的解码时间标识按照排列顺序单调递增。
9.一种数据处理装置,其特征在于,包括:
获取单元,用于获取多媒体数据的初始码流,所述初始码流包括:按照所述多媒体数据中的显示时间顺序依次排列的图像帧对应的编码数据;
确定单元,用于根据切片时长从所述初始码流的多个编码数据中确定出目标编码数据;所述切片时长是后台用户通过调度接口,基于场景需求自行设定的;
编码单元,用于对所述初始码流进行重新编码,其中,所述重新编码包括:将确定的一个或多个目标编码数据重新编码成帧内编码帧,并根据重新编码后的帧内编码帧将同一切片时长内的编码数据中除所述目标编码数据之外的其他编码数据重新编码成帧间编码帧;
切片单元,用于通过目标码率对应的服务器采用所述目标码率,对重新编码得到的目标码流进行切片处理,得到所述目标码流在所述目标码率下的多个分片数据,以在客户端显示所述多个分片数据解码得到的多媒体数据;所述目标码率属于N种码率中的任一码率,任一码率下的每个分片数据的起始帧均为所述帧内编码帧,且任一码率下的每个分片数据内的所述帧内编码帧的数量为1帧,所述N种码率分别对应不同服务器N为大于1的正整数。
10.一种服务器,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、所述输入设备、所述输出设备和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1~8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1~8任一项所述的方法。
CN202010659502.0A 2020-07-09 2020-07-09 数据处理方法、装置、服务器及存储介质 Active CN111770390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010659502.0A CN111770390B (zh) 2020-07-09 2020-07-09 数据处理方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010659502.0A CN111770390B (zh) 2020-07-09 2020-07-09 数据处理方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111770390A CN111770390A (zh) 2020-10-13
CN111770390B true CN111770390B (zh) 2024-02-09

Family

ID=72726202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010659502.0A Active CN111770390B (zh) 2020-07-09 2020-07-09 数据处理方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111770390B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112153428B (zh) * 2020-11-04 2022-07-12 上海连尚网络科技有限公司 视频的处理方法和装置
CN113239394B (zh) * 2021-05-06 2021-10-29 国家计算机网络与信息安全管理中心 固件的保护方法、装置及设备
CN114465993B (zh) * 2022-01-24 2023-11-10 杭州网易智企科技有限公司 视频编码方法、视频解码方法和装置、介质和计算设备
CN115086714A (zh) * 2022-06-13 2022-09-20 京东科技信息技术有限公司 数据处理方法、装置、设备及存储介质
CN115460189B (zh) * 2022-11-09 2023-04-11 腾讯科技(深圳)有限公司 处理设备测试方法、装置、计算机及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664057B1 (en) * 2004-07-13 2010-02-16 Cisco Technology, Inc. Audio-to-video synchronization system and method for packet-based network video conferencing
CN103442259A (zh) * 2013-08-21 2013-12-11 杭州浦禾通信技术有限公司 媒体数据的重组方法和装置
CN108377399A (zh) * 2018-03-07 2018-08-07 广州图普网络科技有限公司 实时视频流转码方法、装置及计算机可读存储介质
WO2019221072A1 (ja) * 2018-05-15 2019-11-21 シャープ株式会社 画像符号化装置、符号化ストリーム抽出装置及び画像復号装置
CN110741647A (zh) * 2018-09-29 2020-01-31 深圳市大疆创新科技有限公司 一种图像处理方法、装置、可移动平台及存储介质
CN110996129A (zh) * 2019-12-20 2020-04-10 杭州当虹科技股份有限公司 一种支持mpeg-dash输出切片号连续的方法
CN111279694A (zh) * 2018-11-28 2020-06-12 深圳市大疆创新科技有限公司 Gdr码流编码方法、终端设备、机器可读存储介质
CN111294612A (zh) * 2020-01-22 2020-06-16 腾讯科技(深圳)有限公司 一种多媒体数据处理方法、系统以及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664057B1 (en) * 2004-07-13 2010-02-16 Cisco Technology, Inc. Audio-to-video synchronization system and method for packet-based network video conferencing
CN103442259A (zh) * 2013-08-21 2013-12-11 杭州浦禾通信技术有限公司 媒体数据的重组方法和装置
CN108377399A (zh) * 2018-03-07 2018-08-07 广州图普网络科技有限公司 实时视频流转码方法、装置及计算机可读存储介质
WO2019221072A1 (ja) * 2018-05-15 2019-11-21 シャープ株式会社 画像符号化装置、符号化ストリーム抽出装置及び画像復号装置
CN110741647A (zh) * 2018-09-29 2020-01-31 深圳市大疆创新科技有限公司 一种图像处理方法、装置、可移动平台及存储介质
CN111279694A (zh) * 2018-11-28 2020-06-12 深圳市大疆创新科技有限公司 Gdr码流编码方法、终端设备、机器可读存储介质
CN110996129A (zh) * 2019-12-20 2020-04-10 杭州当虹科技股份有限公司 一种支持mpeg-dash输出切片号连续的方法
CN111294612A (zh) * 2020-01-22 2020-06-16 腾讯科技(深圳)有限公司 一种多媒体数据处理方法、系统以及存储介质

Also Published As

Publication number Publication date
CN111770390A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
CN111770390B (zh) 数据处理方法、装置、服务器及存储介质
TWI692974B (zh) 在媒體檔案中虛擬實境視訊之儲存
CN102986218B (zh) 用于串流视频数据的视频切换
CN104885473B (zh) 用于经由http的动态自适应流式传输(dash)的实况定时方法
JP5937275B2 (ja) ネットワークストリーミングのための失われたメディアデータの置換
JP5964972B2 (ja) 複数のソースからのマルチメディアデータのストリーミング
US9319448B2 (en) Trick modes for network streaming of coded multimedia data
US9185439B2 (en) Signaling data for multiplexing video components
US20160337424A1 (en) Transferring media data using a websocket subprotocol
TW201818727A (zh) 用於發送遺失或損壞視訊資料信號之系統及方法
CN107634930B (zh) 一种媒体数据的获取方法和装置
TW201304551A (zh) 用於視訊編碼及解碼之方法及裝置
WO2013036450A1 (en) Network streaming of coded video data
US11321516B2 (en) Processing dynamic web content of an ISO BMFF web resource track
US20180176278A1 (en) Detecting and signaling new initialization segments during manifest-file-free media streaming
KR20160110424A (ko) Dash의 강건한 라이브 동작
US20210014558A1 (en) Media Information Processing Method, Related Device, and Computer Storage Medium
TW201841511A (zh) 用於視訊之改良式限制方案設計
CN115883855B (zh) 播放数据处理方法、装置、计算机设备和存储介质
BR112016016434B1 (pt) Método de transmissão adaptativa dinâmica através de http, dispositivo para receber, a partir de um dispositivo de servidor, dados relacionados a dados de mídia de transmissão contínua dash, método e dispositivo de sinalização

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030718

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant