一种适用于流媒体服务的音频视频封装方法

文档序号:7893555阅读:226来源:国知局
专利名称:一种适用于流媒体服务的音频视频封装方法
技术领域
本发明涉及音频视频封装领域,具体来讲是一种适用于流媒体服务的音频视频封 装方法。
背景技术
媒体文件通常由音频和视频两部分组成,将已经编码压缩好的音频和视频按照一 定的格式放入一个文件中,就是音频视频的一种封装方法,这种格式叫封装格式。流媒体 是指在互连网络中使用流式技术传输媒体文件,播放器在点播该媒体之前不用下载整个文 件,而是一边收媒体流一边播放。目前互联网上常见的媒体文件封装格式有TS(Transport Stream,传输流)、 MP4 (MPEG-4 Part 14)、FLV (Flash Video, Flash视频)等。然而,媒体文件播放的各个阶 段,如正常播放、快进快退播放、跳转播放,都需要音频视频编码元数据;这些数据在不同 的封装格式中存放的位置不同。上述这些封装格式都会反复、零碎的从磁盘中读取音频视 频元数据,因此增加了流媒体服务器对磁盘吞吐能力的开销,进而影响服务器的网络吞吐 能力,无法满足高并发流媒体服务器的需求。

发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种适用于流媒体服务的音 频视频封装方法,能够适应任何媒体文件格式的封装,将音频视频编码元数据集中存放,确 保生成的元信息文件最小,提升磁盘性能,提高网络吞吐能力,从而满足高并发的流媒体服 务需求。为达到以上目的,本发明采取的技术方案是一种适用于流媒体服务的音频视频 封装方法,包括如下步骤S1.为媒体文件建立单独的元信息文件,元信息文件包括头部和 元信息文件体;S2.将媒体文件的头部去掉,将所述头部的媒体属性移至元信息文件的头 部;S3.对媒体文件的音频帧和视频帧进行解析,将帧类型、图像组的起始时间戳和起始帧 编号、音频帧和视频帧的起始边界记录在元信息文件体中;或仅对媒体文件的视频帧进行 解析,将帧类型、图像组的起始时间戳和起始帧编号、视频帧的起始边界记录在元信息文件 体中;S4.形成新媒体文件,对音频和视频未按解码时间戳排序的媒体文件,将音频帧和视 频帧以帧为粒度,按解码时间戳递增的顺序,对音频帧和视频帧进行交错排列,形成重组后 的新媒体文件;对音频和视频已经按照解码时间戳排序的媒体文件,直接设置为新媒体文 件。在上述技术方案的基础上,所述音频视频封装后包括元信息文件和新媒体文件。在上述技术方案的基础上,所述媒体文件为MP4封装格式、传输流封装格式或 Flash视频封装格式。在上述技术方案的基础上,所述媒体文件为MP4封装格式时,从中读取音频编码 格式、视频编码格式以及相关属性,并存入元信息文件的头部。〔0009〕 在上述技术方案的基础上,所述媒体文件为即4封装格式时,从即4文件的媒体数 据盒子读取帧的类别、类型以及显示时间戳,将这些属性存入元信息文件体内。
〔0010〕 在上述技术方案的基础上,从所述即4文件的媒体数据盒子读取每个编码视频序 列的起始字节偏移,以及该编码视频序列中第一个帧的解码时间戳,并将这些属性存入元 信息文件体内。
〔001在上述技术方案的基础上,从所述即4文件的媒体数据盒子分别读取音频帧和视 频帧,以及两者各自的解码时间戳,分别计算每个音频帧与第一个音频帧的解码时间戳差 值,每个视频帧与第一个视频帧的解码时间戳差值,按照所得出的解码时间戳差值升序,将 音频帧和视频帧交错排序,并存储在新媒体文件中。
〔0012〕 在上述技术方案的基础上,所述媒体文件为传输流封装格式时,利用节目关联表 和节目映射表,节读取音频编码格式、视频编码格式以及相关属性,并存入元信息文件的头 部。
〔0013〕 在上述技术方案的基础上,从所述传输流封装格式中读取帧的类别、类型以及解 码时间戳,并根据解码时间戳计算每两个相邻视频帧的时间间隔,并将这些属性存入元信 息文件体内。
〔0014〕 在上述技术方案的基础上,所述媒体文件为?1狀11视频封装格式时,利用其元数 据读取音频编码格式、视频的编码格式以及相关属性,并存入元信息文件头部。
〔0015〕 在上述技术方案的基础上,从所述?1狀11视频封装格式中读取帧的类别、类型显 示时间戳和解码时间戳,并根据解码时间戳每两个相邻视频帧的时间间隔,并将这些属性 存入元信息文件体内。
〔0016〕 在上述技术方案的基础上,所述相关属性至少包括视频的分辨率、宽高比、时间单 元、框架级别10参数、序列参数集和图像参数、高级音频编码的通道数、配置参数。
〔0017〕 本发明的有益效果在于通过所述音频视频封装方法,提供了一种统一的音视频 封装格式,各种标准媒体封装格式均可以转换成此种格式,适合于对媒体文件进行流化,可 充分利用磁盘吞吐能力和网络吞吐能力,生成的元信息文件最小,并能够快速的按地址和 按时间定位音频和视频。


〔0018〕 图1为本发明适用于流媒体服务的音频视频封装方法的流程图。
具体实施例方式
〔0019〕 以下结合附图对本发明作进一步详细说明。
〔0020〕 如图1所示,本发明流媒体服务的音频视频封装方法,包括如下步骤
〔0021〕 81.为媒体文件建立单独的元信息文件,元信息文件包括头部和元信息文件体,且 所述媒体文件可以包括腿^4封装格式、传输流〉封装格式或?IV(打狀!!卩丨如。,
视频)封装格式等。
〔0022〕 82^将媒体文件的头部去掉,将所述头部的媒体属性移至元信息文件的头部。 〔0023〕 83^对媒体文件的音频帧和视频帧进行解析,将帧类型、图像组的起始时间戳和起 始帧编号、音频帧和视频帧的起始边界记录在元信息文件体中;或仅对媒体文件的视频帧进行解析,将帧类型、图像组的起始时间戳和起始帧编号、视频帧的起始边界记录在元信息 文件体中;S4.形成新媒体文件,对音频和视频未按解码时间戳排序的媒体文件,将音频帧和 视频帧以帧为粒度,按解码时间戳递增的顺序,对音频帧和视频帧进行交错排列,形成重组 后的新媒体文件;对音频和视频已经按照解码时间戳排序的媒体文件,直接设置为新媒体 文件。其中,所述音频视频封装后包括元信息文件和新媒体文件。下面通过具体实施例对本发明进行详细说明。实施例1 :所述媒体文件为一部MP4封装格式的影片,视频编码格式为H. 264,音频编码格式 为AAC (Advanced Audio Coding,高级音频编码),其中的视频帧序列为V1,V2,V3,V4,V5, V6, V7, V8, V9, V10, VII,V12 ;音频帧序列为A1, A2,A3,A4,A5,A6。其具体步骤为S101.为媒体文件建立单独的元信息文件,元信息文件包括头部和元信息文件体。S102.从MP4封装格式的moov (Movie Box,节目盒子)读取音频编码格式、视频编 码格式以及相关属性,并存入元信息文件的头部;所述相关属性可以为H. 264视频的分辨 率、宽高比、时间单元、profile-level_id(框架级别ID)参数、sprop-parameter-sets (序 列参数集和图像参数)、AAC、音频的通道数、配置参数等。这种做法可通过少量的磁盘读写 操作,读写元信息文件的头部,从而充分利用磁盘读写能力。S103.从MP4文件的mdat (Media Data Box,媒体数据盒子)读取巾贞的类别、类型 以及PTS (Presentation Time Stamp,显示时间戳),其中巾贞的类别为音频或视频,类型为I 帧或非I帧;并将上述属性存入元信息文件体内。在播放过程中,对磁盘进行顺序读,便可 读取元信息文件体。S104.从MP4文件的mdat节读取每个编码视频序列的起始字节偏移,以及该编码 视频序列中第一个巾贞的DTS(Decoding Time Stamp,解码时间戳),将这些属性存入元信息 文件体内。这样一来,在快进播放、快退播放、跳转播放时,只需要少量的读取元信息文件 体,便可以定位到接下来需要播放的音视频帧,节省了对磁盘的读操作。S105.从所述MP4文件的mdat节分别读取音频帧和视频帧,以及两者各自的DTS, 分别计算每个音频帧与第一个音频帧的DTS差值,每个视频帧与第一个视频帧的DTS差值, 按照所得出的DTS差值升序,将音频帧和视频帧交错排序,并存储在新媒体文件中。在播放 过程中,对磁盘进行顺序读,便可读取音频帧和视频帧。这个过程效率非常高,因为磁盘顺 序读写的性能往往比随机读写的性能高一个数量级。实施例2 所述媒体文件为TS封装格式,其具体步骤如下S201.为媒体文件建立单独的元信息文件,元信息文件包括头部和元信息文件体。S202.利用 TS 文件的 PAT (Program Association Table,节目关联表)和 PMT 表 (Program Mapping Table,节目映射表),读取音频的编码格式、视频的编码格式以及相关 属性,将这些属性存入元信息文件的头部。所述相关属性包括H. 264视频的分辨率、宽高 t匕、时间单元、profile-level-id (框架级别ID)参数、sprop-parameter-sets (序列参数集 和图像参数)、AAC、音频的通道数、配置参数等。其作用是充分利用磁盘读写能力,通过少量的磁盘读写操作,读写元信息文件的头部。S203.从TS文件中读取帧的类别、类型以及DTS,其中帧的类别为音频或视频,类 型为I帧或非I巾贞,并根据DTS计算每两个相邻视频帧的时间间隔,并将这些属性存入元信 息文件体内。由于TS文件与MP4文件不同,TS文件内部已经按照DTS进行排序,因此原媒体文 件可直接作为新文件来使用。实施例3 所述媒体文件为FLV封装格式,其具体步骤如下S301.为媒体文件建立单独的元信息文件,元信息文件包括头部和元信息文件体。S302.利用FLV文件的onMetaData (元数据)节读取音频的编码格式、视 频的编码格式以及相关属性,将这些属性存入元信息文件的头部。所述相关属性包 括H. 264视频的分辨率、宽高比、时间单元、profile-level-id(框架级别ID)参数、 sprop-parameter-sets (序列参数集和图像参数)、AAC、音频的通道数、配置参数等。S303.从FLV文件中读取帧的类别、类型以及PTS和DTS,并根据DTS计算每两个 相邻视频帧的时间间隔,将这些属性存入元信息文件体内;其中帧的类别为音频或视频,类 型为I帧或非I帧。本实施例中FLV文件内部已经按照DTS进行排序,因此原媒体文件可直接作为新 文件来使用。本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离 本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护 范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1.一种适用于流媒体服务的音频视频封装方法,其特征在于,包括如下步骤 51.为媒体文件建立单独的元信息文件,元信息文件包括头部和元信息文件体; 52.将媒体文件的头部去掉,将所述头部的媒体属性移至元信息文件的头部; 53.对媒体文件的音频帧和视频帧进行解析,将帧类型、图像组的起始时间戳和起始帧编号、音频帧和视频帧的起始边界记录在元信息文件体中;或仅对媒体文件的视频帧进行解析,将帧类型、图像组的起始时间戳和起始帧编号、视频帧的起始边界记录在元信息文件体中; 54.形成新媒体文件,对音频和视频未按解码时间戳排序的媒体文件,将音频帧和视频帧以帧为粒度,按解码时间戳递增的顺序,对音频帧和视频帧进行交错排列,形成重组后的新媒体文件;对音频和视频已经按照解码时间戳排序的媒体文件,直接设置为新媒体文件。
2.如权利要求I所述的适用于流媒体服务的音频视频封装方法,其特征在于所述音频视频封装后包括元信息文件和新媒体文件。
3.如权利要求I所述的适用于流媒体服务的音频视频封装方法,其特征在于所述媒体文件为MP4封装格式、传输流封装格式或Flash视频封装格式。
4.如权利要求3所述的适用于流媒体服务的音频视频封装方法,其特征在于所述媒体文件为MP4封装格式时,从中读取音频编码格式、视频编码格式以及相关属性,并存入元信息文件的头部。
5.如权利要求4所述的适用于流媒体服务的音频视频封装方法,其特征在于所述媒体文件为MP4封装格式时,从MP4文件的媒体数据盒子读取帧的类别、类型以及显示时间戳,将这些属性存入元信息文件体内。
6.如权利要求5所述的适用于流媒体服务的音频视频封装方法,其特征在于从所述MP4文件的媒体数据盒子读取每个编码视频序列的起始字节偏移,以及该编码视频序列中第一个帧的解码时间戳,并将这些属性存入元信息文件体内。
7.如权利要求6所述的适用于流媒体服务的音频视频封装方法,其特征在于从所述MP4文件的媒体数据盒子分别读取音频帧和视频帧,以及两者各自的解码时间戳,分别计算每个音频帧与第一个音频帧的解码时间戳差值,每个视频帧与第一个视频帧的解码时间戳差值,按照所得出的解码时间戳差值升序,将音频帧和视频帧交错排序,并存储在新媒体文件中。
8.如权利要求3所述的适用于流媒体服务的音频视频封装方法,其特征在于所述媒体文件为传输流封装格式时,利用节目关联表和节目映射表,节读取音频编码格式、视频编码格式以及相关属性,并存入元信息文件的头部。
9.如权利要求8所述的适用于流媒体服务的音频视频封装方法,其特征在于从所述传输流封装格式中读取帧的类别、类型以及解码时间戳,并根据解码时间戳计算每两个相邻视频帧的时间间隔,并将这些属性存入元信息文件体内。
10.如权利要求3所述的适用于流媒体服务的音频视频封装方法,其特征在于所述媒体文件为Flash视频封装格式时,利用其元数据读取音频编码格式、视频的编码格式以及相关属性,并存入元信息文件头部。
11.如权利要求10所述的适用于流媒体服务的音频视频封装方法,其特征在于从所述Flash视频封装格式中读取帧的类别、类型显示时间戳和解码时间戳,并根据解码时间戳每两个相邻视频帧的时间间隔,并将这些属性存入元信息文件体内。
12.如权利要求4、8或10所述的适用于流媒体服务的音频视频封装方法,其特征在于所述相关属性至少包括视频的分辨率、宽高比、时间单元、框架级别ID参数、序列参数集和图像参数、高级音频编码的通道数、配置参数。
全文摘要
一种适用于流媒体服务的音频视频封装方法,涉及音频视频封装领域,包括如下步骤S1.为媒体文件建立单独的元信息文件;S2.将媒体文件的头部去掉,将头部的媒体属性移至元信息文件的头部;S3.对媒体文件的音频帧和视频帧、视频帧进行解析,将帧类型、图像组的起始时间戳和起始帧编号、音频帧和或视频帧的起始边界记录在元信息文件体中;S4.形成新媒体文件,对音频和视频未按解码时间戳排序的媒体文件,将音频帧和视频帧以帧为粒度,按解码时间戳递增的顺序,对音频帧和视频帧进行交错排列。本方法能够适应任何媒体文件格式的封装,确保生成的元信息文件最小,提升磁盘性能,提高网络吞吐能力,从而满足高并发的流媒体服务需求。
文档编号H04N21/236GK102665103SQ20121010711
公开日2012年9月12日 申请日期2012年4月13日 优先权日2012年4月13日
发明者冯军, 卢国灿 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1