CN115756329A - 一种数据处理方法及装置、存储介质 - Google Patents
一种数据处理方法及装置、存储介质 Download PDFInfo
- Publication number
- CN115756329A CN115756329A CN202211468013.2A CN202211468013A CN115756329A CN 115756329 A CN115756329 A CN 115756329A CN 202211468013 A CN202211468013 A CN 202211468013A CN 115756329 A CN115756329 A CN 115756329A
- Authority
- CN
- China
- Prior art keywords
- data
- audio
- video
- memory
- acquisition request
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种数据处理方法及装置、存储介质,包括:在接收到推流端传输的音视频数据的情况下,将音视频数据写入内存;在接收到客户端传输的音视频获取请求的情况下,根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据;向客户端传输目标数据。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法及装置、存储介质。
背景技术
随着互联网技术的发展,直播逐渐受到人们的青睐,参与直播的主播人数也越来越多,观看直播的观众数量也在增加。
相关技术中,音视频流采集端采集到音视频流的情况下,就将音视频流传输至服务器的硬盘中,客户端可以直接从服务器的硬盘中获取到直播数据进行播放,以供客户端的观众观看。由于在客户端获取直播数据时,直播服务器需要先将直播数据从硬盘转入内存中,通过内存将该直播数据传给客户端,而硬盘进行数据读写时的速度慢,如此,降低了直播数据的获取速率。
发明内容
为解决上述技术问题,本申请实施例期望提供一种数据处理方法及装置、存储介质,能够提高直播数据的获取速率。
本申请的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,所述数据处理方法包括:
在接收到推流端传输的音视频数据的情况下,将所述音视频数据写入内存;
在接收到客户端传输的音视频获取请求的情况下,根据所述音视频获取请求从所述内存中获取与所述音视频获取请求对应的目标数据;
向所述客户端传输所述目标数据。
本申请实施例提供了一种数据处理装置,所述装置包括:
写入单元,用于在接收到推流端传输的音视频数据的情况下,将所述音视频数据写入内存;
获取单元,用于在接收到客户端传输的音视频获取请求的情况下,根据所述音视频获取请求从所述内存中获取与所述音视频获取请求对应的目标数据;
传输单元,用于向所述客户端传输所述目标数据。
本申请实施例提供了一种数据处理装置,所述装置包括:
存储器、处理器和通信总线,所述存储器通过所述通信总线与所述处理器进行通信,所述存储器存储所述处理器可执行的数据处理的程序,当所述数据处理的程序被执行时,通过所述处理器执行上述所述的数据处理方法。
本申请实施例提供了一种存储介质,其上存储有计算机程序,应用于数据处理装置,其特征在于,该计算机程序被处理器执行时实现上述所述的数据处理方法。
本申请实施例提供了一种数据处理方法及装置、存储介质,数据处理方法包括:在接收到推流端传输的音视频数据的情况下,将音视频数据写入内存;在接收到客户端传输的音视频获取请求的情况下,根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据;向客户端传输目标数据。采用上述方法实现方案,数据处理装置在接收到推流端传输的音视频数据的情况下,直接将音视频数据写入内存,在客户端传输的音视频获取请求的情况下,数据处理装置可以直接从内存中获取该音视频获取请求对应的目标数据,不需要再经过硬盘来读取该目标数据,提高了直播数据的获取速率。
附图说明
图1为本申请实施例提供的一种数据处理流程示意图;
图2为本申请实施例提供的一种示例性的live m3u8示意图;
图3为本申请实施例提供的一种示例性的主m3u8示意图;
图4为本申请实施例提供的一种示例性的会话标识组成结构示意图;
图5为本申请实施例提供的一种示例性的数据处理结构说明示意图一;
图6为本申请实施例提供的一种示例性的数据处理结构说明示意图二;
图7为本申请实施例提供的一种示例性的音视频数据封装示意图;
图8为本申请实施例提供的一种数据处理装置的组成结构示意图一;
图9为本申请实施例提供的一种数据处理装置的组成结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供了一种数据处理方法,一种数据处理方法应用于数据处理装置,图1为本申请实施例提供的一种数据处理方法流程图,如图1所示,数据处理方法可以包括:
S101、在接收到推流端传输的音视频数据的情况下,将音视频数据写入内存。
本申请实施例提供的一种数据处理方法适用于对接收到推流端传输的音视频数据进行处理的场景下。
在本申请实施例中,数据处理装置可以以各种形式来实施。例如,本申请中描述的数据处理装置可以包括诸如手机、照相机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等装置,以及诸如数字TV、台式计算机、服务器等装置。
在本申请实施例中,推流端为主播直播时所使用的应用端。其中,该推流应用端可以为应用程序(Application,APP)。客户端为观众观看直播时所使用的应用端。其中,该客户端也可以为APP。
在本申请实施例中,音视频数据为推流端采集的直播直播时的直播数据。
在本申请实施例中,推流端在采集到主播直播时的直播数据的情况下,先对该直播数据进行编码,得到音视频数据,然后再向数据处理装置传输该音视频数据。
在本申请实施例中,对直播数据进行编码,得到音视频数据的方式,可以为对直播数据进行H264编码得到音视频数据;也可以为对直播数据进行高级音频编码(AdvancedAudio Coding,AAC)编码,得到音视频数据;还可以为以其他的方式对直播数据进行编码得到音视频数据;具体的对直播数据进行编码,得到音视频数据的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,数据处理装置将音视频数据写入内存的过程,包括:数据处理装置确定配置的切片长度;根据切片长度对音视频数据进行切片,得到多个切片数据;将多个切片数据依次写入内存。
在本申请实施例中,数据处理装置中设置有配置界面,数据处理装置可以从配置界面获取配置的切片长度。
需要说明的是,切片长度可以为切片的时长参数;切片长度可以为传输流(Transport Sream,TS)的长度;切片长度还可以为TS的整数倍的长度;切片长度也可以为其他约束音视频切片的长度的参数;具体的切片长度可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,切片数据包括视频切片数据和音频切片数据,即多个切片数据包括多个视频切片数据和多个音频切片数据。
在本申请实施例中,数据处理装置包括基于HTTP的自适应码率流媒体传输协议(HTTP Live Streaming,hls)模块,hls模块中配置有mpegts_cache_time(切片长度),用于支持配置hls gop cache时间。
在本申请实施例中,数据处理装置还包括HLS内存切片模块,用于根据切片长度对音视频数据进行切片,得到多个切片数据;并将多个切片数据依次写入内存。
在本申请实施例中,多个切片数据包括多个视频切片数据;数据处理装置将多个切片数据依次写入内存的过程,包括:数据处理装置检测内存中配置的剩余视频容量;在剩余视频容量小于或者等于预设第一容量阈值的情况下,将内存中的第一视频切片数据删除;将多个视频切片数据中的第一个视频切片数据写入内存;直至依次将将多个视频切片数据中的每一个视频切片数据写入内存。
在本申请实施例中,预设第一容量阈值可以为数据处理装置中配置的阈值;预设第一容量阈值也可以为其他设备传输至数据处理装置中的阈值;具体的数据处理装置得到预设第一容量阈值的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,第一视频切片数据为内存中时间最早的视频数据。
在本申请实施例中,数据处理装置在接收到多个视频切片数据中的第一个视频切片数据的情况下,就进入gop cache函数逻辑,检测内存(cache)中配置的剩余视频容量(检查cache是否超出配置时长),在剩余视频容量小于或者等于预设第一容量阈值(cache超出配置时长)的情况下,将内存中的第一视频切片数据(gop cache)删除,并将第一个视频切片数据写入内存(cache buffer);对于多个视频切片数据中的第二个视频切片数据,再次检测内存(cache)中配置的剩余视频容量(检查cache是否超出配置时长),在剩余视频容量小于或者等于预设第一容量阈值(cache超出配置时长)的情况下,将内存中的第一视频切片数据(gop cache)删除,并将第二个视频切片数据写入内存(cache buffer);对于多个视频切片数据中的第三个视频切片数据,再次检测内存(cache)中配置的剩余视频容量(检查cache是否超出配置时长),在剩余视频容量小于或者等于预设第一容量阈值(cache超出配置时长)的情况下,将内存中的第一视频切片数据(gop cache)删除,并将第三个视频切片数据写入内存(cache buffer);…;直至依次将多个视频切片数据中的每一个视频切片数据写入内存。
需要说明的是,数据处理装置检测内存中配置的剩余视频容量之后,在剩余视频容量大于预设第一容量阈值的情况下,则直接将第一个视频切片数据写入内存。
需要说明的是,对于多个视频切片数据中的每一个视频切片数据,数据处理装置检测内存中配置的剩余视频容量之后,在剩余视频容量大于预设第一容量阈值的情况下,则直接将每一个视频切片数据写入内存。
在本申请实施例中,多个切片数据包括多个音频切片数据;数据处理装置将多个切片数据依次写入内存的过程,包括:数据处理装置检测内存中配置的剩余音频容量;在剩余音频容量小于或者等于预设第二容量阈值的情况下,将内存中的第一音频切片数据删除;将多个音频切片数据依次写入内存。
在本申请实施例中,预设第二容量阈值可以为数据处理装置中配置的阈值;预设第二容量阈值也可以为其他设备传输至数据处理装置中的阈值;具体的数据处理装置得到预设第二容量阈值的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,预设第二容量阈值和预设第一容量阈值可以相同;预设第二容量阈值和预设第一容量阈值也可以不同;具体的可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,第一音频切片数据为内存中时间最早的音频数据。
在本申请实施例中,数据处理装置在接收到多个音频切片数据中的第一个音频切片数据的情况下,就进入gop cache函数逻辑,检测内存(cache)中配置的剩余音频容量(检查cache是否超出配置时长),在剩余音频容量小于或者等于预设第二容量阈值(cache超出配置时长)的情况下,将内存中的第一音频切片数据(当前时刻,内存中时间最早的一帧音频数据)删除,并将第一个音频切片数据写入内存(cache buffer);对于多个音频切片数据中的第二个音频切片数据,再次检测内存(cache)中配置的剩余音频容量(检查cache是否超出配置时长),在剩余音频容量小于或者等于预设第二容量阈值(cache超出配置时长)的情况下,将内存中的第一音频切片数据(当前时刻,内存中时间最早的一帧音频数据)删除,并将第二个音频切片数据写入内存(cache buffer);对于多个音频切片数据中的第三个音频切片数据,再次检测内存(cache)中配置的剩余音频容量(检查cache是否超出配置时长),在剩余音频容量小于或者等于预设第二容量阈值(cache超出配置时长)的情况下,将内存中的第一音频切片数据(当前时刻,内存中时间最早的一帧音频数据)删除,并将第三个音频切片数据写入内存(cache buffer);…;直至依次将将多个音频切片数据中的每一个音频切片数据写入内存。
需要说明的是,数据处理装置检测内存中配置的剩余音频容量之后,在剩余音频容量大于预设第二容量阈值的情况下,则直接将第一个音频切片数据写入内存。
需要说明的是,对于多个音频切片数据中的每一个音频切片数据,数据处理装置检测内存中配置的剩余音频容量之后,在剩余音频容量大于预设第二容量阈值的情况下,则直接将每一个音频切片数据写入内存。
可以理解的是,由于音视频数据的写入内存,并从内存中读取音视频数据,使得数据读取不经过硬盘,解决了硬盘输入输出瓶颈,提高硬盘数据读取时的读取速度。
S102、在接收到客户端传输的音视频获取请求的情况下,根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据。
在本申请实施例中,数据处理装置将音视频数据写入内存之后,在接收到客户端传输的音视频获取请求的情况下,数据处理装置就可以根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据。
在本申请实施例中,目标数据为音视频数据中的部分数据。如,目标数据为音视频数据中的一个切片数据。
在本申请实施例中,数据处理装置根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据的过程,包括:数据处理装置从音视频获取请求中获取会话标识;根据会话标识确定目标数据;从内存中获取目标数据。
需要说明的是,音视频获取请求中携带有会话标识。
在本申请实施例中,会话标识可以为一组数字形成的标识;会话标识也可以为一组字符构成的标识;会话标识也可以为数字和字符结合构成的标识;会话标识也可以是其他组成形式的标识;具体的会话标识可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,会话标识为在短连接中,标识同一个客户端请求同一主播直播时的音视频数据时的标识。
在本申请实施例中,数据处理装置中包括超文本传输协议(Hyper TextTransferProtocol,HTTP)模块,数据处理装置可以利用http模块根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据。
需要说明的是,http模块中设置有内存访问开关,内存访问开关用于支持配置http回源hls内存切片。在内存访问开关处于打开状态的情况下,http模块就根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据。
示例性的,内存访问开关可以为配置的hls2memory_live。
在本申请实施例中,音视频获取请求可以为http m3u8形式的请求。
可以理解的是,数据处理装置利用会话标识来标识客户端读取的主播直播时的音视频数据情况,即对每个客户端维持一个独立的进度,有效解决了传统hls起播时可能长时间没有关键帧、不能利用关键帧进行数据解码得到显示数据的情况,提高了首屏显示速度。
在本申请实施例中,数据处理装置根据会话标识确定目标数据的过程,包括:数据处理装置获取与会话标识对应的播放进度信息;根据播放进度信息生成播放列表;向客户端传输播放列表,以供客户端根据播放列表确定请求数据;在接收到请求数据的数据获取请求的情况下,根据数据获取请求确定目标数据。
在本申请实施例中,数据处理装置可以根据会话标识确定出是与之通信的目标客户端、以及待获取的目标主播的音视频数据,并获取上一次给该客户端传输的数据记录,根据数据记录确定出上一次传输的上一目标数据,并获取上一目标数据的索引列表,将上一目标数据和上一目标数据的索引列表作为该播放进度信息。
在本申请实施例中,数据处理装置将上一目标数据的索引列表对应的字符串和上一目标数据对应的字符串写入文本中,即生成了与会话标识对应的播放进度信息。
需要说明的是,上一目标数据的索引列表和上一目标数据可以为直播hlssession相关信息。播放进度信息可以为动态生成的live m3u8。
示例性的,动态生成的live m3u8如图2所示。
在本申请实施例中,数据处理装置可以利用现有技术中的数据传输方式向客户端传输该播放列表;具体的数据处理装置向客户端传输该播放列表可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,数据处理装置从音视频获取请求中获取会话标识的过程,包括:在音视频获取请求中不存在会话标识的情况下,生成会话标识;向客户端传输会话标识,以供客户端将会话标识添加至音视频获取请求中,得到更新后的音视频获取请求;并根据更新后的音视频获取请求获取目标数据;在音视频获取请求中存在会话标识的情况下,获取会话标识。
在本申请实施例中,数据处理装置可以利用现有技术中的数据传输方式向客户端传输会话标识;具体的数据处理装置向客户端传输会话标识的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,数据处理装置向客户端传输会话标识的过程,可以为数据处理装置将该会话标识写入文本中,得到携带有会话标识的文本;并向客户端传输该携带有会话标识的文本。
需要说明的是,携带有会话标识的文本可以为一级master m3u8嵌套信息。示例性的,一级master m3u8嵌套信息如图3所示,共有3行信息,其中第三行为统一资源定位系统(uniform resource locator;URL),URL中包括会话标识。
在本申请实施例中,客户端在接收到会话标识的情况下,客户端就将该会话标识添加至音视频获取请求中,得到更新后的音视频获取请求;然后再向数据处理装置传输更新后的音视频获取请求,根据更新后的音视频获取请求从数据处理装置中请求目标数据。
需要说明的是,数据处理装置在接收到客户端传输的更新后的音视频获取请求之后,就从更新后的音视频获取请求中获取会话标识,根据会话标识确定目标数据;然后从内存中获取目标数据。
在本申请实施例中,数据处理装置生成会话标识的过程,包括:确定接收到音视频获取请求的时间信息,以及音视频获取请求的请求次数信息;确定处理音视频获取请求的进程号信息;从音视频获取请求中获取与客户端之间建立连接时的连接号信息;将时间信息、请求次数信息、进程号信息和连接号信息进行拼接,得到会话标识。
在本申请实施例中,将时间信息、请求次数信息、进程号信息和连接号信息进行拼接,得到会话标识的方式,可以为在时间信息的后面依次拼接请求次数信息、进程号信息和连接号信息,从而得到会话标识;也可以为在请求次数信息的后面依次拼接时间信息、进程号信息和连接号信息,从而得到会话标识;还可以为以其他的拼接方式对时间信息、请求次数信息、进程号信息和连接号信息进行拼接,得到会话标识;具体的将时间信息、请求次数信息、进程号信息和连接号信息进行拼接,得到会话标识的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
在本身申请实施例中,数据处理装置也可以以其他的方式、根据其他参数生成会话标识;具体的数据处理装置生成会话标识的方式和生成会话标识所用参数可以根据实际情况进行确定,本申请实施例对此不作限定。
示例性的,可以按照如图4的拼接方式对时间信息、请求次数信息、进程号信息和连接号信息进行拼接,具体的:在时间信息(UTC时间戳)的后面依次拼接请求次数信息(连接累计数)、进程号信息(进程号)和连接号信息(session连接号),从而得到会话标识。
S103、向客户端传输目标数据。
在本申请实施例中,数据处理装置根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据之后,数据处理装置就可以向客户端传输目标数据。
在本申请实施例中,数据处理装置向客户端传输目标数据的过程,包括:数据处理装置按照预设数据封装格式,对目标数据进行封装,得到目标文件;向客户端传输目标文件。
在本申请实施例中,预设数据封装格式可以为数据处理装置中配置的数据封装格式;预设数据封装格式也可以为其他设备传输至数据处理装置中的数据封装格式;预设数据封装格式还可以为数据处理装置以其他的方式获取到的数据封装格式;具体的数据处理装置得到预设数据封装格式的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,预设数据封装格式可以为mpegts http动态封装格式;预设数据封装格式也可以为其他的封装格式;具体的预设数据封装格式可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,数据处理装置可以利用现有技术中的数据传输方式向客户端传输目标文件;具体的数据处理装置向客户端传输目标文件的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
示例性的,数据处理装置在接收到请求数据的数据获取请求(http ts请求)的情况下,解析session(数据获取请求中携带的会话标识)等参数,获取直播hls session相关信息,根据session查找ts fragment数据(目标数据),并触发mpegts http动态封装frame生产ts body数据(目标文件)。
示例性的,如图5所示:推流端在采集到主播直播时的直播数据的情况下,先对该直播数据进行编码(H264/AAC编码),得到音视频数据,然后再以RTMP传输协议向数据处理装置(直播流服务器)传输该音视频数据,并在数据处理装置中,利用HLS内存切片(模块)对音视频数据进行切片处理,得到多个切片数据,将多个切片数据依次写入内存,在接收到客户端(音视频播放客户端)传输的音视频获取请求的情况下,根据音视频获取请求从内存中获取与音视频获取请求对应的目标数据;通过HLS方式向客户端传输目标数据。
示例性的,如图6所示:服务器端(数据处理装置)在接收到推流端通过rtmp推流方式传输的音视频数据的情况下,将音视频数据写入内存(rtmp cache、ts cache),在接收到客户端(HLS播放器)传输的音视频获取请求(请求m3u8)、且音视频获取请求中不存在会话标识的情况下,生成会话标识;向客户端传输会话标识(返回携带sessionID的二级m3u8),以供客户端将会话标识添加至音视频获取请求中,得到更新后的音视频获取请求;在接收到客户端传输的更新后的音视频获取请求(请求sessionID m3u8)的情况下,从更新后的音视频获取请求中获取会话标识;获取与会话标识对应的播放进度信息;根据播放进度信息生成播放列表;向客户端传输播放列表(返回携带ts索引m3u8),以供客户端根据播放列表确定请求数据;在接收到请求数据的数据获取请求(请求1.ts)的情况下,根据数据获取请求确定目标数据(从ts cache中定位1.ts地址);从内存中获取目标数据;向客户端传输目标数据(返回1.ts)。在接收到请求数据的数据获取请求(请求2.ts)的情况下,根据数据获取请求确定目标数据(从ts cache中定位2.ts地址);从内存中获取目标数据;向客户端传输目标数据(返回2.ts)。在接收到请求数据的数据获取请求(请求3.ts)的情况下,根据数据获取请求确定目标数据(从ts cache中定位3.ts地址);从内存中获取目标数据;向客户端传输目标数据(返回3.ts)。
示例性的,如图7所示,推流端向数据处理装置传输音视频数据(HLSLiveEncoder),音视频数据为对直播数据进行编码(H264/AAC编码)后得到的数据;数据处理装置按照分片策略对音视频数据进行分片(切片),得到多个切片数据;将多个切片数据依次写入内存;在接收到客户端传输的音视频获取请求的情况下,从音视频获取请求中获取会话标识;获取与会话标识对应的播放进度信息;根据播放进度信息生成播放列表;向客户端传输播放列表(更新M3u8列表),以供客户端根据播放列表确定请求数据;在接收到请求数据的数据获取请求的情况下,根据数据获取请求确定目标数据;从内存中获取目标数据(TsMuxer);按照预设数据封装格式,对目标数据进行封装,得到目标文件;向客户端传输目标文件(Live_xxx.ts)。
可以理解的是,数据处理装置在接收到推流端传输的音视频数据的情况下,直接将音视频数据写入内存,在客户端传输的音视频获取请求的情况下,数据处理装置可以直接从内存中获取该音视频获取请求对应的目标数据,不需要再经过硬盘来读取该目标数据,提高了直播数据的获取速率。
基于与上述数据处理方法的同一发明构思,本申请实施例提供了一种数据处理装置1,对应于一种数据处理方法;图8为本申请实施例提供的一种数据处理装置的组成结构示意图一,该数据处理装置1可以包括:
写入单元11,用于在接收到推流端传输的音视频数据的情况下,将所述音视频数据写入内存;
获取单元12,用于在接收到客户端传输的音视频获取请求的情况下,根据所述音视频获取请求从所述内存中获取与所述音视频获取请求对应的目标数据;
传输单元13,用于向所述客户端传输所述目标数据。
在本申请的一些实施例中,所述装置还包括确定单元和切片单元;
所述确定单元,用于确定配置的切片长度;
所述切片单元,用于根据所述切片长度对所述音视频数据进行切片,得到多个切片数据;
所述写入单元11,用于将所述多个视频切片数据中的第一个视频切片数据写入所述内存;直至依次将所述将所述多个视频切片数据中的每一个视频切片数据写入所述内存。
在本申请的一些实施例中,所述多个切片数据包括多个视频切片数据;所述装置包括检测单元、删除单元;
所述检测单元,用于检测所述内存中配置的剩余视频容量;
所述删除单元,用于在所述剩余视频容量小于或者等于预设第一容量阈值的情况下,将所述内存中的第一视频切片数据删除;所述第一视频切片数据为内存中时间最早的视频数据;
所述写入单元11,用于将所述多个音频切片数据中的第一个音频切片数据写入所述内存;直至依次将所述多个音频切片数据中的每一个音频切片数据写入所述内存。
在本申请的一些实施例中,所述多个切片数据包括多个音频切片数据;
所述检测单元,用于检测所述内存中配置的剩余音频容量;
所述删除单元,用于在所述剩余音频容量小于或者等于预设第二容量阈值的情况下,将所述内存中的第一音频切片数据删除;所述第一音频切片数据为内存中时间最早的音频数据;
所述写入单元11,用于将所述多个音频切片数据依次写入所述内存。
在本申请的一些实施例中,所述获取单元12,用于从所述音视频获取请求中获取会话标识;从所述内存中获取所述目标数据;
所述确定单元,用于根据所述会话标识确定所述目标数据。
在本申请的一些实施例中,所述装置还包括生成单元;
所述获取单元12,用于获取与所述会话标识对应的播放进度信息;
所述生成单元,用于根据所述播放进度信息生成播放列表;
所述传输单元13,用于向客户端传输所述播放列表,以供客户端根据所述播放列表确定请求数据;
所述确定单元,用于在接收到所述请求数据的数据获取请求的情况下,根据所述数据获取请求确定所述目标数据。
在本申请的一些实施例中,所述生成单元,用于在所述音视频获取请求中不存在所述会话标识的情况下,生成所述会话标识;
所述传输单元13,用于向所述客户端传输所述会话标识,以供所述客户端将所述会话标识添加至所述音视频获取请求中,得到更新后的音视频获取请求;并根据更新后的音视频获取请求获取目标数据;
所述获取单元12,用于在所述音视频获取请求中存在所述会话标识的情况下,获取所述会话标识。
在本申请的一些实施例中,所述装置还包括拼接单元;
所述确定单元,用于确定接收到所述音视频获取请求的时间信息,以及所述音视频获取请求的请求次数信息;确定处理所述音视频获取请求的进程号信息;
所述获取单元12,用于从所述音视频获取请求中获取与所述客户端之间建立连接时的连接号信息;
所述拼接单元,用于将所述时间信息、所述请求次数信息、所述进程号信息和所述连接号信息进行拼接,得到所述会话标识。
在本申请的一些实施例中,所述装置还包括封装单元;
所述封装单元,用于按照预设数据封装格式,对所述目标数据进行封装,得到目标文件;
所述传输单元13,用于向所述客户端传输所述目标文件。
需要说明的是,在实际应用中,上述写入单元11、获取单元12和传输单元13可由数据处理装置1上的处理器14实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现;上述数据存储可由数据处理装置1上的存储器15实现。
本申请实施例还提供了一种数据处理装置1,如图9所示,所述数据处理装置1包括:处理器14、存储器15和通信总线16,所述存储器15通过所述通信总线16与所述处理器14进行通信,所述存储器15存储所述处理器14可执行的程序,当所述程序被执行时,通过所述处理器14执行如上述所述的数据处理方法。
在实际应用中,上述存储器15可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器14提供指令和数据。
本申请实施例提供了一种计算机可读存储介质,其上有计算机程序,所述程序被处理器14执行时实现如上述所述的数据处理方法。
可以理解的是,数据处理装置在接收到推流端传输的音视频数据的情况下,直接将音视频数据写入内存,在客户端传输的音视频获取请求的情况下,数据处理装置可以直接从内存中获取该音视频获取请求对应的目标数据,不需要再经过硬盘来读取该目标数据,提高了直播数据的获取速率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
在接收到推流端传输的音视频数据的情况下,将所述音视频数据写入内存;
在接收到客户端传输的音视频获取请求的情况下,根据所述音视频获取请求从所述内存中获取与所述音视频获取请求对应的目标数据;
向所述客户端传输所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述音视频数据写入内存,包括:
确定配置的切片长度;
根据所述切片长度对所述音视频数据进行切片,得到多个切片数据;
将所述多个切片数据依次写入所述内存。
3.根据权利要求2所述的方法,其特征在于,所述多个切片数据包括多个视频切片数据;所述将所述多个切片数据依次写入所述内存,包括:
检测所述内存中配置的剩余视频容量;
在所述剩余视频容量小于或者等于预设第一容量阈值的情况下,将所述内存中的第一视频切片数据删除;所述第一视频切片数据为内存中时间最早的视频数据;
将所述多个视频切片数据中的第一个视频切片数据写入所述内存;直至依次将所述将所述多个视频切片数据中的每一个视频切片数据写入所述内存。
4.根据权利要求2所述的方法,其特征在于,所述多个切片数据包括多个音频切片数据;所述将所述多个切片数据依次写入所述内存,包括:
检测所述内存中配置的剩余音频容量;
在所述剩余音频容量小于或者等于预设第二容量阈值的情况下,将所述内存中的第一音频切片数据删除;所述第一音频切片数据为内存中时间最早的音频数据;
将所述多个音频切片数据中的第一个音频切片数据写入所述内存;直至依次将所述多个音频切片数据中的每一个音频切片数据写入所述内存。
5.根据权利要求1所述的方法,其特征在于,所述根据所述音视频获取请求从所述内存中获取与所述音视频获取请求对应的目标数据,包括:
从所述音视频获取请求中获取会话标识;
根据所述会话标识确定所述目标数据;
从所述内存中获取所述目标数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述会话标识确定所述目标数据,包括:
获取与所述会话标识对应的播放进度信息;
根据所述播放进度信息生成播放列表;
向客户端传输所述播放列表,以供客户端根据所述播放列表确定请求数据;
在接收到所述请求数据的数据获取请求的情况下,根据所述数据获取请求确定所述目标数据。
7.根据权利要求5所述的方法,其特征在于,所述从所述音视频获取请求中获取会话标识,包括:
在所述音视频获取请求中不存在所述会话标识的情况下,生成所述会话标识;
向所述客户端传输所述会话标识,以供所述客户端将所述会话标识添加至所述音视频获取请求中,得到更新后的音视频获取请求;并根据更新后的音视频获取请求获取目标数据;
在所述音视频获取请求中存在所述会话标识的情况下,获取所述会话标识。
8.根据权利要求7所述的方法,其特征在于,所述生成所述会话标识,包括:
确定接收到所述音视频获取请求的时间信息,以及所述音视频获取请求的请求次数信息;
确定处理所述音视频获取请求的进程号信息;
从所述音视频获取请求中获取与所述客户端之间建立连接时的连接号信息;
将所述时间信息、所述请求次数信息、所述进程号信息和所述连接号信息进行拼接,得到所述会话标识。
9.根据权利要求1所述的方法,其特征在于,所述向所述客户端传输所述目标数据,包括:
按照预设数据封装格式,对所述目标数据进行封装,得到目标文件;
向所述客户端传输所述目标文件。
10.一种数据处理装置,其特征在于,所述装置包括:
写入单元,用于在接收到推流端传输的音视频数据的情况下,将所述音视频数据写入内存;
获取单元,用于在接收到客户端传输的音视频获取请求的情况下,根据所述音视频获取请求从所述内存中获取与所述音视频获取请求对应的目标数据;
传输单元,用于向所述客户端传输所述目标数据。
11.一种数据处理装置,其特征在于,所述装置包括:
存储器、处理器和通信总线,所述存储器通过所述通信总线与所述处理器进行通信,所述存储器存储所述处理器可执行的数据处理的程序,当所述数据处理的程序被执行时,通过所述处理器执行如权利要求1至9任一项所述的方法。
12.一种存储介质,其上存储有计算机程序,应用于数据处理装置,其特征在于,该计算机程序被处理器执行时实现权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211468013.2A CN115756329A (zh) | 2022-11-22 | 2022-11-22 | 一种数据处理方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211468013.2A CN115756329A (zh) | 2022-11-22 | 2022-11-22 | 一种数据处理方法及装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756329A true CN115756329A (zh) | 2023-03-07 |
Family
ID=85335124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211468013.2A Pending CN115756329A (zh) | 2022-11-22 | 2022-11-22 | 一种数据处理方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756329A (zh) |
-
2022
- 2022-11-22 CN CN202211468013.2A patent/CN115756329A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9532114B2 (en) | Optimizing caches for media streaming | |
US9961398B2 (en) | Method and device for switching video streams | |
US11537562B2 (en) | Auxiliary manifest file to provide timed metadata | |
US20210067578A1 (en) | Streaming media segments | |
US9609340B2 (en) | Just-in-time (JIT) encoding for streaming media content | |
TWI575950B (zh) | 串流伺服器及用於將一內容串流透過一網路提供至一用戶端之方法 | |
WO2020211731A1 (zh) | 一种视频播放方法及相关设备 | |
WO2015035942A1 (en) | Method for playing back live video and device | |
US11689769B2 (en) | Methods and apparatus to measure exposure to streaming media | |
CN105282627A (zh) | 一种获取直播视频切片的方法及服务器 | |
US9420022B2 (en) | Media requests to counter latency and minimize network bursts | |
US10334302B2 (en) | Method and system for segment based recording | |
US10033788B2 (en) | Method and a system for smooth streaming of media content in a distributed content delivery network | |
CN109587514B (zh) | 一种视频播放方法、介质和相关装置 | |
US11356749B2 (en) | Track format for carriage of event messages | |
WO2018103696A1 (zh) | 媒体文件的播放方法、服务端、客户端及系统 | |
US9998768B1 (en) | Apparatus and methods for generating clips using recipes with slice definitions | |
CN111866457B (zh) | 监控图像处理方法、电子设备、存储介质及系统 | |
CN113742518A (zh) | 存储和提供视频的方法、设备和计算机程序产品 | |
CN115756329A (zh) | 一种数据处理方法及装置、存储介质 | |
CN112866745B (zh) | 流媒体视频数据处理方法、装置、计算机设备和存储介质 | |
JP2023007048A (ja) | ストリーミングサーバ、送信方法及びプログラム | |
CN110545447B (zh) | 一种音视频同步的方法及装置 | |
US10171545B2 (en) | System for transferring real-time audio/video stream | |
CN111800649A (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 |