CN112929686A - 线上实时回放录制视频的方法及装置 - Google Patents
线上实时回放录制视频的方法及装置 Download PDFInfo
- Publication number
- CN112929686A CN112929686A CN202110158025.4A CN202110158025A CN112929686A CN 112929686 A CN112929686 A CN 112929686A CN 202110158025 A CN202110158025 A CN 202110158025A CN 112929686 A CN112929686 A CN 112929686A
- Authority
- CN
- China
- Prior art keywords
- data
- audio
- video
- video frame
- container
- 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.)
- Granted
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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本申请公开了一种线上实时回放录制视频的方法及装置。其中所述方法,包括:实时接收上传的录制视频,获取音视频帧数据;封装所述音视频帧数据,得到片段数据;实时读取所述片段数据,得到所述音视频帧的位置数据;根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放;其中,所述片段数据为至少包括一个完整帧的数据。通过对接收的录制视频进行片段封装并实时读取播放相应的片段数据,实现线上实时回放录制视频。
Description
技术领域
本申请涉及音视频播放技术领域,尤其涉及一种线上实时回放录制视频的方法及装置。
背景技术
由于业务需求,需要在web上实时回放之前录制的视频,现有的系统需要文件录制结束才可以播放,而录像文件分割一般都有一定的时间要求,如15分钟等,这就需要在文件分割封口后才可以进行回放。
线上实时回放录制视频的方法和装置从这个痛点出发,对封装格式进行了重构,实现了录制的音视频文件的实时播放。
发明内容
本申请实施例提供一种线上实时回放录制视频的技术方案,用以解决线上实时回放录制视频的问题。
本申请提供的一种线上实时回放录制视频的方法,包括:
实时接收上传的录制视频,获取音视频帧数据;
封装所述音视频帧数据,得到片段数据;
实时读取所述片段数据,得到所述音视频帧的位置数据;
根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放;
其中,所述片段数据为至少包括一个完整帧的数据。
进一步的,在本申请提供的一种优选实施方式中,封装所述音视频帧数据,得到片段数据,具体包括:
选择封装格式,确定采用的封装容器;
对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据;
用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据;
存储所述帧封装数据,得到片段数据。
进一步的,在本申请提供的一种优选实施方式中,对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据,具体包括:
通过解码函数处理所述音视频帧数据,得到音频帧数据和视频帧数据;
输出所述音频帧数据和所述视频帧数据,得到所述音视频帧的解码数据。
进一步的,在本申请提供的一种优选实施方式中,用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据,具体包括:
所述封装容器至少包括第一容器、第二容器和第三容器;
通过解析函数处理所述解码数据,得到文件类型数据、元数据和媒体数据;
用所述第一容器封装所述文件类型数据,生成第一封装数据;
用所述第二容器封装所述元数据,生成第二封装数据;
用所述第三容器封装所述媒体数据,生成第三封装数据;
组合所述第一封装数据、所述第二封装数据和所述第三封装数据,得到所述音视频帧的帧封装数据。
进一步的,在本申请提供的一种优选实施方式中,用所述第二容器封装所述元数据,生成第二封装数据,具体包括:
所述第二容器至少包括第一子容器、第二子容器和第三子容器;
所述元数据包括所述音视频帧的时间映射数据、所述音视频帧和音视频单元之间的映射数据、音视频单元的偏移量和所述音视频帧长度;
用所述第一子容器封装所述音视频帧的时间映射数据,得到第一子数据;
用所述第二子容器封装所述音视频帧和所述音视频单元之间的映射数据,得到第二子数据;
用所述第三子容器封装所述音视频单元的偏移量和所述音视频帧长度,得到第三子数据;
组合所述第一子数据、第二子数据和第三子数据,生成第二封装数据;
其中,所述音视频单元中包括有所述音视频帧。
进一步的,在本申请提供的一种优选实施方式中,用所述第三子容器封装音视频单元的偏移量和所述音视频帧长度,得到第三子数据,具体包括:
增加所述第三子容器的存储字节;
用所述增加的存储字节存储所述音视频帧长度;
继续用所述第三子容器封装所述音视频单元的偏移量,得到第三子数据。
进一步的,在本申请提供的一种优选实施方式中,实时读取所述片段数据,得到所述音视频帧的位置数据,具体包括:
实时读取所述片段数据,得到所述音视频帧的封装数据;
用解析函数处理所述封装数据,得到所述音视频帧的位置数据。
进一步的,在本申请提供的一种优选实施方式中,根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放,具体包括:
根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数;
通过所述音视频帧的实际位置参数,取出相应的音视频帧进行解码播放。
进一步的,在本申请提供的一种优选实施方式中,根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数,具体包括:
计算所述音视频帧的位置数据,得到所述音视频帧的长度和第一位置参数;
根据所述长度和第一位置参数,计算所述音视频帧的第二位置参数;
根据所述第一位置参数和所述第二位置参数,得到所述音视频帧的实际位置参数。
本申请还提供一种线上实时回放录制视频的装置,包括:
接收模块,用于实时接收上传的录制视频,获取音视频帧数据;
封装模块,用于封装所述音视频帧数据,得到片段数据;
读取模块,用于实时读取所述片段数据,得到所述音视频帧的位置数据;
播放模块,用于根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放;
其中,所述片段数据为至少包括一个完整帧的数据。
本申请提供的实施例,至少具有以下技术效果:
解决了录制视频的线上实时回放问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的线上实时回放录制视频的方法的流程图;
图2为本申请实施例提供的线上实时回放录制视频的装置的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,为本申请实施例提供的线上实时回放录制视频的方法,具体包括以下步骤:
S100:实时接收上传的录制视频,获取音视频帧数据。
显而易见的是,我们在网络上观看到的录制视频一般都是事先被上传到对应的网络平台。录制视频可以是我们通常用手机拍摄的视频,也可以是视频软件制作的视频。录制视频相对计算机而言是以数据的形式存在的,录制视频可以理解为一系列音视频帧数据组合而成的数据集。可以理解的是,录制视频都是有一定大小的。录制视频在被上传到网络平台时需要持续一定的时间才能被上传完成。需要指出的是,录制视频在上传到对应的网络平台的过程中,对应的平台也在同时接收这个录制视频。对应网络平台在接收录制视频时,获取的是对应的音视频帧数据。
S200:封装所述音视频帧数据,得到片段数据。
可以理解的是,音视频帧数据一般都是以一连串的帧数据的形式被整体保存在文件中。封装可以理解为对这些帧数据进行保存的动作。显而易见的是,上传中的音视频的帧数据一直在持续被传输到对应的网络平台上,对应保存的帧数据只是整个音视频帧数据的一部分。此时保存的一部分的帧数据可以理解为这里的片段数据。
需要重点指出的是,这里的片段数据应该至少包括一个完整的帧数据。从封装结构的完整性来讲,本申请中的片段数据是一个不完整的还在封装中的封装数据,是一个还在继续封装的没有封装封口的数据。同时,这个片段数据的数据量随着新的音视频帧的加入而增加。可以理解的是,这个片段数据是指录制视频上传到网络平台过程中上传结束前产生的部分音视频封装数据,这个部分音视频封装数据的数据量随着新的音视频帧继续上传到网络平台而继续增加。显而易见的是,新上传的音视频帧会继续封装到这个部分音视频封装数据中,也就是继续封装到对应的片段数据中。
具体的,在本申请提供的一种优选实施方式中,封装所述音视频帧数据,得到片段数据,具体包括:
选择封装格式,确定采用的封装容器;
对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据;
用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据;
存储所述帧封装数据,得到片段数据。
需要指出的是,我们在进行数据封装的时候一般都需要先选择封装的格式。例如日常生活中,我们经常看到的视频文件的后缀名如MP4、TS及MKV等都属于视频文件的封装格式。封装格式可以理解为将视频轨、音频轨、字幕轨等信息组合在一起的方式。例如我们这里选择MP4的封装格式,此时能够确定采用的封装容器是MP4封装格式中的封装容器。此时,我们需要对接收的音视频帧数据进行本地化处理,这里的本地化处理可以理解为把接收的音视频帧数据进行解码,解码后的解码数据是我们本地能够识别处理的数据。我们用MP4的封装格式对解码数据进行封装,同时把封装好的这部分数据存储到文件中,这时我们就得到这部分音视频帧数据的封装数据,此时的这部分封装数据可以理解为这里的片段数据。
具体的,在本申请提供的一种优选实施方式中,对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据,具体包括:
通过解码函数处理所述音视频帧数据,得到音频帧数据和视频帧数据;
输出所述音频帧数据和所述视频帧数据,得到所述音视频帧的解码数据。
可以理解的是,编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者程序。这里的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中。例如我们这里用程序里面的解码函数对接收到的音视频帧数据进行解码,就能得到音频帧数据和视频帧数据。我们把解码后得到的数据输出后,就得到接收的音视频帧数据对应的解码数据。可以理解的是,这里的解码是需要符合一定规则的,例如需要符合MPEG系列视频编码标准。
具体的,在本申请提供的一种优选实施方式中,用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据,具体包括:
所述封装容器至少包括第一容器、第二容器和第三容器;
通过解析函数处理所述解码数据,得到文件类型数据、元数据和媒体数据;
用所述第一容器封装所述文件类型数据,生成第一封装数据;
用所述第二容器封装所述元数据,生成第二封装数据;
用所述第三容器封装所述媒体数据,生成第三封装数据;
组合所述第一封装数据、所述第二封装数据和所述第三封装数据,得到所述音视频帧的帧封装数据。
显而易见的是,一般的封装容器包括多个部分,每个部分用来封装不同类型的数据。例如MP4封装容器,MP4文件中的所有数据都装在box中。MP4文件box以树形结构的方式组织,根节点之下,主要包含File Type Box、Movie Box和Media Data Box。File Type Box可以理解为这里的第一容器,Movie Box可以理解为这里的第二容器,Media Data Box可以理解为这里的第三容器。我们用符合MP4封装格式的解析函数对解码数据进行处理,能够得到对应的文件类型数据、元数据和媒体数据。接下来,我们用MP4封装容器的File Type Box对文件类型数据进行封装,就能得到一个ftyp类型的封装数据。用MP4封装容器的MovieBox对元数据进行封装,能得到一个moov类型的封装数据。用MP4封装容器的Media DataBox对媒体数据进行封装,能得到一个mdat类型的封装数据。得到的ftyp类型封装数据、moov类型封装数据和mdat类型封装数据组合起来就得到了一个MP4封装结构的数据。可以理解的是,封装解码数据时,需要按照封装格式预先生成相应的数据。文件类型数据包含了视频文件使用的编码格式、标准等。元数据(Metadata)是描述其它数据的数据(data aboutother data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。MP4文件的媒体数据包含在Media Data Box中,该类型的box可以有多个。
具体的,在本申请提供的一种优选实施方式中,用所述第二容器封装所述元数据,生成第二封装数据,具体包括:
所述第二容器至少包括第一子容器、第二子容器和第三子容器;
所述元数据包括所述音视频帧的时间映射数据、所述音视频帧和音视频单元之间的映射数据、音视频单元的偏移量和所述音视频帧长度;
用所述第一子容器封装所述音视频帧的时间映射数据,得到第一子数据;
用所述第二子容器封装所述音视频帧和所述音视频单元之间的映射数据,得到第二子数据;
用所述第三子容器封装所述音视频单元的偏移量和所述音视频帧长度,得到第三子数据;
组合所述第一子数据、第二子数据和第三子数据,生成第二封装数据;
其中,所述音视频单元中包括有所述音视频帧。
可以理解的是,在进行数据封装的时候,有一些容器封装有比较重要的数据信息,这些数据信息可以用来查找具体的媒体数据。例如MP4封装格式中Movie Box容器下包含有多个子容器,其中一部分例如STTS子容器、STSC子容器和STCO子容器。可以理解的是,这里的Movie Box可以理解为第二容器,这里的STTS子容器、STSC子容器、STCO子容器可以分别理解为对应的第一子容器、第二子容器和第三子容器。MP4封装格式中,video sample表示为一帧视频或者一组连续的视频帧,audio sample表示为一段连续的压缩音频,videosample和audio sample统称sample。track表示一些sample的集合,对于媒体数据来说,track表示一个视频或音频序列。chunk表示一个track中连续几个sample组成的单元。这里的sample可以理解为音视频帧,chunk可以理解为音视频单元。实际工作时,STTS用于存储媒体帧的持续时间信息,提供了时间对具体帧数据的映射关系。通过STTS可以找到任何时间的音视频帧。STSC用于存储sample与chunk的映射关系,在添加sample时,用chunk组织这些sample。一个chunk包含一个或多个sample,chunk的长度可以不同,chunk内的sample的长度也可以不同。STCO定义了每个trunk在媒体流中的位置,这里的位置有两种可能,32位的和64位的。在一个表中只会有一种可能,这个位置是在整个文件中的,而不是在任何容器中,这样做就可以直接在文件中找到媒体数据。
具体的,在本申请提供的一种优选实施方式中,用所述第三子容器封装音视频单元的偏移量和所述音视频帧长度,得到第三子数据,具体包括:
增加所述第三子容器的存储字节;
用所述增加的存储字节存储所述音视频帧长度;
继续用所述第三子容器封装所述音视频单元的偏移量,得到第三子数据。
可以理解的是,计算机存储数据都是要占用一定的字节空间的。存储的数据量增加时,如果原先的存储空间已经无法容纳新增的数据量,则需要扩展对应的存储空间的存储字节。显而易见的是,这里我们需要增加第三子容器的存储字节,我们可以在存储的时候对存储字节进行移位来增加存储字节。例如我们用MP4封装格式封装数据时,可以增加存储STCO信息的存储位置的存储字节。比如我们增加四字节的存储空间,增加的四字节可以用来写入当前帧的大小。在写入当前帧的大小后,继续用STCO存储对应chunk的偏移量。这时的STCO存储结构已经重构,包含的信息量也得到了提升。需要指出的是,这里的STCO可以理解为第三子容器。
S300:实时读取所述片段数据,得到所述音视频帧的位置数据。
具体的,在本申请提供的一种优选实施方式中,实时读取所述片段数据,得到所述音视频帧的位置数据,具体包括:
实时读取所述片段数据,得到所述音视频帧的封装数据;
用解析函数处理所述封装数据,得到所述音视频帧的位置数据;
其中,所述片段数据为至少包括一个完整帧的数据。
可以理解的是,实时回放的关键是实时获取存储的数据。在实际工作时,首先对存储的封装数据进行实时的读取,然后通过对读取的数据进行处理,我们可以得到对应的音视频帧的位置数据。显而易见的是,这里的封装数据只是整个完整封装数据中的一部分,可以理解为片段数据。数据在封装的时候是按照一定的编码规则进行封装的,我们需要用符合相应解码规则的解析函数进行解码处理,之后就能得出对应音视频帧的位置数据。
S400:根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放。
具体的,在本申请提供的一种优选实施方式中,根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放,具体包括:
根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数;
通过所述音视频帧的实际位置参数,取出相应的音视频帧进行解码播放。
可以理解的是,我们在播放音视频帧时,需要先找到相应的音视频帧。例如我们在获取到音视频帧的位置数据后,需要对这个位置数据进行分析。如果这个位置数据不是直接的实际位置参数,那我们需要相应的计算音视频帧的实际位置数据。根据计算得出的实际位置,我们就能找到对应的音视频帧,取出这个音视频帧,然后根据相应的解码规则进行解码播放。
具体的,在本申请提供的一种优选实施方式中,根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数,具体包括:
计算所述音视频帧的位置数据,得到所述音视频帧的长度和第一位置参数;
根据所述长度和第一位置参数,计算所述音视频帧的第二位置参数;
根据所述第一位置参数和所述第二位置参数,得到所述音视频帧的实际位置参数。
可以理解的是,我们在知道了音视频帧的长度和起始位置的位置数据后,可以计算出对应的音视频帧结束位置的位置数据。根据音视频帧的起始位置和结束位置,我们就能确定这个音视频帧的实际位置参数。其中,起始位置的位置数据可以理解为第一位置参数,结束位置的位置数据可以理解为第二位置参数。例如,我们要找一段音视频的第1秒的视频数据。第1秒的视频数据相对于整个音视频的时间为600,检查STTS得到每个sample的持续时间是40,从而算出目标sample是第16个。检查STSC得到该sample属于第5个chunk的第二个sample,该chunk共有4个sample。检查STCO找到第5个chunk的偏移量是20472,同时找到第一个sample的大小和该sample的大小。最后偏移量20472加上第一个sample的大小即可得到该sample的实际开始位置。显而易见的是,这里的sample的大小可以理解为音视频帧的长度,第5个chunk的偏移量加上第一个sample的大小可以理解为第一位置参数,第5个chunk的偏移量加上第一个sample的大小和该sample的大小即可得到第二位置参数。
以上为本申请实施例提供的线上实时回放录制视频的方法,基于同样的思路,本申请实施例还提供一种线上实时回放录制视频的装置100,如图2所示。
一种线上实时回放录制视频的装置100,包括:
接收模块11,用于实时接收上传的录制视频,获取音视频帧数据;
封装模块12,用于封装所述音视频帧数据,得到片段数据;
读取模块13,用于实时读取所述片段数据,得到所述音视频帧的位置数据;
播放模块14,用于根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放;
其中,所述片段数据为至少包括一个完整帧的数据。
这里的线上实时回放录制视频的装置的一种具体应用可以理解为一种软件产品。接收模块11、封装模块12、读取模块13、播放模块14的一种具体应用可以理解为可以独立封装的功能函数。
进一步的,在本申请提供的一种优选实施方式中,所述封装模块12,用于封装所述音视频帧数据,得到片段数据,具体用于:
选择封装格式,确定采用的封装容器;
对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据;
用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据;
存储所述帧封装数据,得到片段数据。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据,具体用于:
通过解码函数处理所述音视频帧数据,得到音频帧数据和视频帧数据;
输出所述音频帧数据和所述视频帧数据,得到所述音视频帧的解码数据。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据,具体用于:
所述封装容器至少包括第一容器、第二容器和第三容器;
通过解析函数处理所述解码数据,得到文件类型数据、元数据和媒体数据;
用所述第一容器封装所述文件类型数据,生成第一封装数据;
用所述第二容器封装所述元数据,生成第二封装数据;
用所述第三容器封装所述媒体数据,生成第三封装数据;
组合所述第一封装数据、所述第二封装数据和所述第三封装数据,得到所述音视频帧的帧封装数据。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于用所述第二容器封装所述元数据,生成第二封装数据,具体用于:
所述第二容器至少包括第一子容器、第二子容器和第三子容器;
所述元数据包括所述音视频帧的时间映射数据、所述音视频帧和音视频单元之间的映射数据、音视频单元的偏移量和所述音视频帧长度;
用所述第一子容器封装所述音视频帧的时间映射数据,得到第一子数据;
用所述第二子容器封装所述音视频帧和所述音视频单元之间的映射数据,得到第二子数据;
用所述第三子容器封装所述音视频单元的偏移量和所述音视频帧长度,得到第三子数据;
组合所述第一子数据、第二子数据和第三子数据,生成第二封装数据;
其中,所述音视频单元中包括有所述音视频帧。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于用所述第三子容器封装音视频单元的偏移量和所述音视频帧长度,得到第三子数据,具体用于:
增加所述第三子容器的存储字节;
用所述增加的存储字节存储所述音视频帧长度;
继续用所述第三子容器封装所述音视频单元的偏移量,得到第三子数据。
进一步的,在本申请提供的一种优选实施方式中,所述读取模块13,用于实时读取所述片段数据,得到所述音视频帧的位置数据,具体用于:
实时读取所述片段数据,得到所述音视频帧的封装数据;
用解析函数处理所述封装数据,得到所述音视频帧的位置数据。
进一步的,在本申请提供的一种优选实施方式中,所述播放模块14,用于根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放,具体用于:
根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数;
通过所述音视频帧的实际位置参数,取出相应的音视频帧进行解码播放。
进一步的,在本申请提供的一种优选实施方式中,所述装置还用于根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数,具体用于:
计算所述音视频帧的位置数据,得到所述音视频帧的长度和第一位置参数;
根据所述长度和第一位置参数,计算所述音视频帧的第二位置参数;
根据所述第一位置参数和所述第二位置参数,得到所述音视频帧的实际位置参数。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种线上实时回放录制视频的方法,其特征在于,包括:
实时接收上传的录制视频,获取音视频帧数据;
封装所述音视频帧数据,得到片段数据;
实时读取所述片段数据,得到所述音视频帧的位置数据;
根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放;
其中,所述片段数据为至少包括一个完整帧的数据。
2.根据权利要求1所述的方法,其特征在于,封装所述音视频帧数据,得到片段数据,具体包括:
选择封装格式,确定采用的封装容器;
对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据;
用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据;
存储所述帧封装数据,得到片段数据。
3.根据权利要求2所述的方法,其特征在于,对所述音视频帧数据进行解码,得到所述音视频帧数据的解码数据,具体包括:
通过解码函数处理所述音视频帧数据,得到音频帧数据和视频帧数据;
输出所述音频帧数据和所述视频帧数据,得到所述音视频帧的解码数据。
4.根据权利要求2所述的方法,其特征在于,用所述封装容器封装所述解码数据,得到所述音视频帧的帧封装数据,具体包括:
所述封装容器至少包括第一容器、第二容器和第三容器;
通过解析函数处理所述解码数据,得到文件类型数据、元数据和媒体数据;
用所述第一容器封装所述文件类型数据,生成第一封装数据;
用所述第二容器封装所述元数据,生成第二封装数据;
用所述第三容器封装所述媒体数据,生成第三封装数据;
组合所述第一封装数据、所述第二封装数据和所述第三封装数据,得到所述音视频帧的帧封装数据。
5.根据权利要求4所述的方法,其特征在于,用所述第二容器封装所述元数据,生成第二封装数据,具体包括:
所述第二容器至少包括第一子容器、第二子容器和第三子容器;
所述元数据包括所述音视频帧的时间映射数据、所述音视频帧和音视频单元之间的映射数据、音视频单元的偏移量和所述音视频帧长度;
用所述第一子容器封装所述音视频帧的时间映射数据,得到第一子数据;
用所述第二子容器封装所述音视频帧和所述音视频单元之间的映射数据,得到第二子数据;
用所述第三子容器封装所述音视频单元的偏移量和所述音视频帧长度,得到第三子数据;
组合所述第一子数据、第二子数据和第三子数据,生成第二封装数据;
其中,所述音视频单元中包括有所述音视频帧。
6.根据权利要求5所述的方法,其特征在于,用所述第三子容器封装音视频单元的偏移量和所述音视频帧长度,得到第三子数据,具体包括:
增加所述第三子容器的存储字节;
用所述增加的存储字节存储所述音视频帧长度;
继续用所述第三子容器封装所述音视频单元的偏移量,得到第三子数据。
7.根据权利要求1所述的方法,其特征在于,实时读取所述片段数据,得到所述音视频帧的位置数据,具体包括:
实时读取所述片段数据,得到所述音视频帧的封装数据;
用解析函数处理所述封装数据,得到所述音视频帧的位置数据。
8.根据权利要求1所述的方法,其特征在于,根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放,具体包括:
根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数;
通过所述音视频帧的实际位置参数,取出相应的音视频帧进行解码播放。
9.根据权利要求8所述的方法,其特征在于,根据所述音视频帧的位置数据,计算所述音视频帧的实际位置参数,具体包括:
计算所述音视频帧的位置数据,得到所述音视频帧的长度和第一位置参数;
根据所述长度和第一位置参数,计算所述音视频帧的第二位置参数;
根据所述第一位置参数和所述第二位置参数,得到所述音视频帧的实际位置参数。
10.一种线上实时回放录制视频的装置,其特征在于,包括:
接收模块,用于实时接收上传的录制视频,获取音视频帧数据;
封装模块,用于封装所述音视频帧数据,得到片段数据;
读取模块,用于实时读取所述片段数据,得到所述音视频帧的位置数据;
播放模块,用于根据所述音视频帧的位置数据,取出相应的音视频帧进行解码播放;
其中,所述片段数据为至少包括一个完整帧的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110158025.4A CN112929686B (zh) | 2021-02-04 | 2021-02-04 | 线上实时回放录制视频的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110158025.4A CN112929686B (zh) | 2021-02-04 | 2021-02-04 | 线上实时回放录制视频的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112929686A true CN112929686A (zh) | 2021-06-08 |
CN112929686B CN112929686B (zh) | 2022-12-20 |
Family
ID=76170586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110158025.4A Active CN112929686B (zh) | 2021-02-04 | 2021-02-04 | 线上实时回放录制视频的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112929686B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962815A (zh) * | 2023-09-20 | 2023-10-27 | 成都华栖云科技有限公司 | 一种浏览器原生播放mkv视频的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193271A (zh) * | 2006-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 视频录制实时回放方法 |
US20100211612A1 (en) * | 2009-02-18 | 2010-08-19 | Mohammad Afaneh | Utilization of radio station metadata to control playback of content and display of corresponding content information |
CN102694989A (zh) * | 2011-08-26 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种电视节目多媒体文件的传输方法及系统 |
CN103780977A (zh) * | 2014-02-26 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种基于帧定位技术的流媒体播放方法 |
CN109168031A (zh) * | 2018-11-06 | 2019-01-08 | 杭州云英网络科技有限公司 | 流媒体推送方法及装置、流媒体平台 |
CN110545466A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 基于网页的媒体文件的播放方法、装置及存储介质 |
CN111147942A (zh) * | 2019-12-17 | 2020-05-12 | 北京达佳互联信息技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN111901661A (zh) * | 2020-07-30 | 2020-11-06 | 海信视像科技股份有限公司 | 一种视频录制方法、播放方法及显示设备 |
CN112073543A (zh) * | 2020-11-16 | 2020-12-11 | 全时云商务服务股份有限公司 | 一种云视频录制方法、系统和可读存储介质 |
CN112188150A (zh) * | 2019-07-04 | 2021-01-05 | 北京航天长峰科技工业集团有限公司 | 一种利用重封装实现浏览器播放实时监控视频的方法 |
-
2021
- 2021-02-04 CN CN202110158025.4A patent/CN112929686B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193271A (zh) * | 2006-11-28 | 2008-06-04 | 中兴通讯股份有限公司 | 视频录制实时回放方法 |
US20100211612A1 (en) * | 2009-02-18 | 2010-08-19 | Mohammad Afaneh | Utilization of radio station metadata to control playback of content and display of corresponding content information |
CN102694989A (zh) * | 2011-08-26 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种电视节目多媒体文件的传输方法及系统 |
CN103780977A (zh) * | 2014-02-26 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种基于帧定位技术的流媒体播放方法 |
CN110545466A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 基于网页的媒体文件的播放方法、装置及存储介质 |
CN109168031A (zh) * | 2018-11-06 | 2019-01-08 | 杭州云英网络科技有限公司 | 流媒体推送方法及装置、流媒体平台 |
CN112188150A (zh) * | 2019-07-04 | 2021-01-05 | 北京航天长峰科技工业集团有限公司 | 一种利用重封装实现浏览器播放实时监控视频的方法 |
CN111147942A (zh) * | 2019-12-17 | 2020-05-12 | 北京达佳互联信息技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN111901661A (zh) * | 2020-07-30 | 2020-11-06 | 海信视像科技股份有限公司 | 一种视频录制方法、播放方法及显示设备 |
CN112073543A (zh) * | 2020-11-16 | 2020-12-11 | 全时云商务服务股份有限公司 | 一种云视频录制方法、系统和可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962815A (zh) * | 2023-09-20 | 2023-10-27 | 成都华栖云科技有限公司 | 一种浏览器原生播放mkv视频的方法 |
CN116962815B (zh) * | 2023-09-20 | 2023-11-21 | 成都华栖云科技有限公司 | 一种浏览器原生播放mkv视频的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112929686B (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4598627B2 (ja) | コンテンツ編集装置及びその再生装置 | |
KR101254385B1 (ko) | 미디어 데이터 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일 내에서 구성화하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체 | |
ES2390267T3 (es) | Método y aparato para simplificar el acceso de metadatos | |
US20080256431A1 (en) | Apparatus and Method for Generating a Data File or for Reading a Data File | |
JP4481889B2 (ja) | データ記録装置及びその方法、プログラム、記録媒体 | |
CN111063376B (zh) | 一种mp4修复中音视频同步的方法、终端设备和存储介质 | |
US11064269B2 (en) | Conversion method, device and storage medium for media file | |
WO2006041260A1 (en) | Extended multimedia file structure and multimedia file producting method and multimedia file executing method | |
CN110740391B (zh) | 一种修复mp4损坏文件的方法 | |
US20040240541A1 (en) | Method and system for direct ingest and storage of digital video content with immediate access to content for browsing and editing | |
US10446188B2 (en) | Method and apparatus for low latency non-linear media editing using file-based inserts into finalized digital multimedia files | |
CN110545456B (zh) | 媒体文件的同步播放方法、装置及存储介质 | |
JP7052070B2 (ja) | メディアファイルのネットワーク再生方法、装置及び記憶媒体 | |
KR101316579B1 (ko) | Mp4 파일 구성 장치 및 복구 장치, mp4 파일 구성 방법 및 복구 방법 | |
CN105230006A (zh) | 保存方法、再现方法、保存装置及再现装置 | |
CN112929686B (zh) | 线上实时回放录制视频的方法及装置 | |
CN111147896A (zh) | 一种字幕数据处理方法、装置、设备和计算机存储介质 | |
CN114007112B (zh) | 一种针对MP4视频文件中mdat box数据错误的修复方法 | |
US10979759B2 (en) | Analysis method, device and storage medium of moov box | |
KR20090017027A (ko) | 미디어 객체 기반 메타데이터의 생성 방법, 재생 방법 및그 장치 | |
KR101051063B1 (ko) | 영상 수록 재생 장치, 영상 수록 방법, 영상 재생 방법 및 영상 수록 재생 방법 | |
CN105210365A (zh) | 文件生成方法以及文件生成装置 | |
US11204954B2 (en) | Editable media file format | |
CN113301391B (zh) | 视频下载方法、装置、计算设备、介质和云端存储系统 | |
CN109743627B (zh) | 基于avs+视频编码数字电影包的播放方法 |
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 |