CN105578276A - 一种支持mp4文件逐行下载实时转换的方法 - Google Patents
一种支持mp4文件逐行下载实时转换的方法 Download PDFInfo
- Publication number
- CN105578276A CN105578276A CN201510976195.8A CN201510976195A CN105578276A CN 105578276 A CN105578276 A CN 105578276A CN 201510976195 A CN201510976195 A CN 201510976195A CN 105578276 A CN105578276 A CN 105578276A
- Authority
- CN
- China
- Prior art keywords
- file
- box
- line
- requestpos
- original
- 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
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/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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440236—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持MP4文件逐行下载实时转换的方法,先解析原始MP4文件并根据box划分成五个部分,五个部分分别为A1、A2、A3、A4和A5,记录关键box的位置及大小;构造新的虚拟文件组成,并算出虚拟文件的物理位置;计算出原始MP4文件与虚拟文件的物理位置的offset,并在虚拟文件的物理位置加上offset;当接收请求端发送的请求数据时,根据请求的RequestPos做映射,将虚拟文件的位置映射到原始MP4文件,通过设计虚拟MP4文件,将‘moov’box移至‘mdat’box前,可以实时的将非逐行下载的MP4文件转换为逐行下载文件,使点播系统可以兼容更多的MP4文件。
Description
技术领域
本发明涉及一种支持MP4文件逐行下载实时转换的方法。
背景技术
MP4文件格式是基于ISO/IEC14496-12:2012(MPEG-4Part12:ISObasemediafileformat),还有MOV、3GP、QT等都是以上述规范为基本模板的。对于该类文件的解析过程,通常首先是读取文件的描述信息‘moov’box,然后再读取数据信息‘mdat’box。其中‘moov’box包括了播放的必需元素:类型描述(‘stsd’box),时间戳描述(‘stts’、‘ctts’box)以及文件物理位置(‘stco’或‘co64’box)等。而‘mdat’box是用来存储文件数据,在整个文件大小中占有最大比例。
对于HTTP流媒体服务器来说,对文件系统有一个要求,需要满足逐行下载(Progressivedownload)。也就是说对于MP4文件,要想快速加载及播放该类文件,‘moov’box一定要在‘mdat’box的前面,否则服务器要先下载完‘mdat’box,才能下载到‘moov’box,这是服务器无法接受的。所以当流媒体服务请求到这类文件时,通常都是直接拒绝掉,不能播放的。
发明内容
基于此,有必要提供一种通过高效的转换算法,使请求端对所请求的MP4文件可满足逐行下载的支持MP4文件逐行下载实时转换的方法。
根据本发明的一方面,提供了一种支持MP4文件逐行下载实时转换的方法,包括如下步骤:
解析原始MP4文件并根据box划分成五个部分,五个部分分别为A1、A2、A3、A4和A5,记录关键box的位置及大小;
构造新的虚拟文件组成,并算出虚拟文件的物理位置;
计算出原始MP4文件与虚拟文件的物理位置的offset,并在虚拟文件的物理位置加上offset;
当接收请求端发送的请求数据时,根据请求的RequestPos做映射,将虚拟文件的位置映射到原始MP4文件。
在其中一个实施例中,解析原始MP4文件并根据关键box划分成五个部分的步骤中,A1包括‘fytp’box,A2包括‘moov’box,A3包括‘free’box,A4包括‘mdat’box,A5包括‘free’box。
在其中一个实施例中,记录关键box的位置及大小步骤中,关键box的位置包括P1和P2,P1为original‘mdat’position,P2为original‘moov’position,关键box的大小包括S1和S2,S1为‘mdat’size,S2为‘moov’size。
在其中一个实施例中,计算出原始MP4文件与虚拟文件的物理位置的偏移值的步骤中,偏移值的算法为:offset=P2-P1+S1-S2。
在其中一个实施例中,构造新的虚拟文件组成步骤,还包括计算出虚拟文件的P3,P3为virtual‘mdat’position,算法为P3=P2+S2-S1。
在其中一个实施例中,根据请求的RequestPos做映射的步骤中,具体映射方法如下:
a、当RequestPos在A1或A5,则直接读取原始文件;
b、当RequestPos在A2,读取’moov’box数据;
c、当RequestPos在A3,映射为RequestPos+S1-S2;
d、当RequestPos在A4,映射为RequestPos+P1-P3。
这种支持MP4文件逐行下载实时转换的方法,通过设计虚拟MP4文件,将‘moov’box移至‘mdat’box前,可以实时的将非逐行下载的MP4文件转换为逐行下载文件,使点播系统可以兼容更多的MP4文件。
附图说明
图1为一般原始MP4文件划分成五个部分的组成示意图;
图2为通过本发明一实施方式的支持MP4文件逐行下载实时转换的方法所构造出的新的文件的五个部分的组成示意图。
具体实施方式
为了便于理解本发明,下面将用具体实施例对本发明进行更全面的描述。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这实施例的目的是使对本发明的公开内容的理解更加透彻全面。
本发明一实施例的支持MP4文件逐行下载实时转换的方法,包括如下步骤:
S1、如图1所示,首先解析原始MP4文件,将其划分成五个部分A1、A2、A3、A4和A5,记录几个关键box的位置和大小。其中P1为original‘mdat’position,P2为original‘moov’position,S1为‘mdat’size,S2为‘moov’size。若P1>P2,则表明该MP4文件已经是逐行下载的文件,不需要再做任何操作。若P1<P2,则进行下述步骤。
S2、如图2所示,P3为A1(fytp)、A2(moov)、以及A3(free)三者的大小之和;而如图1所示,P2为A1(fytp)、A4((mdat)、以及A3(free)三者的大小之和;那么P3-P2=A2(moov)与A4(mdat)大小之差,即P3-P2=S2-S1,亦P3=P2+S2-S1。因此,步骤S2中,构造出新的虚拟文件组成,其中P3为virtual‘mdat’position。P3通过算法P3=P2+S2-S1得出。
S3、计算出虚拟文件的物理位置(即‘stco’或‘co64’box):将原始的‘moov’box数据保存起来,并根据offset=P2-P1+S1-S2算式,计算出原始文件与虚拟文件的物理位置的偏移值offset,然后将前述的虚拟文件的物理位置‘stco’或‘co64’box的值都加上这个offset。
在该步骤中,由于虚拟文件仅交换了mdat与moov的位置,并不影响sample的大小、trunk和sample对应关系等数据信息,唯一影响的是trunk的位置,因此虚拟文件就必须修改moov中stco/co64的值,且由于在本方法中是将整个mdat进行挪动,所以每个trunk需要修改的值是一样的,设统一需要增加一个offset,则只需要计算虚拟文件mdat的第一个字节的偏移即可。
S4、当请求端(不仅仅是流媒体服务器)来请求数据时,根据请求的文件位置(RequestPos)做映射,将虚拟文件位置映射到原始文件。在该步骤中,服务器需要返回符合逐行下载的虚拟文件,但由于虚拟文件是不存在的,因此需要根据虚拟文件的位置而从原始原件中做映射,从原始文件中找到数据并返回给客户端。基本的映射表的逻辑关系即如图1和图2,具体的映射关系描述如下:
假设客户端申请获取的的文件位置为RequestPos,即虚拟文件中的文件位置,将该虚拟文件位置映射到原始文件,有如下几种情况:
a、当RequestPos落在A1或A5范围内,即满足0≤RequestPos<P1,或满足RequestPos≥P3+S1,此情况从图1和图2可看出,A1、A5对应的文件位置完全一样,数据也一样,因此直接读取原始文件即可;
b、当RequestPos落在A2范围内,即满足P1≤RequestPos<P1+S2,读取保存并修改过的‘moov’box数据,则数据对应原始的moovbox,且相对于moov第一个字节位置必须一致,那么就需要返回原始文件P2+(RequestPos-P1)位置的数据,此外,若数据是stco/co64的数据,该数据必须是根据上述步骤S3修改过的数据;
c、当RequestPos落在A3范围内,即满足P1+S2≤RequestPos<P3,需要映射到原始文件A3中,而且需保证相对于A3的第一个字节相对位置一致。设对应原始位置为newPos,那么ReuestPos-(P1+S2)=newPos-(P1+S1),即newPos=RequestPos+S1-S2;
d、当RequestPos落在A4范围内,即满足P3≤RequestPos<P3+S1,读取原始文件A4内的数据,且保证相对于A4,实点不变,设对应原始文件位置为newPos,那么
newPos-P1=RequestPos-P3,newPos=RequestPos-P3+P1=RequestPos-(P2+S2-S1)+P1。
这种支持MP4文件逐行下载实时转换的方法,通过设计虚拟MP4文件,将‘moov’box移至‘mdat’box前,可以实时的将非逐行下载的MP4文件转换为逐行下载文件,使点播系统可以兼容更多的MP4文件。
以上实施例仅表达了本发明的个别实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种支持MP4文件逐行下载实时转换的方法,其特征在于,包括如下步骤:
解析原始MP4文件并根据box划分成五个部分,五个部分分别为A1、A2、A3、A4和A5,记录关键box的位置及大小;
构造新的虚拟文件组成,并算出所述虚拟文件的物理位置;
计算出所述原始MP4文件与所述虚拟文件的所述物理位置的offset,并在所述虚拟文件的所述物理位置加上所述offset;
当接收请求端发送的请求数据时,根据请求的RequestPos做映射,将所述虚拟文件的位置映射到所述原始MP4文件。
2.根据权利要求1所述的一种支持MP4文件逐行下载实时转换的方法,其特征在于,所述解析原始MP4文件并根据关键box划分成五个部分的步骤中,A1包括‘fytp’box,A2包括‘moov’box,A3包括‘free’box,A4包括‘mdat’box,A5包括‘free’box。
3.根据权利要求2所述的一种支持MP4文件逐行下载实时转换的方法,其特征在于,所述记录关键box的位置及大小步骤中,所述关键box的位置包括P1和P2,所述P1为original‘mdat’position,所述P2为original‘moov’position,所述关键box的大小包括S1和S2,所述S1为‘mdat’size,所述S2为‘moov’size。
4.根据权利要求3所述的一种支持MP4文件逐行下载实时转换的方法,其特征在于,所述计算出所述原始MP4文件与所述虚拟文件的所述物理位置的偏移值的步骤中,所述偏移值的算法为:offset=P2-P1+S1-S2。
5.根据权利要求5所述的一种支持MP4文件逐行下载实时转换的方法,其特征在于,所述构造新的虚拟文件组成步骤,还包括计算出所述虚拟文件的P3,所述P3为virtual‘mdat’position,算法为P3=P2+S2-S1。
6.根据权利要求5所述的一种支持MP4文件逐行下载实时转换的方法,其特征在于,所述根据请求的RequestPos做映射的步骤中,具体映射方法如下:
a、当所述RequestPos在A1或A5,则直接读取原始文件;
b、当所述RequestPos在A2,读取’moov’box数据;
c、当所述RequestPos在A3,映射为RequestPos+S1-S2;
d、当所述RequestPos在A4,映射为RequestPos+P1-P3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976195.8A CN105578276A (zh) | 2015-12-24 | 2015-12-24 | 一种支持mp4文件逐行下载实时转换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976195.8A CN105578276A (zh) | 2015-12-24 | 2015-12-24 | 一种支持mp4文件逐行下载实时转换的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105578276A true CN105578276A (zh) | 2016-05-11 |
Family
ID=55887864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510976195.8A Pending CN105578276A (zh) | 2015-12-24 | 2015-12-24 | 一种支持mp4文件逐行下载实时转换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105578276A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110620950A (zh) * | 2019-10-10 | 2019-12-27 | 东软集团股份有限公司 | 一种音视频文件的存储方法、装置及设备 |
CN114390319A (zh) * | 2021-10-22 | 2022-04-22 | 广州市奥威亚电子科技有限公司 | Mp4文件的读取下载方法、装置、电子设备及存储介质 |
CN114845159A (zh) * | 2022-04-22 | 2022-08-02 | 北京百度网讯科技有限公司 | 下载数据生成方法和装置 |
US11683557B2 (en) | 2021-06-21 | 2023-06-20 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for playing MP4 online, device, and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256431A1 (en) * | 2007-04-13 | 2008-10-16 | Arno Hornberger | Apparatus and Method for Generating a Data File or for Reading a Data File |
US20100169390A1 (en) * | 2008-12-30 | 2010-07-01 | Samsung Electronics Co., Ltd. | File transfer method and terminal adapted thereto |
US7974313B2 (en) * | 2006-02-07 | 2011-07-05 | Samsung Electronics Co., Ltd. | System for intermediating A/V stream between data network and IEEE 1394 network and method thereof |
CN104506966A (zh) * | 2014-12-10 | 2015-04-08 | 曙光信息产业(北京)有限公司 | 音视频数据的解码方法及装置 |
-
2015
- 2015-12-24 CN CN201510976195.8A patent/CN105578276A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7974313B2 (en) * | 2006-02-07 | 2011-07-05 | Samsung Electronics Co., Ltd. | System for intermediating A/V stream between data network and IEEE 1394 network and method thereof |
US20080256431A1 (en) * | 2007-04-13 | 2008-10-16 | Arno Hornberger | Apparatus and Method for Generating a Data File or for Reading a Data File |
US20100169390A1 (en) * | 2008-12-30 | 2010-07-01 | Samsung Electronics Co., Ltd. | File transfer method and terminal adapted thereto |
CN104506966A (zh) * | 2014-12-10 | 2015-04-08 | 曙光信息产业(北京)有限公司 | 音视频数据的解码方法及装置 |
Non-Patent Citations (1)
Title |
---|
LINA ZHAO等: "An Optimized Method and Implementation for Parsing MP4 Metadata", 《PROCEEDINGS OF THE 2010 IEEE INTERNATIONAL CONFERENCE ON PROGRESS IN INFORMATICS AND COMPUTING》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110620950A (zh) * | 2019-10-10 | 2019-12-27 | 东软集团股份有限公司 | 一种音视频文件的存储方法、装置及设备 |
CN110620950B (zh) * | 2019-10-10 | 2022-03-15 | 东软集团股份有限公司 | 一种音视频文件的存储方法、装置及设备 |
US11683557B2 (en) | 2021-06-21 | 2023-06-20 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for playing MP4 online, device, and storage medium |
CN114390319A (zh) * | 2021-10-22 | 2022-04-22 | 广州市奥威亚电子科技有限公司 | Mp4文件的读取下载方法、装置、电子设备及存储介质 |
CN114390319B (zh) * | 2021-10-22 | 2023-11-03 | 广州市奥威亚电子科技有限公司 | Mp4文件的读取下载方法、装置、电子设备及存储介质 |
CN114845159A (zh) * | 2022-04-22 | 2022-08-02 | 北京百度网讯科技有限公司 | 下载数据生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8725680B2 (en) | Media content location awareness and decision making | |
CN105578276A (zh) | 一种支持mp4文件逐行下载实时转换的方法 | |
US20170245022A1 (en) | Splicing method and splicing system for http live streaming media fragment | |
JP6352931B2 (ja) | ハイブリッドネットワークにおけるマルチメディアデータを送受信するための装置及びその方法 | |
EP3404895B1 (en) | Multimedia data transmission method and device | |
US20100169390A1 (en) | File transfer method and terminal adapted thereto | |
CN102883216A (zh) | 一种视频直播方法与设备 | |
JP2006343830A (ja) | ファイル変換システム | |
CN102004762B (zh) | 生成电子书的方法和装置、以及下载电子书的方法和装置 | |
WO2020093931A1 (zh) | 字幕数据处理方法、装置、设备和计算机存储介质 | |
CN102438004A (zh) | 获取媒体文件的元数据信息的方法、系统及多媒体播放器 | |
CN105049873A (zh) | 一种流媒体传输方法、装置和系统 | |
CN113742518A (zh) | 存储和提供视频的方法、设备和计算机程序产品 | |
CN101226534B (zh) | 一种查找关联文件的方法、终端和系统 | |
CN102572604A (zh) | 基于p2p网络的视频点播系统及点播方法 | |
KR20150029918A (ko) | 다수의 분산된 서버로 구성된 클라우드 시스템에서 콘텐츠를 동기화하는 시스템 | |
KR20130123106A (ko) | 분산파일기반 미디어 스트리밍 서비스 시스템 | |
CN105335682A (zh) | 一种资源同步播放方法、系统及服务器 | |
CN104090898B (zh) | 本地音乐与库内音乐匹配的方法和装置 | |
CN104519025A (zh) | 远程媒体文件播放方法、系统和移动终端设备 | |
CN104346338A (zh) | 应用于终端的多媒体信息显示方法和装置 | |
CN103997675A (zh) | 一种数字机顶盒的信息分享系统 | |
CN104539606B (zh) | 基于Upnp的音频文件管理方法、装置和系统 | |
CN103218547B (zh) | Swf文件批量加密方法及装置 | |
CN103023896A (zh) | Dlna设备类型标记及获取方法、装置及dlna设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: HANGZHOU DANGHONG TECHNOLOGY CO., LTD. Document name: Notification that Application Deemed to be Withdrawn |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160511 |