CN111787420B - 一种数据处理方法及装置、电子设备、可读存储介质 - Google Patents
一种数据处理方法及装置、电子设备、可读存储介质 Download PDFInfo
- Publication number
- CN111787420B CN111787420B CN202010719941.6A CN202010719941A CN111787420B CN 111787420 B CN111787420 B CN 111787420B CN 202010719941 A CN202010719941 A CN 202010719941A CN 111787420 B CN111787420 B CN 111787420B
- Authority
- CN
- China
- Prior art keywords
- rtp
- media
- code stream
- data
- file
- 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
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/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种数据处理方法及装置、电子设备、可读存储介质。数据处理方法,包括:实时接收RTP码流数据;所述RTP码流数据中包括多个RTP数据包;在接收所述RTP码流数据的过程中,每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件;将在所述时间间隔内接收到的RTP数据包和所述RTP数据包的时间戳信息对应存储到所述媒体切片文件中,将存储时间和存储位置对应存储到所述索引描述文件中,并将每个媒体切片文件中的RTP数据包的时长信息存储到预先生成的媒体描述文件中;所述媒体描述文件中还预先存储有所述RTP码流数据的基础信息。该方法提高RTP码流数据存储的安全性和存储性能。
Description
技术领域
本申请涉及媒体数据处理技术领域,具体而言,涉及一种数据处理方法及装置、电子设备、可读存储介质。
背景技术
在媒体处理领域,RTP(Real-time Transport Protocol,实时传输协议)被广泛用于传输媒体的码流数据,码流媒体存储是媒体处理领域的关键环节。
通常的媒体存储都是将数据直接存储为可以直接播放的标准格式,这中间往往需要对音视频进行封装转换或者编码转换。音视频封装转换与音视频媒体格式转换均需要对原始RTP码流进行处理,处理本身需要考虑误码、干扰、断流、音视频时间戳异常等多种异常情况。需要处理完善所有异常,才能够保证存储的安全性,实现难度大,开发成本高。而额外的封装转换或者编码转换,均会占用一部分性能,让存储的性能降低。
因此,现有的RTP码流数据的存储方式安全性较差,且存储的性能不高。
发明内容
本申请实施例的目的在于提供一种数据处理方法及装置、电子设备、可读存储介质,用以提高RTP码流数据存储的安全性和存储性能。
第一方面,本申请实施例提供一种数据处理方法,包括:实时接收RTP码流数据;所述RTP码流数据中包括多个RTP数据包;在接收所述RTP码流数据的过程中,每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件;将在所述时间间隔内接收到的RTP数据包和所述RTP数据包的时间戳信息对应存储到所述媒体切片文件中,将存储时间和存储位置对应存储到所述索引描述文件中,并将每个媒体切片文件中的RTP数据包的时长信息存储到预先生成的媒体描述文件中;所述媒体描述文件中还预先存储有所述RTP码流数据的基础信息。
在本申请实施例中,在存储RTP码流数据时,与现有技术相比,并不会对RTP码流数据进行转换或者编码,而是通过媒体切片文件、索引描述文件以及预先生成的媒体描述文件来分别存储RTP数据包和RTP数据包的时间戳信息;存储时间和存储位置;以及RTP数据包的时长信息和RTP码流数据的基础信息。通过不同的文件来存储不同的信息和数据,避免存储时对原数据进行封装转换或者编码转换,能够直接进行存储,就可以避免在封装转换或者编码转换的过程中容易出现的安全性和性能占用的问题,进而能够提高RTP码流数据存储的安全性和存储性能;且采用分片的方式进行存储,还能够避免存储单个文件不断增大的问题;如果单个文件不断增大,会导致文件无法结束,无法被访问,假如录制时间太长(实时录播的应用场景),就无法在录制过程中进行播放。
作为一种可能的实现方式,在所述实时接收RTP码流数据之前,所述方法还包括:接收所述RTP码流数据对应的存储指令;所述存储指令中包括所述RTP码流数据的基础信息和总时长信息;基于所述RTP码流数据的基础信息和总时长信息生成所述媒体描述文件。
在本申请实施例中,可以在接收到RTP码流数据对应的存储指令时,根据存储指令中包含的信息来生成媒体描述文件,进而使接收到RTP码流数据时,能够利用媒体描述文件来存储对应的信息,提高码流数据存储的安全性和存储性能。
作为一种可能的实现方式,所述方法还包括:在接收所述RTP码流数据的过程中,根据接收到所述多个RTP数据包的实际时间更新所述媒体描述文件中存储的所述总时长信息。
在本申请实施例中,实际接收到的码流数据的时间可能与存储指令中的相关信息是不对应的,在接收RTP码流数据的过程中,可以根据实际的时间对相关信息进行更新,保证存储的准确性和可靠性。
作为一种可能的实现方式,所述RTP码流数据中包括不同媒体类型的码流数据;所述基础信息包括:不同媒体类型的码流数据的编码格式和编码信息;所述总时长信息包括开始时间和结束时间。
在本申请实施例中,RTP码流数据的基础信息可以包括不同媒体类型的码流数据的编码格式和编码信息;总时长信息可以包括开始时间和结束时间;将这些信息都进行存储,能够便于后续基于存储的数据进行数据的还原。
作为一种可能的实现方式,所述方法还包括:接收所述RTP码流数据的还原指令;获取所述媒体描述文件中存储的所述基础信息和RTP数据包的时长信息;根据所述RTP数据包的时长信息对所述索引描述文件中的存储时间进行检索,并根据检索到的存储时间对应的存储位置从所述媒体切片文件中获取RTP数据包;根据获取到的RTP数据包、所述RTP数据包的时间戳信息和所述基础信息对所述RTP数据包进行还原;按照所述RTP数据包的时间戳信息反馈还原的RTP数据包。
在本申请实施例中,还可以利用不同的文件中存储的信息和数据来对RTP码流数据进行还原,由于存储时没有采用封装转换或者编码转换,对应的在还原时,也能够简单快速地完成还原。
作为一种可能的实现方式,所述每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件,包括:每经过预设的时间间隔生成所述一个媒体切片文件和一个索引描述文件,并根据生成所述一个媒体切片文件和一个索引描述文件的时间生成所述一个媒体切片文件和一个索引描述文件的名称。
在本申请实施例中,在生成媒体切片文件和索引描述文件时,可以根据生成的时间来生成对应的名称,这样使存储的格式更规范,便于对存储的数据进行查找和利用。
作为一种可能的实现方式,所述媒体描述文件包括:用于存储时长信息的csv格式的文件和用于存储所述基础信息的txt格式的文件。
在本申请实施例中,媒体描述文件包括txt格式和csv格式的文件,这两种格式的文件,即便受到损坏,在有效信息足够的情况下,不会影响数据的使用,进而可以提高存储的稳定性。
第二方面,本申请实施例提供一种数据处理装置,包括用于实现第一方面以及第一方面的任意一种可能的实现方式中所述的方法的功能模块。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器和显示屏,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如第一方面以及第一方面的任意一种可能的实现方式中所述的方法。
第四方面,本申请实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时执行第一方面以及第一方面的任意一种可能的实现方式中所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据处理方法的流程图;
图2为本申请实施例提供的数据处理装置的功能模块结构框图;
图3为本申请实施例提供的电子设备的结构示意图。
图标:200-数据处理装置;201-接收模块;202-处理模块;300-电子设备;301-存储器;302-处理器;303-显示屏;304-输入输出模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例提供的数据处理方法应用于媒体数据的处理,该媒体数据为RTP码流数据,即,利用实时传输协议来进行传输的码流数据,其中,RTP码流数据可以为音视频(声音+视频)的码流数据。基于媒体数据的处理,该数据处理方法可以应用于需要进行媒体数据的处理的各个应用场景中,比如电视进行实时的直播或者点播时,对资源平台所下发的媒体资源数据的处理;再比如电子设备(手机、电脑等)在(各种视频播放软件上)播放视频时,对这些播放软件对应的服务器所下发的资源数据的处理等。因此,该数据处理方法可以应用于各种电子设备,包括手机、电脑、电视等智能的电子设备,这些电子设备所处理的RTP码流数据可以来自服务器或者其他客户端。
基于上述应用场景,接下来请参照图1,为本申请实施例提供的数据处理方法的流程图,该方法包括:
步骤101:实时接收RTP码流数据;RTP码流数据中包括多个RTP数据包。
步骤102:在接收RTP码流数据的过程中,每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件;将在时间间隔内接收到的RTP数据包和RTP数据包的时间戳信息对应存储到媒体切片文件中,将存储时间和存储位置对应存储到索引描述文件中,并将每个媒体切片文件中的RTP数据包的时长信息存储到预先生成的媒体描述文件中;媒体描述文件中还预先存储有RTP码流数据的基础信息。
在本申请实施例中,在存储RTP码流数据时,与现有技术相比,并不会对RTP码流数据进行转换或者编码,而是通过媒体切片文件、索引描述文件以及预先生成的媒体描述文件来分别存储RTP数据包和RTP数据包的时间戳信息;存储时间和存储位置;以及RTP数据包的时长信息和RTP码流数据的基础信息。通过不同的文件来存储不同的信息和数据,避免存储时对原数据进行封装转换或者编码转换,能够直接进行存储,就可以避免在封装转换或者编码转换的过程中容易出现的安全性和性能占用的问题,进而能够提高RTP码流数据存储的安全性和存储性能;且采用分片的方式进行存储,还能够避免存储单个文件不断增大的问题;如果单个文件不断增大,会导致文件无法结束,无法被访问,假如录制时间太长(实时录播的应用场景),就无法在录制过程中进行播放。
接下来对步骤101-步骤102的实施方式进行详细的介绍。
在步骤101中,实时接收RTP码流数据,对于接收的RTP码流数据,可以理解为需要进行存储的码流数据,这些需要进行存储的码流数据可以是预先已经规划并确定好的,比如:在某固定的时间段内,会接收到来自RTP数据传输方所发送的RTP码流数据,需要将该时间段内接收到的RTP码流数据进行存储。对于RTP码流数据来说,在实际传输时,分为多个RTP数据包进行传输,比如:通常采集一个视频或者音频,都是毫秒级,比如40毫秒采集一个视频图像,而一个视频图像编码后,会需要很多RTP数据包,比如一个图像编码后数据可能需要20个RTP数据包,1个RTP数据包可能只是一个完整的视频的一部分。
进一步地,在步骤102中,在实时接收RTP码流数据的过程中,为了对接收到RTP码流数据进行存储,通过生成媒体切片文件来存储RTP数据包和RTP数据包的时间戳信息;通过生成索引描述文件来存储RTP数据包的存储时间和存储位置;通过预先生成的媒体描述文件来存储RTP数据包的时长信息,以及预先存储的RTP码流数据的基础信息。可以理解,步骤102中,生成媒体切片文件和索引描述文件的过程是实时的,比如每隔1S就会生成1个媒体切片文件和1个索引描述文件,在实际应用时,间隔值至少为1S,即间隔值大于1S,比如可以设置间隔值为5min;而对于媒体描述文件来说,是预先生成的,在接收RTP数据的过程中,将相关信息存储到其中或者更新已存储的信息即可。
接下来对媒体切片文件、媒体描述文件和索引描述文件进行分别的介绍。
对于媒体切片文件,其中存储着RTP数据包和RTP数据包的时间戳信息。其中,媒体切片文件的后缀可以为dat,RTP数据包可以是UDP(User Datagram Protocol,用户数据包协议)数据包。对于每个RTP数据包的封装说,其封装格式可以包括:同步字、时间戳、负载长度和负载数据,那么对应的,对于一个媒体切片文件来说,总体为:N(RTP数据包的数量)*(同步字+时间戳+长度+RTP数据)=媒体切片.dat。其中,同步字的顺序为网络字节序;同步字的值可以自定义,比如为:0x3564,当数据发生错乱时,可以用于找到同步头;同步字占用16bit(比特)。时间戳用于代表收到当前的数据包时刻的系统时间戳,单位可为ms,占用64bit。负载长度为有效负载(数据)的长度,不包含自身,占用16bit。负载数据可理解为有效负载,为包含RTP头的数据,长度为负载长度的数值。
对于媒体切片文件的切片模式,可以是时间切片和大小(数据量大小)切片两种。切片大小可以设置:时间模式精确到分钟,大小模式精确到兆。
对于索引描述文件,其中存储着在时间间隔内接收到的RTP数据包的存储时间和存储位置,存储时间可以理解为在时间间隔内接收到的RTP数据包存储到媒体切片文件中的时间,存储位置可以理解为该存储时间内进行存储的RTP数据包在媒体切片文件中的起始位置。这个时间与切片中的RTP数据包的时间一致。比如:1s200ms到达一个RTP数据包后,5s100ms到达下一个数据包,则索引描述文件中第一个时间是1s200ms,第二个时间是5s100ms。如果1s200ms到达第一个,之后1s201ms到达第二个,n个到达时间为2s000ms,则索引描述文件中第一个为1s200ms,第二个为2s000ms。
需要注意的是,这里的存储时间指的是存储时的真实时间,也可以理解为系统时间(计算机时间)。索引描述文件的格式为idx。对于具有内容的媒体切片文件,索引描述文件才会记录。比如如果0-2S没有数据录制,则索引描述文件第一个记录的时间戳为3S。
需要注意的是,1个媒体切片文件对应1个索引描述文件,两者都是按照时间间隔来生成的,该时间间隔至少为1S。对于媒体切片文件和索引描述文件来说,两者的名称可以是一致的,但是由于文件格式不同,不同的文件格式的后缀名称是不同的,最终的名称也能够作区分。作为一种可选的实施方式,在生成媒体切片文件和索引描述文件时,根据生成媒体切片文件和索引描述文件的时间生成媒体切片文件和索引描述文件的名称。比如:在13:02该时间生成的媒体切片文件的名称可以是:1302.dat;索引描述文件的名称可以是:1302.idx。
在本申请实施例中,在生成媒体切片文件和索引描述文件时,可以根据生成的时间来生成对应的名称,这样使存储的格式更规范,便于对存储的数据进行查找和利用。
对于媒体描述文件,其中不仅存储了每个媒体切片文件中的RTP数据包的时长信息,还存储了RTP码流数据的基础信息。对于RTP码流数据的基础信息,作为一种可选的实施方式,在步骤101之前,该方法还包括:接收RTP码流数据对应的存储指令;存储指令中包括RTP码流数据的基础信息和总时长信息;基于RTP码流数据的基础信息和总时长信息生成媒体描述文件。
在前述实施例中介绍到,对于RTP码流数据的存储,可以按照预先下发存储指令的方式进行,因此,在还未正式存储前,在下发存储指令时,通常就可以通过该存储指令获取到RTP码流数据的基础信息和总时长信息,进而可以先基于获取到的基础信息和总时长信息生成媒体描述文件。其中,基础信息可以包括:不同媒体类型的码流数据的编码格式和编码信息;总时长信息可以包括开始时间和结束时间,即利用开始时间和结束时间来表示总时长。
在本申请实施例中,RTP码流数据的基础信息可以包括不同媒体类型的码流数据的编码格式和编码信息;总时长信息可以包括开始时间和结束时间;将这些信息都进行存储,能够便于后续基于存储的数据进行数据的还原。
进一步地,对于总时长信息,由于实际接收到RTP码流数据的时间可能与存储指令中的时间并不是完全对应的,因此,在接收RTP码流数据的过程中,可以根据接收到多个RTP数据包的实际时间更新媒体描述文件中存储的总时长信息。比如:根据接收到第一个RTP数据包的真实时间更新总时长信息中的开始时间,根据接收到的最后一个RTP数据包的真实时间更新总时长信息中的结束时间。
在本申请实施例中,可以在接收到RTP码流数据对应的存储指令时,根据存储指令中包含的信息来生成媒体描述文件,进而使接收到RTP码流数据时,能够利用媒体描述文件来存储对应的信息,提高码流数据存储的安全性和存储性能。并且实际接收到的码流数据的时间可能与存储指令中的相关信息是不对应的,在接收RTP码流数据的过程中,可以根据实际的时间对相关信息进行更新,保证存储的准确性和可靠性。
进一步地,对于媒体描述文件来说,可以包括总体媒体描述文件和分片媒体描述文件,总体媒体描述文件中存储RTP码流数据的基础信息和总时长信息;分片媒体描述文件中存储RTP数据包的时长信息。其中,总体媒体描述文件可以为txt格式,分片媒体描述文件可以为csv格式。txt属于文本文件,在有效信息足够的情况下,例如音视频格式,开始结束时间等有效信息明确的情况下,仍然不影响数据恢复播放。csv为格式文本文件,当损坏后,有效数据也可以用。
在本申请实施例中,媒体描述文件包括txt格式和csv格式的文件,这两种格式的文件,即便受到损坏,在有效信息足够的情况下,不会影响数据的使用,进而可以提高存储的稳定性。
当然,在实际应用时,也可以结合发生损坏的可能性大小来选择其他格式,比如idx格式,该格式的文件损坏后,影响精确定位(只能定位到片,无法定位到片内的某一秒)。再比如dat格式,该格式的文件损坏后,有同步字,除去损坏部分,其余仍然可以播放。若发生损坏的可能性较小,也可以选择这些格式。
进一步地,总体媒体描述文件如果使用文本格式,名称可以为config.txt,作为举例,总体媒体描述文件中的信息可以包括:vcodec=h264(视频的编码格式);vbitrate(码率,数据传输率)=1000000;acodec(音频的编码格式)=aac;achannel(音频的声道数)=2;asamplerate(音频的采样率)=48000;abitrate(音频的码率)=64000;sliceduration(切片长度)=5min或者sliceduration=5MB(两种模式);packet(数据的封包格式)=rtp;start(开始时间)=2016-10-09 13:00:00;end(结束时间)=2016-10-1013:00:05。其中,视频和音频的编码格式不限于上述举例中限定的格式,数据的封包还可以是扩展(ts),当为扩展时没有对应的音频目录文件夹。
作为举例,分片媒体描述文件中存储的信息可以为:
Name,start,end(可以有,也可以没有)
1302,13:02:00,13:07:00
1307,13:07:00,13:12:00
通过该分片描述文件可以看出,在13:02:00-13:07:00这段时间内生成了由多个RTP数据包组成的媒体切片文件,在13:07:00-13:12:00这段时间内也生成了由多个RTP数据包组成的媒体切片文件。假如分片媒体描述文件中存储的信息为:
Name,start,end
1302,13:02:00,13:07:00
1308,13:08:00,13:12:00
在这种情况下,在13:02:00-13:07:00这段时间内生成了由多个RTP数据包组成的媒体切片文件,在13:08:00-13:12:00这段时间内也生成了由多个RTP数据包组成的媒体切片文件,但是在13:07:00-13:08:00这段时间段内没有生成由多个RTP数据包组成的媒体切片文件。
进一步地,不管是预先生成的媒体描述文件,还是实时生成的媒体切片文件和索引描述文件,也可以设置对应的文件格式,当设置后,在生成时,按照对应的文件格式进行存储,以便于后续对这些文件的利用。作为举例,这三种文件的基本文件格式可以如下:
--总体媒体描述文件:config.txt
--视频文件夹:video
--日期文件夹:20200316(格式为年月日,年4位数字,月2位数字,日2位)
--分片媒体描述文件:des.csv(用于描述分片的内容,用于快速查询定位)
--时间媒体切片文件:1302.dat(格式为时分,时2位数字,分2位)
--时间索引描述文件:1302.idx(格式为时分,是2位数字,分2位)
--音频文件夹:audio
--日期文件夹:20200316(格式为年月日,年4位数字,月2位数字,日2位)
--分片媒体描述文件:des.csv(用于描述分片的内容,用于快速查询定位)
--时间媒体切片文件:1302.dat(格式为时分,时2位数字,分2位)
--时间索引描述文件:1302.idx(格式为时分,是2位数字,分2位)
其中,文件名称具有唯一性,不同的文件最外层文件夹名字不同(可以根据实际的应用场景进行设置)。
进一步地,当执行完步骤102后,RTP码流数据的相关数据和信息都进行了存储,对于这些存储的相关数据和信息,还可以进行RTP码流数据的还原,比如:在需要利用RTP码流数据进行播放时,就可以进行还原过程。因此,在步骤102后,该方法还可以包括:接收RTP码流数据的还原指令;获取媒体描述文件中存储的基础信息和RTP数据包的时长信息;根据RTP数据包的时长信息对索引描述文件中的存储时间进行检索,并根据检索到的存储时间对应的存储位置从媒体切片文件中获取RTP数据包;根据获取到的RTP数据包、RTP数据包的时间戳信息和基础信息对RTP数据包进行还原;按照RTP数据包的时间戳信息反馈还原的RTP数据包。
其中,还原指令可以是用户发起的,也可以是电子设备在处理进程的过程中自动拉取的,比如需要解析播放资源时等。当接收到还原指令后,首先从媒体描述文件中获取存储的基础信息和RTP数据包的时长信息,当获取到这两个信息后,时长信息中包含了开始时间和结束时间,那么就可以按照开始时间和结束时间对应查找到索引描述文件中的存储时间(即偏移时间),然后依据每个偏移时间对应的存储位置(每个偏移时间对应的在媒体切片文件中的位置),从媒体切片文件中获取到RTP数据包,当获取到RTP数据包后,再根据RTP数据包的时间戳信息和RTP数据码流的基础信息对各个RTP数据包进行还原,便可以得到还原的RTP码流数据。最后,再按照各个RTP数据包的时间戳信息来反馈还原的RTP数据码流(即各个RTP数据包是按照时间戳信息进行排序的)。
其中,依据时间戳信息和码流的基础信息来还原RTP数据包的实施方式为本领域技术人员的现有技术,在此不进行详细介绍。
可见,采用这种存储方式,在还原时,可以利用不同的文件中存储的信息和数据来对RTP码流数据进行还原,由于存储时没有采用封装转换或者编码转换,对应的在还原时,也能够简单快速地完成还原。
此外,媒体描述文件、索引描述文件以及媒体切片文件中存储的数据和信息除了可以共同用于RTP码流数据的还原,其中任意的一个文件中存储的信息都是可以供查询和获取的,比如:可以单独地从媒体描述文件中获取RTP数据码流的基础信息(比如码流信息和总时长)。
除了这种应用方式,利用媒体描述文件、索引描述文件以及媒体切片文件所存储的数据和信息,还可以支持循环录制、实时播放等功能。
对于实时播放的功能,相当于是存储完成后或者在存储时,就利用接收到的RTP码流数据进行还原和播放,此时播放利用的是实时存储的数据和信息。在这种情况下,媒体描述文件、索引描述文件以及媒体切片文件中存储的部分时间是系统时间(即接收到的系统时间,即设备本地时间),实际可以用来同步的时间戳信息存储在媒体切片文件中,而视频在实际进行播放时,是分了音频数据和视频数据的,如果要用存储的数据来实现回放功能,可能无法保证音频和视频在同一个时间的片内,在这种情况下,回放时可以通过多向前追溯一个切片来解决,即在利用存储的数据和信息进行实时的还原和播放时,每次多向前追溯一个或者多个切片来进行还原和播放。
接下来请参照图2,基于同一发明构思,本申请实施例中还提供一种数据处理装置200,包括接收模块201和处理模块202。
其中,接收模块201,用于实时接收RTP码流数据;所述RTP码流数据中包括多个RTP数据包。处理模块202,用于在接收所述RTP码流数据的过程中,每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件;将在所述时间间隔内接收到的RTP数据包和所述RTP数据包的时间戳信息对应存储到所述媒体切片文件中,将存储时间和存储位置对应存储到所述索引描述文件中,并将每个媒体切片文件中的RTP数据包的时长信息存储到预先生成的媒体描述文件中;所述媒体描述文件中还预先存储有所述RTP码流数据的基础信息。
可选的,接收模块201还用于接收所述RTP码流数据对应的存储指令;所述存储指令中包括所述RTP码流数据的基础信息和总时长信息。处理模块202还用于基于所述RTP码流数据的基础信息和总时长信息生成所述媒体描述文件。
可选的,处理模块202还用于在接收所述RTP码流数据的过程中,根据接收到所述多个RTP数据包的实际时间更新所述媒体描述文件中存储的所述总时长信息。
可选的,接收模块201用于接收所述RTP码流数据的还原指令;处理模块202还用于:获取所述媒体描述文件中存储的所述基础信息和RTP数据包的时长信息;根据所述RTP数据包的时长信息对所述索引描述文件中的存储时间进行检索,并根据检索到的存储时间对应的存储位置从所述媒体切片文件中获取RTP数据包;根据获取到的RTP数据包、所述RTP数据包的时间戳信息和所述基础信息对所述RTP数据包进行还原;按照所述RTP数据包的时间戳信息反馈还原的RTP数据包。
可选的,处理模块202具体用于每经过预设的时间间隔生成所述一个媒体切片文件和一个索引描述文件,并根据生成所述一个媒体切片文件和一个索引描述文件的时间生成所述一个媒体切片文件和一个索引描述文件的名称。
前述实施例中的数据处理方法中的各实施方式和具体实例同样适用于图2的装置,通过前述对数据处理方法的详细描述,本领域技术人员可以清楚地知道图2中的数据处理装置200的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,请参照图3,本申请实施例还提供一种电子设备300,前述实施例中所述的数据处理方法可应用于电子设备300。该电子设备300包括存储器301、处理器302以及数据处理装置200。还可以包括:显示屏303、输入输出模块304。该电子设备可以是电视、电脑、手机等各种智能电子设备。
存储器301、处理器302、显示屏303、输入输出模块304各元件之间直接或间接地电连接,以实现数据的传输或交互。例如,这些元件之间可以通过一条或多条通讯总线或信号总线实现电连接。群聊处理的方法分别包括至少一个可以以软件或固件(firmware)的形式存储于存储器301中的软件功能模块,例如数据处理装置200包括的软件功能模块或计算机程序。
存储器301可以存储各种软件程序以及模块,如本申请实施例提供的群聊处理的方法及装置对应的程序指令/模块。处理器302通过运行存储在存储器301中的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本申请实施例中的方法。此外,存储器301在处理器302运行程序的过程中,可以存储生成的媒体切片文件和索引描述文件,以及接收到的信息和数据。
存储器301可以包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read Only Memory,只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),EPROM(Erasable Programmable Read-Only Memory,可擦除只读存储器),EEPROM(Electric Erasable Programmable Read-Only Memory,电可擦除只读存储器)等。
处理器302可以是一种集成电路芯片,具有信号处理能力。处理器302可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
显示屏303在电子设备300与用户之间提供一个交互界面(例如用户操作界面)或用于显示处理过程中产生的结果给用户参考。在本申请实施例中,显示屏303可以是液晶显示屏或触控显示屏。若为触控显示屏,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示屏能感应到来自该触控显示屏上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器302进行计算和处理。例如,在本申请实施例中,显示屏303可以用于显示利用RTP码流数据还原得到的视频。
输入输出模块304用于提供给用户输入数据实现用户与电子设备300的交互。输入输出模块304可以是,但不限于,鼠标和键盘等。例如,用户通过输入输出模块304输入相关的数据或者信息等。
可以理解,图3所示的结构仅为示意,电子设备300还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
基于同一发明构思,本申请实施例还提供一种可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被计算机运行时执行上述任一实施方式的数据处理方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
实时接收RTP码流数据;所述RTP码流数据中包括多个RTP数据包;
在接收所述RTP码流数据的过程中,每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件;将在所述时间间隔内接收到的RTP数据包和所述RTP数据包的时间戳信息对应存储到所述媒体切片文件中,将存储时间和存储位置对应存储到所述索引描述文件中,并将每个媒体切片文件中的RTP数据包的时长信息存储到预先生成的媒体描述文件中;所述媒体描述文件中还预先存储有所述RTP码流数据的基础信息;
其中,所述存储时间为在所述时间间隔内接收到的RTP数据包存储到所述媒体切片文件中的时间;所述存储位置为所述存储时间内进行存储的RTP数据包在所述媒体切片文件中的起始位置;所述时长信息用于在还原所述RTP码流数据时,查找所述存储时间;所述时间戳信息为收到所述RTP数据包时的系统时间。
2.根据权利要求1所述的方法,其特征在于,在所述实时接收RTP码流数据之前,所述方法还包括:
接收所述RTP码流数据对应的存储指令;所述存储指令中包括所述RTP码流数据的基础信息和总时长信息;
基于所述RTP码流数据的基础信息和总时长信息生成所述媒体描述文件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在接收所述RTP码流数据的过程中,根据接收到所述多个RTP数据包的实际时间更新所述媒体描述文件中存储的所述总时长信息。
4.根据权利要求2所述的方法,其特征在于,所述RTP码流数据中包括不同媒体类型的码流数据;所述基础信息包括:不同媒体类型的码流数据的编码格式和编码信息;所述总时长信息包括开始时间和结束时间。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述RTP码流数据的还原指令;
获取所述媒体描述文件中存储的所述基础信息和RTP数据包的时长信息;
根据所述RTP数据包的时长信息对所述索引描述文件中的存储时间进行检索,并根据检索到的存储时间对应的存储位置从所述媒体切片文件中获取RTP数据包;
根据获取到的RTP数据包、所述RTP数据包的时间戳信息和所述基础信息对所述RTP数据包进行还原;
按照所述RTP数据包的时间戳信息反馈还原的RTP数据包。
6.根据权利要求1所述的方法,其特征在于,所述每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件,包括:
每经过预设的时间间隔生成所述一个媒体切片文件和一个索引描述文件,并根据生成所述一个媒体切片文件和一个索引描述文件的时间生成所述一个媒体切片文件和一个索引描述文件的名称。
7.根据权利要求1所述的方法,其特征在于,所述媒体描述文件包括:用于存储时长信息的csv格式的文件和用于存储所述基础信息的txt格式的文件。
8.一种数据处理装置,其特征在于,包括:
接收模块,用于实时接收RTP码流数据;所述RTP码流数据中包括多个RTP数据包;
处理模块,用于在接收所述RTP码流数据的过程中,每经过预设的时间间隔生成一个媒体切片文件和一个索引描述文件;将在所述时间间隔内接收到的RTP数据包和所述RTP数据包的时间戳信息对应存储到所述媒体切片文件中,并将存储时间和存储位置对应存储到所述索引描述文件中,并将每个媒体切片文件中的RTP数据包的时长信息存储到预先生成的媒体描述文件中;所述媒体描述文件中还预先存储有所述RTP码流数据的基础信息;
其中,所述存储时间为在所述时间间隔内接收到的RTP数据包存储到所述媒体切片文件中的时间;所述存储位置为所述存储时间内进行存储的RTP数据包在所述媒体切片文件中的起始位置;所述时长信息用于在还原所述RTP码流数据时,查找所述存储时间;所述时间戳信息为收到所述RTP数据包时的系统时间。
9.一种电子设备,其特征在于,包括存储器、处理器和显示屏,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如权利要求1-7中任一项所述的方法。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010719941.6A CN111787420B (zh) | 2020-07-23 | 2020-07-23 | 一种数据处理方法及装置、电子设备、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010719941.6A CN111787420B (zh) | 2020-07-23 | 2020-07-23 | 一种数据处理方法及装置、电子设备、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111787420A CN111787420A (zh) | 2020-10-16 |
CN111787420B true CN111787420B (zh) | 2022-11-04 |
Family
ID=72764864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010719941.6A Active CN111787420B (zh) | 2020-07-23 | 2020-07-23 | 一种数据处理方法及装置、电子设备、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111787420B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095737B (zh) * | 2021-11-29 | 2023-03-31 | 腾讯科技(深圳)有限公司 | 媒体文件封装及解封装方法、装置、设备及存储介质 |
CN117953904A (zh) * | 2022-10-31 | 2024-04-30 | 抖音视界有限公司 | 一种音频编码数据包的处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193273A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 一种实时多媒体图像信息存储和播放方法 |
CN101227602A (zh) * | 2007-01-18 | 2008-07-23 | 中兴通讯股份有限公司 | 文件存储方法和文件播放方法 |
CN103051931A (zh) * | 2011-10-11 | 2013-04-17 | 中兴通讯股份有限公司 | 回看节目录制、播放方法、服务器、客户端及系统 |
CN108769789A (zh) * | 2018-05-31 | 2018-11-06 | 海能达通信股份有限公司 | 一种基于切片的rtp流媒体存储、读取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003900137A0 (en) * | 2003-01-14 | 2003-01-30 | Canon Kabushiki Kaisha | Process and format for reliable storage of data |
-
2020
- 2020-07-23 CN CN202010719941.6A patent/CN111787420B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193273A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 一种实时多媒体图像信息存储和播放方法 |
CN101227602A (zh) * | 2007-01-18 | 2008-07-23 | 中兴通讯股份有限公司 | 文件存储方法和文件播放方法 |
CN103051931A (zh) * | 2011-10-11 | 2013-04-17 | 中兴通讯股份有限公司 | 回看节目录制、播放方法、服务器、客户端及系统 |
CN108769789A (zh) * | 2018-05-31 | 2018-11-06 | 海能达通信股份有限公司 | 一种基于切片的rtp流媒体存储、读取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111787420A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9203642B2 (en) | Method and system for collecting data on a wireless device | |
CN110430457B (zh) | 异端音视频播放方法、装置及音视频播放系统 | |
US20070011699A1 (en) | Providing identification of broadcast transmission pieces | |
US9661104B2 (en) | Method and apparatus for receiving presentation metadata | |
CN111010614A (zh) | 一种显示直播字幕的方法、装置、服务器及介质 | |
CN111787420B (zh) | 一种数据处理方法及装置、电子设备、可读存储介质 | |
CN108989854B (zh) | 用于流媒体的输送和渲染的播放列表错误标签 | |
CN103118302B (zh) | 数字内容版本切换的方法以及相应设备 | |
US10798145B1 (en) | Analyzing data streams | |
WO2020155964A1 (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
CN112954434B (zh) | 字幕处理方法、系统、电子设备和存储介质 | |
CN110996160B (zh) | 视频处理方法、装置、电子设备及计算机可读取存储介质 | |
CN108174242A (zh) | 直播数据复用方法、装置、存储介质及设备 | |
CN109151505B (zh) | 一种视频转码方法、系统、装置及计算机可读存储介质 | |
CN105577645A (zh) | 基于代理的hls客户端装置及其实现方法 | |
CN108028708A (zh) | 数据处理装置和数据处理方法 | |
CN111629283B (zh) | 一种多流媒体网关服务系统及方法 | |
CN107566794B (zh) | 一种视频数据的处理方法、系统及终端设备 | |
CN109889922B (zh) | 流媒体数据的转发方法、装置、设备和存储介质 | |
JP2015525515A (ja) | トランスポートストリームマルチプレクサおよびトランスポートストリーム上にパケットを提供する方法 | |
CN108810575B (zh) | 一种发送目标视频的方法和装置 | |
CN112235600B (zh) | 视频数据及视频业务请求的处理方法、装置及系统 | |
CN104639976A (zh) | 机顶盒与移动终端节目同步的方法、机顶盒及移动终端 | |
CN113132759A (zh) | 视频起播时延确定方法、装置、服务器、系统及存储介质 | |
US8850504B2 (en) | Method and system for comparing media assets |
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 |