CN107302715A - 多媒体文件的播放方法、封装方法以及相应的装置、终端 - Google Patents

多媒体文件的播放方法、封装方法以及相应的装置、终端 Download PDF

Info

Publication number
CN107302715A
CN107302715A CN201710680593.4A CN201710680593A CN107302715A CN 107302715 A CN107302715 A CN 107302715A CN 201710680593 A CN201710680593 A CN 201710680593A CN 107302715 A CN107302715 A CN 107302715A
Authority
CN
China
Prior art keywords
video
bag
data
multimedia file
format type
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
Application number
CN201710680593.4A
Other languages
English (en)
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.)
Yuanxin Technology
Original Assignee
Yuanxin Technology
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 Yuanxin Technology filed Critical Yuanxin Technology
Priority to CN201710680593.4A priority Critical patent/CN107302715A/zh
Publication of CN107302715A publication Critical patent/CN107302715A/zh
Pending legal-status Critical Current

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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4342Demultiplexing isochronously with video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4351Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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)
  • Computer Security & Cryptography (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明提供了一种多媒体文件的播放方法、封装方法以及相应的装置、终端,包括用文件头包中的信息字段确定出多媒体文件的格式类型为预定多媒体封装格式类型,即可相应的解析媒体信息包中的信息字段来获取多媒体文件的音频和视频的参数信息,以及解析媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包来获取到视频数据和音频数据,根据音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。本发明通过直接解析信息字段获取多媒体文件中关键的音频和视频的参数信息,及对交叉保存的视频压缩数据包和音频压缩数据包进行解析获得视频数据和音频数据的方式,达到降低多媒体文件播放的复杂度,并节约内存占用资源的目的。

Description

多媒体文件的播放方法、封装方法以及相应的装置、终端
技术领域
本发明涉及多媒体技术领域,具体而言,涉及一种多媒体文件的播放方法、封装方法以及相应的装置、终端。
背景技术
多媒体技术,尤其是多媒体文件的封装和播放技术,在多媒体从模拟到数字化转变的过程中得到了蓬勃发展。随着人们对视频、音频等多媒体内容的清晰度、流畅度、精简度的要求越来越苛刻,使其成为了一项炙手可热的技术。新的应用和产品几乎每天都会出现,通过时间和市场实践的验证,各大应用和产品的优势逐渐显现,缺点也随之暴露出来。人们对于高性能的不断追求促使新的多媒体文件的封装和播放技术诞生。
目前,MP4文件封装格式标准作为市场上主流的多媒体文件封装、播放格式之一,被认为是较为全面的容器格式。在MP4文件中,包的数量非常多,大包中存放小包,一级嵌套一级来存放媒体信息,因此需要层层解析,然后综合起来还原媒体信息,其中还包括那些可能用到也可能用不到的包。
可见,这种复杂的解析、播放和封装方式,使得多媒体文件内容冗余,需要占用较多的***内存空间写入标准必须而不一定用到的信息,手机内存占用较高,代码复杂度也高。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种多媒体文件的播放方法,所述多媒体文件由文件头包、媒体信息包,媒体数据包依次组成,所述播放方法包括:
解析所述文件头包中的信息字段,并根据文件头包中的信息字段确定所述多媒体文件的格式类型;
当确定出的格式类型为预定多媒体封装格式类型时,解析所述媒体信息包中的信息字段以获取所述多媒体文件的音频和视频的参数信息;
解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据;
根据所述音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。
具体地,所述根据文件头包中的信息字段确定所述多媒体文件的格式类型的步骤,包括:
判断所述文件头包中的信息字段与预定多媒体封装格式类型对应的字符串是否匹配;
若匹配,则确定所述多媒体文件的格式类型为预定多媒体封装格式类型。
实际使用时,所述音频和视频的参数信息包括以下至少一项:视频编码器名称、视频高度、视频宽度、视频帧率、视频比特率、音频编码器名称、音频采样率、音频比特率、多媒体文件比特率。
进一步地,所述解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据的步骤,包括:
读取所述视频压缩数据包中的信息字段,得到视频压缩数据包的字节数、视频时间戳表、视频时间长度和具体视频数据;
读取所述音频压缩数据包中的信息字段,得到音频压缩数据包的字节数、音频时间戳表、音频时间长度和具体音频数据。
另一方面,本发明实施例还提供了一种多媒体文件的封装方法,包括:
将视频数据和音频数据封装成交叉保存的视频压缩数据包和音频压缩数据包,得到媒体数据包;
根据所述视频数据和音频数据,确定音频和视频的参数信息,并将音频和视频的参数信息以信息字段的方式写入媒体信息包中;
将标识预定多媒体封装格式类型的文件头包、所述媒体信息包及所述媒体数据包按顺序封装,得到所述多媒体文件。
其中,还包括:将预定多媒体封装格式类型对应的字符串以信息字段的方式写入文件头包中,以用于标识所述多媒体文件的格式类型为预定多媒体封装格式类型。
本发明实施例提供了一种多媒体文件的播放装置,所述多媒体文件由文件头包、媒体信息包,媒体数据包依次组成,所述播放装置包括:
格式类型确定模块,用于解析所述文件头包中的信息字段,并根据文件头包中的信息字段确定所述多媒体文件的格式类型;
参数信息获取模块,用于当确定出的格式类型为预定多媒体封装格式类型时,解析所述媒体信息包中的信息字段以获取所述多媒体文件的音频和视频的参数信息;
数据获取模块,用于解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据;
播放模块,用于根据所述音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。
本发明实施例还提供了一种多媒体文件的封装装置,包括:
数据封装模块,用于将视频数据和音频数据封装成交叉保存的视频压缩数据包和音频压缩数据包,得到媒体数据包;
参数信息封装模块,用于根据所述视频数据和音频数据,确定音频和视频的参数信息,并将音频和视频的参数信息以信息字段的方式写入媒体信息包中;
文件封装模块,用于将标识预定多媒体封装格式类型的文件头包、所述媒体信息包及所述媒体数据包按顺序封装,得到所述多媒体文件。
进一步地,还包括:格式类型封装模块,用于将预定多媒体封装格式类型对应的字符串以信息字段的方式写入文件头包中,以用于标识所述多媒体文件的格式类型为预定多媒体封装格式类型。
本发明实施例还提供了一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现以上任一项所述的方法。
本发明实施例提供的多媒体文件的播放方法、封装方法以及相应的装置、终端,通过用文件头包中的信息字段确定出多媒体文件的格式类型为预定多媒体封装格式类型,即可相应的解析媒体信息包中的信息字段以获取多媒体文件的音频和视频的参数信息,以及解析媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包来获取到视频数据和音频数据,根据音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。与现有技术的多媒体文件中音频和视频的参数信息都嵌套在不同的包中,对多媒体文件解码时需要分别进行解析,以及多媒体文件中包含的视频数据和音频数据位置不固定从而导致的解析难度大相比,本发明通过直接解析信息字段获取多媒体文件中最核心、最关键的音频和视频的参数信息,以及对交叉保存的视频压缩数据包和音频压缩数据包进行解析获得视频数据和音频数据的方式,达到降低多媒体文件播放的复杂度、并节约内存占用资源的目的。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的多媒体文件的数据结构的实例;
图2为本发明实施例提供的多媒体文件的播放方法的流程示意图;
图3为本发明实施例提供的多媒体文件的封装方法的流程示意图;
图4为本发明实施例提供的多媒体文件的播放装置的框架示意图;
图5为本发明实施例提供的多媒体文件的封装装置的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到复杂的多媒体解析、播放和封装方式,使得多媒体文件内容冗余,需要占用较多的***内存空间写入标准必须而不一定用到的信息,手机内存占用较高,代码复杂度也高。基于此,本发明实施例提供了一种多媒体文件的播放方法、封装方法以及相应的装置、终端,下面通过实施例进行描述。
本发明实施例提供了一种多媒体文件的播放方法,如图1所示,其中多媒体文件由文件头包(File Header Package,以下简称为FHP)、媒体信息包(Media InformationPackage,以下简称为MIP),媒体数据包(Media Data Package,以下简称为MDP)依次组成。如图2所示,播放方法具体包括如下步骤:
S201:解析所述文件头包中的信息字段,并根据文件头包中的信息字段确定所述多媒体文件的格式类型;
在本发明实施例中,FHP作为多媒体文件中的第一个包,可以指示这个多媒体文件的格式类型,以便采取正确的解析方式,这是有效播放多媒体文件的第一步,也是必要步骤。
例如,FHP中依照顺序写入了字符串“fhp syber format”,一共占用16个字节的信息字段。当播放器去解析时,首先要判断FHP中的信息字段与预定多媒体封装格式类型对应的字符串是否匹配,通过解析这个多媒体文件的预定字节中,即前16个字节,也就是FHP中的信息字段是否为预定多媒体封装格式类型对应的字符串“fhp syber format”。若匹配,则可以确定多媒体文件的格式类型是预定多媒体封装格式类型,即可以采取本发明实施例提供的播放方法来解析和播放这个多媒体文件。
实际使用时,预定多媒体封装格式类型对应的指示方式并没有严格的限制,也可以采用其他信息字段甚至其他形式执行。
本发明实施例采取解析FHP获取格式类型的方式,既可以明确该格式类型的特殊性,也可以在匹配失败时保护其他包中的信息;采用解析信息字段的方式就可以获取格式类型,以较低的解析复杂度达到了安全可靠的目的。
S202:当确定出的格式类型为预定多媒体封装格式类型时,解析所述媒体信息包中的信息字段以获取所述多媒体文件的音频和视频的参数信息;
在S201中已经明确了执行本步骤的条件。
本发明实施例中,MIP(Media Information Package,媒体信息包)作为多媒体文件中的第二个包,可以指示出封装在这个多媒体文件中的音频和视频的相关参数信息。
不同于MP4等多媒体播放形式封装的音频和视频的参数信息都由嵌套在大包中的小包按不同参数类别分别保存,解析较复杂的特点,本发明实施例通过解析MIP中的信息字段,就可以得到音频和视频的全部参数信息。也就是说,音频和视频的参数信息全部集中写到一个包中,即MIP中,这种方式便于编码器的快速写入和播放器的快速解析,降低了***代码的复杂度。
本发明实施例中提供的音频和视频的参数信息包括以下至少一项:视频编码器名称(video codec)、视频高度(video height)、视频宽度(video width)、视频帧率(videoframe rates)、视频比特率(video bitrates)、音频编码器名称(audio codec)、音频采样率(audio sample rates)、音频比特率(audio bitrates)、多媒体文件比特率(totalbitrates)。
较佳地,以上音频和视频的参数信息都以固定的顺序占据MIP中的信息字段,例如,按照上述罗列的顺序,每个音频和视频的参数信息相应的信息字段分别占据4个字节数,进一步加快了解析效率,同时也方便开发人员定位和调试分析。
S203:解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据;
在本发明实施例中,MDP(Media Data Package,媒体数据包)作为多媒体文件中的第三个包,包含了具体音频数据和具体视频数据。具体可以为,如图1所示,由一个一个视频压缩数据包(Video Chunk Package,以下简称为VCP)和一个一个音频压缩数据包(AudioChunk Package,以下简称为ACP)交叉保存而成,通过解析MDP中的各个VCP和ACP,就可以获取到视频数据和音频数据。
其中两种包内部结构相同,解析方式也相同,下面以VCP为例来具体说明包内结构和解析方式。
为达到正常播放完整视频,以及与音频同步的目的,VCP中除了存储有具体的视频数据外,还应该包括一些参数信息用于解析后进行播放,可以包括:VCP的字节数(Size)、视频时间戳表(Timestamp table)、视频时间长度(Duration)和具体视频数据(Streamdata)。
不同于MP4多媒体文件解析后会存在较多冗余和无用的数据,如索引值,创建时间等等,对于播放多媒体文件并没有实际意义,还需要占用多余的***内存空间,本发明所实施例提供的播放方法在解析过程中只涉及了最核心、最有效的音视频参数信息,达到降低***内存占用资源的目的。
其中,解析得到一个VCP的字节数,就能知道该VCP占用的字节长度,结合ACP的字节长度,就可以知道下一个VCP或ACP的位置,同理,通过累加可以知道各个VCP或ACP的位置,方便查找和读取。
解析得到视频时间戳表,指示每个VCP中的每个视频帧的时间戳信息,用于播放时与音频帧保持同步。
解析得到视频时间长度,指示每个VCP中所有视频帧的时间长度。累加每个VCP包的视频时间长度,就可以得到这整个多媒体文件的视频时间长度。
解析得到具体视频数据,即为播放用的视频。
类似于MIP的解析方式,以上参数信息也可以按固定的顺序占据VCP中的信息字段,例如按照上述罗列的顺序。其中,VCP的字节数和视频时间长度对应的信息字段可以写为占据4个字节数或者其他存储方式,而视频时间戳表和具体视频数据可以根据具体视频帧的分布方式进行存储。
较佳的,VCP不仅仅可以考虑是将单个视频帧写成的一个包,也可以是当视频帧达到一个标准时,写成的一个VCP。可以想象,一个完整视频拆分的VCP的数量越少,一定程度上可以节约***的I/O读写,而VCP的数量过少,则会使服务器带宽压力增大且播放选择性差,影响用户体验。本发明实施例中未限定所要解析的VCP包含的视频帧的具体标准,作为示例地,建议解析VCP可以得到100个视频帧的视频数据。
ACP的包内结构和解析方式与VCP相同,在此不再赘述。值得说明的是,每个VCP包对应的ACP包最好保持相同帧长。
若最后的视频帧和音频帧达不到VCP和ACP的标准,则将剩余帧打包成一个VCP或者ACP,解析后保证视频数据和音频数据的完整性。
因此,通过读取VCP中的信息字段,得到VCP的字节数、视频时间戳表、视频时间长度和具体视频数据,读取ACP中的信息字段,得到ACP的字节数、音频时间戳表、音频时间长度和具体音频数据后,就可以执行S204步骤。
S204:根据所述音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。
本发明实施例提供的多媒体文件的播放方法,通过读取FHP中的信息字段确定出多媒体文件的格式类型为预定多媒体封装格式类型,即可相应的解析MIP中的信息字段以获取多媒体文件的音频和视频的参数信息,以及解析MDP中交叉保存的VCP和ACP来获取到视频数据和音频数据,根据音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。与现有技术的多媒体文件中音频和视频的参数信息都嵌套在不同的包中,对多媒体文件解码时需要分别进行解析,以及多媒体文件中包含的视频数据和音频数据位置不固定从而导致的解析难度大相比,本发明实施例通过直接解析信息字段获取多媒体文件中最核心、最关键的音频和视频的参数信息,以及对交叉保存的VCP和ACP进行解析获得视频数据和音频数据的方式,达到降低多媒体文件播放的复杂度、并节约内存占用资源的目的。
本发明实施例还提供了一种多媒体文件的封装方法,如图3所示,具体包括以下步骤:
S301:将视频数据和音频数据封装成交叉保存的视频压缩数据包和音频压缩数据包,得到媒体数据包(即MDP)。
在本发明实施例中,将视频数据和音频数据分别按一定的标准帧数拆分成多个视频压缩数据包(即VCP)和音频压缩数据包(即ACP)。将一个个VCP和一个一个ACP交叉保存的方式进行封装,形成MDP。
因VCP和ACP具有相同的包内部结构和封装方式,下面以VCP为例来具体说明。
较佳的,VCP不仅仅可以考虑将单个视频帧封装成的一个包,也可以当视频帧达到一个标准时,封装成一个VCP。可以想象,一个完整视频拆分的VCP的数量越少,一定程度上可以节约***的I/O读写,而VCP的数量过少,则会使服务器带宽压力增大且播放选择性差,影响用户体验。本发明实施例中未限定封装VCP时截取的视频帧的具体标准,作为示例地,建议是当达到100个视频帧时,就封装成一个VCP写入MDP。
ACP的包内结构和解析方式与VCP相同,在此不再赘述。值得说明的是,为ACP包截取音频帧的帧数,最好与相应的VCP包的视频帧帧数保持相同。
若最后的视频帧和音频帧达不到VCP和ACP的帧数标准,则将剩余帧封装成一个VCP或者ACP,保证视频数据和音频数据的完整性。
为达到正常播放完整视频,以及与音频同步的目的,VCP中除了存储有具体的视频数据外,还应该封装进一些参数信息用于解析后进行播放,可以包括:VCP的字节数(Size)、视频时间戳表(Timestamp table)、视频时间长度(Duration)和具体视频数据(Streamdata)。
不同于MP4多媒体文件解析后会存在较多冗余和无用的数据,如索引值,创建时间等等,对于播放多媒体文件并没有实际意义,还需要占用多余的***内存空间,本发明实施例提供的封装方法只保留了最核心、最有效的音视频参数信息,达到了降低***内存占用的目的。
其中,添加VCP的字节数,是为了指示该VCP占用的字节长度,结合ACP的字节长度,就可以知道下一个VCP或ACP的位置,同理,通过累加可以知道各个VCP或ACP的位置,方便查找和读取。
添加视频时间戳表,是为了指示每个VCP中的每个视频帧的时间戳信息,用于播放时与音频帧保持同步。
添加视频时间长度,是为了指示每个VCP中所有视频帧的时间长度。累加每个VCP包的视频时间长度,就可以得到这整个多媒体文件的视频时间长度。
以上参数信息也可以按固定的顺序占据VCP中的信息字段,例如按照上述罗列的顺序。其中,VCP的字节数和视频时间长度对应的信息字段可以写为占据4个字节数或者其他存储方式,而视频时间戳表和具体视频数据可以根据具体视频帧的分布方式进行封装。
相较于MP4等多媒体播放形式所要解析的视频压缩数据和音频压缩数据位置随机不固定,不便于查找的特点,本发明实施例以VCP保存为偶数包,ACP保存为奇数包为例,这样的数据结构可以很简单方便的做到线程同步,只要写视频线程工作,则写音频线程阻塞;反之写音频线程工作,则写视频线程阻塞,降低了***线程工作的复杂度。
S302:根据所述视频数据和音频数据,确定音频和视频的参数信息,并将音频和视频的参数信息以信息字段的方式写入媒体信息包(即MIP)中;
不同于MP4等多媒体播放形式封装的音频和视频的参数信息都由嵌套在大包中的小包按不同参数类别分别保存,解析较复杂的特点,本发明实施例直接将音频和视频的参数信息以信息字段的方式写入MIP。也就是说,音频和视频的参数信息全部集中写到一个包中,即MIP中,这种方式便于编码器的快速写入和播放器的快速解析,降低了***代码的复杂度。
考虑到过多冗余和无用的数据会占用多余的***内存空间,对于播放多媒体文件也没有实际意义,本发明实施例中提供最核心、最关键的音频和视频的参数信息,包括:视频编码器名称(video codec)、视频高度(video height)、视频宽度(video width)、视频帧率(video frame rates)、视频比特率(video bitrates)、音频编码器名称(audio codec)、音频采样率(audio sample rates)、音频比特率(audio bitrates)、多媒体文件比特率(total bitrates)。
较佳地,以上音频和视频的参数信息都以固定的顺序占据MIP中的信息字段,例如,按照上述罗列的顺序,每个音频和视频的参数信息相应的信息字段分别占据4个字节数,进一步加快了解析效率,同时也方便开发人员定位和调试分析。
S303:将标识预定多媒体封装格式类型的文件头包、所述媒体信息包及所述媒体数据包按顺序封装,得到所述多媒体文件。
在此步骤之前,还包括将预定多媒体封装格式类型对应的字符串以信息字段的方式写入文件头包(即FHP)中,以用于标识多媒体文件的格式类型为预定多媒体封装格式类型。
例如,在FHP中依照顺序以信息字段的方式写入字符串“fhp syber format”,一共占用16个字节。当播放器去解析时,必须要先解析这个多媒体文件的预定字节中,即前16个字节,也就是FHP中的信息字段是否为“fhp syber format”。若是,则可以采取本发明实施例提供的上述播放方法来解析和播放这个多媒体文件。
实际使用时,预定多媒体封装格式类型对应的指示方式并没有严格的限制,也可以采用其他信息字段甚至其他形式执行。
本发明实施例采取解析FHP获取格式类型的方式,既可以明确该格式类型的特殊性,也可以在匹配失败时保护其他包中的信息;采用解析信息字段的方式就可以获取格式类型,以较低的解析复杂度达到了安全可靠的目的。
将FHP、MIP、MDP按顺序封装成的多媒体文件,就具备了降低多媒体文件播放的复杂度,并节约内存占用空间的优点。
如图4所示,本发明实施例还提供了一种多媒体文件的播放装置,包括:格式类型确定模块401、参数信息获取模块402、数据获取模块403和播放模块404。
其中,格式类型确定模块401用于解析FHP中的信息字段,并根据FHP中的信息字段确定多媒体文件的格式类型;
参数信息获取模块402用于当确定出的格式类型为预定多媒体封装格式类型时,解析MIP中的信息字段以获取多媒体文件的音频和视频的参数信息;
数据获取模块403用于解析MDP中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据;
播放模块404用于根据音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。
具体地,格式类型确定模块401包括信息字段判断单元和格式类型确定单元。
信息字段判断单元用于判断FHP中的信息字段与预定多媒体封装格式类型对应的字符串是否匹配;
格式类型确定单元用于当FHP中的信息字段与预定多媒体封装格式类型对应的字符串匹配时,则确定所述多媒体文件的格式类型为预定多媒体封装格式类型。
数据获取模块403包括视频读取单元和音频读取单元。
视频读取单元用于读取所述视频压缩数据包中的信息字段,得到视频压缩数据包的字节数、视频时间戳表、视频时间长度和具体视频数据;
音频读取单元用于读取所述音频压缩数据包中的信息字段,得到音频压缩数据包的字节数、音频时间戳表、音频时间长度和具体音频数据。
本发明实施例还提供了一种多媒体文件的封装装置,如图5所示,包括:数据封装模块501、参数信息封装模块502、文件封装模块503。
其中,数据封装模块501用于将视频数据和音频数据封装成交叉保存的视频压缩数据包和音频压缩数据包,得到MDP;
参数信息封装模块502用于根据视频数据和音频数据,确定音频和视频的参数信息,并将音频和视频的参数信息以信息字段的方式写入媒体信息包中;
文件封装模块503用于将标识预定多媒体封装格式类型的FHP、MIP及MDP按顺序封装,得到多媒体文件。
如图5所示,该多媒体文件的封装装置还包括格式类型封装模块504。
格式类型封装模块504用于将预定多媒体封装格式类型对应的字符串以信息字段的方式写入文件头包中,以用于标识多媒体文件的格式类型为预定多媒体封装格式类型。
本发明实施例还提供一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现以上任一项所述的方法。
与现有技术的多媒体文件中音频和视频的参数信息都嵌套在不同的包中,对多媒体文件解码时需要分别进行解析,以及多媒体文件中包含的视频数据和音频数据位置不固定从而导致的解析难度大相比,本发明实施例提供的多媒体文件的播放装置及封装装置可以直接解析信息字段获取多媒体文件中最核心、最关键的音频和视频的参数信息,以及对交叉保存的视频压缩数据包和音频压缩数据包进行解析获得视频数据和音频数据的方式,达到降低多媒体文件播放的复杂度、并节约内存占用资源的目的。
本发明实施例所提供的多媒体文件的播放装置及封装装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的***、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”到另一元件时,它可以直接连接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种多媒体文件的播放方法,其特征在于,所述多媒体文件由文件头包、媒体信息包,媒体数据包依次组成,所述播放方法包括:
解析所述文件头包中的信息字段,并根据文件头包中的信息字段确定所述多媒体文件的格式类型;
当确定出的格式类型为预定多媒体封装格式类型时,解析所述媒体信息包中的信息字段以获取所述多媒体文件的音频和视频的参数信息;
解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据;
根据所述音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。
2.根据权利要求1所述的播放方法,其特征在于,所述根据文件头包中的信息字段确定所述多媒体文件的格式类型的步骤,包括:
判断所述文件头包中的信息字段与预定多媒体封装格式类型对应的字符串是否匹配;
若匹配,则确定所述多媒体文件的格式类型为预定多媒体封装格式类型。
3.根据权利要求1所述的播放方法,其特征在于,所述音频和视频的参数信息包括以下至少一项:视频编码器名称、视频高度、视频宽度、视频帧率、视频比特率、音频编码器名称、音频采样率、音频比特率、多媒体文件比特率。
4.根据权利要求1所述的播放方法,其特征在于,所述解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据的步骤,包括:
读取所述视频压缩数据包中的信息字段,得到视频压缩数据包的字节数、视频时间戳表、视频时间长度和具体视频数据;
读取所述音频压缩数据包中的信息字段,得到音频压缩数据包的字节数、音频时间戳表、音频时间长度和具体音频数据。
5.一种多媒体文件的封装方法,其特征在于,包括:
将视频数据和音频数据封装成交叉保存的视频压缩数据包和音频压缩数据包,得到媒体数据包;
根据所述视频数据和音频数据,确定音频和视频的参数信息,并将音频和视频的参数信息以信息字段的方式写入媒体信息包中;
将标识预定多媒体封装格式类型的文件头包、所述媒体信息包及所述媒体数据包按顺序封装,得到所述多媒体文件。
6.根据权利要求5所述的封装方法,其特征在于,还包括:
将预定多媒体封装格式类型对应的字符串以信息字段的方式写入文件头包中,以用于标识所述多媒体文件的格式类型为预定多媒体封装格式类型。
7.一种多媒体文件的播放装置,其特征在于,所述多媒体文件由文件头包、媒体信息包,媒体数据包依次组成,所述播放装置包括:
格式类型确定模块,用于解析所述文件头包中的信息字段,并根据文件头包中的信息字段确定所述多媒体文件的格式类型;
参数信息获取模块,用于当确定出的格式类型为预定多媒体封装格式类型时,解析所述媒体信息包中的信息字段以获取所述多媒体文件的音频和视频的参数信息;
数据获取模块,用于解析所述媒体数据包中交叉保存的视频压缩数据包和音频压缩数据包,以获取到视频数据和音频数据;
播放模块,用于根据所述音频和视频的参数信息,以及获取到的视频数据和音频数据,进行多媒体文件播放。
8.一种多媒体文件的封装装置,其特征在于,包括:
数据封装模块,用于将视频数据和音频数据封装成交叉保存的视频压缩数据包和音频压缩数据包,得到媒体数据包;
参数信息封装模块,用于根据所述视频数据和音频数据,确定音频和视频的参数信息,并将音频和视频的参数信息以信息字段的方式写入媒体信息包中;
文件封装模块,用于将标识预定多媒体封装格式类型的文件头包、所述媒体信息包及所述媒体数据包按顺序封装,得到所述多媒体文件。
9.根据权利要求8所述的封装装置,其特征在于,还包括:
格式类型封装模块,用于将预定多媒体封装格式类型对应的字符串以信息字段的方式写入文件头包中,以用于标识所述多媒体文件的格式类型为预定多媒体封装格式类型。
10.一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-6中任一项所述的方法。
CN201710680593.4A 2017-08-10 2017-08-10 多媒体文件的播放方法、封装方法以及相应的装置、终端 Pending CN107302715A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710680593.4A CN107302715A (zh) 2017-08-10 2017-08-10 多媒体文件的播放方法、封装方法以及相应的装置、终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710680593.4A CN107302715A (zh) 2017-08-10 2017-08-10 多媒体文件的播放方法、封装方法以及相应的装置、终端

Publications (1)

Publication Number Publication Date
CN107302715A true CN107302715A (zh) 2017-10-27

Family

ID=60133554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710680593.4A Pending CN107302715A (zh) 2017-08-10 2017-08-10 多媒体文件的播放方法、封装方法以及相应的装置、终端

Country Status (1)

Country Link
CN (1) CN107302715A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858919A (zh) * 2018-08-24 2020-03-03 北京字节跳动网络技术有限公司 媒体文件播放过程中的数据处理方法、装置及存储介质
CN112287127A (zh) * 2019-07-23 2021-01-29 上海哔哩哔哩科技有限公司 多媒体文件存储、读取方法
CN112823529A (zh) * 2018-11-29 2021-05-18 深圳市欢太科技有限公司 视频解码方法、装置、电子设备、计算机可读存储介质
CN112969043A (zh) * 2021-04-28 2021-06-15 北京优幕科技有限责任公司 媒体文件生成、播放方法及设备
CN117544738A (zh) * 2023-11-10 2024-02-09 深圳麦风科技有限公司 Rsv文件的播放修复方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179735A (zh) * 2006-11-08 2008-05-14 中兴通讯股份有限公司 一种多媒体广播***媒体数据流的封装方法
CN101656099A (zh) * 2008-08-18 2010-02-24 安凯(广州)软件技术有限公司 一种用于mp3播放器的音视频制作和播放方法
CN102917276A (zh) * 2012-11-12 2013-02-06 武汉市烽视威科技有限公司 一种应用于流媒体服务的音视频交错封装方法
CN103002353A (zh) * 2011-09-16 2013-03-27 杭州海康威视数字技术股份有限公司 对多媒体文件进行封装的方法及装置
US20130138835A1 (en) * 2011-11-30 2013-05-30 Elwha LLC, a limited liability corporation of the State of Delaware Masking of deceptive indicia in a communication interaction
CN104575547A (zh) * 2013-10-17 2015-04-29 深圳市云帆世纪科技有限公司 多媒体文件制作方法、播放方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179735A (zh) * 2006-11-08 2008-05-14 中兴通讯股份有限公司 一种多媒体广播***媒体数据流的封装方法
CN101656099A (zh) * 2008-08-18 2010-02-24 安凯(广州)软件技术有限公司 一种用于mp3播放器的音视频制作和播放方法
CN103002353A (zh) * 2011-09-16 2013-03-27 杭州海康威视数字技术股份有限公司 对多媒体文件进行封装的方法及装置
US20130138835A1 (en) * 2011-11-30 2013-05-30 Elwha LLC, a limited liability corporation of the State of Delaware Masking of deceptive indicia in a communication interaction
CN102917276A (zh) * 2012-11-12 2013-02-06 武汉市烽视威科技有限公司 一种应用于流媒体服务的音视频交错封装方法
CN104575547A (zh) * 2013-10-17 2015-04-29 深圳市云帆世纪科技有限公司 多媒体文件制作方法、播放方法及***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858919A (zh) * 2018-08-24 2020-03-03 北京字节跳动网络技术有限公司 媒体文件播放过程中的数据处理方法、装置及存储介质
CN112823529A (zh) * 2018-11-29 2021-05-18 深圳市欢太科技有限公司 视频解码方法、装置、电子设备、计算机可读存储介质
CN112287127A (zh) * 2019-07-23 2021-01-29 上海哔哩哔哩科技有限公司 多媒体文件存储、读取方法
CN112287127B (zh) * 2019-07-23 2022-10-14 上海哔哩哔哩科技有限公司 多媒体文件存储、读取方法
CN112969043A (zh) * 2021-04-28 2021-06-15 北京优幕科技有限责任公司 媒体文件生成、播放方法及设备
CN112969043B (zh) * 2021-04-28 2021-08-24 北京优幕科技有限责任公司 媒体文件生成、播放方法及设备
CN117544738A (zh) * 2023-11-10 2024-02-09 深圳麦风科技有限公司 Rsv文件的播放修复方法、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107302715A (zh) 多媒体文件的播放方法、封装方法以及相应的装置、终端
CN103905841B (zh) 自适应网络带宽的多协议多播放器视频播放方法和***
US6108584A (en) Multichannel digital audio decoding method and apparatus
CA2462159A1 (en) Video and digital multimedia aggregator content coding and formatting
TWI540887B (zh) 影音媒體檔合成方法與伺服系統
US10469914B2 (en) Apparatus and method for delivering and receiving multimedia data in hybrid network
CN101828351B (zh) 存储和读取具有媒体数据容器和元数据容器的文件的设备和方法
KR20030061803A (ko) 파일 인덱스 삽입을 위한 엠펙 스트림 처리 시스템 및 방법
US20200388304A1 (en) Synchronously playing method and device of media file, and storage medium
CN104602105B (zh) 视频文件的播放方法及用户设备
US10446188B2 (en) Method and apparatus for low latency non-linear media editing using file-based inserts into finalized digital multimedia files
US20060136080A1 (en) Audio fidelity meter
EP2131590A1 (en) Method and apparatus for generating or cutting or changing a frame based bit stream format file including at least one header section, and a corresponding data structure
WO2007066880A1 (en) Method and apparatus for encoding/decoding
TWI258101B (en) Method of searching for sync word in MPEG compressed audio bitstream, and related decoder circuit and computer program storage medium
CN106375778B (zh) 一种符合数字电影规范的三维音频节目码流传输的方法
US7173943B1 (en) Protocol analyzer and time precise method for capturing multi-directional packet traffic
CN112929686B (zh) 线上实时回放录制视频的方法及装置
KR101051063B1 (ko) 영상 수록 재생 장치, 영상 수록 방법, 영상 재생 방법 및 영상 수록 재생 방법
CN102238393A (zh) 一种音频码流的重同步方法及重同步装置
KR20020070199A (ko) 멀티미디어 메타데이터의 오류 내성 부호화/복호화 장치및 방법
KR102046903B1 (ko) Mmt 페이로드 헤더 구성 장치 및 방법
Luck et al. An integrated approach to recovering deleted files from NAND flash data
CN106961626A (zh) 一种视频元信息自动补全整理的方法和装置
CN104380718B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171027