CN113852857A - 一种基于html5视频帧步进时的声音播放方法及系统 - Google Patents

一种基于html5视频帧步进时的声音播放方法及系统 Download PDF

Info

Publication number
CN113852857A
CN113852857A CN202111221645.4A CN202111221645A CN113852857A CN 113852857 A CN113852857 A CN 113852857A CN 202111221645 A CN202111221645 A CN 202111221645A CN 113852857 A CN113852857 A CN 113852857A
Authority
CN
China
Prior art keywords
audio
video
frame
pts
binary
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
Application number
CN202111221645.4A
Other languages
English (en)
Other versions
CN113852857B (zh
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.)
Chengdu Chinamcloud Technology Co ltd
Original Assignee
Chengdu Chinamcloud Technology Co ltd
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 Chengdu Chinamcloud Technology Co ltd filed Critical Chengdu Chinamcloud Technology Co ltd
Priority to CN202111221645.4A priority Critical patent/CN113852857B/zh
Publication of CN113852857A publication Critical patent/CN113852857A/zh
Application granted granted Critical
Publication of CN113852857B publication Critical patent/CN113852857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • 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/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • 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/44016Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明涉及一种基于HTML5视频帧步进时的声音播放方法及系统,所述声音播放方法包括:S1、选择一个video播放器并赋值一个mp4地址,将初始状态设置为暂停;S2、加载mp4的metadata信息;S3、寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点;S34、返回步骤S2完成此帧视频中声音的播放。本发明的优点在于:解决了现有HTML5视频步进时不能将声音播放出来的问题,能够辅助视频编辑工作者更快的剪切视频;审核视频时更快定位异常位置。

Description

一种基于HTML5视频帧步进时的声音播放方法及系统
技术领域
本发明涉及视频流处理技术领域,尤其涉及一种基于HTML5视频帧步进时的声音播放方法及系统。
背景技术
在视频编辑处理领域,对视频进行剪切时多数时候都需要一帧一帧的查看画面,以找到对应剪切点;同时,也需要对某一帧的声音进行判断,由于前一帧和后一帧所对应的声音有较大差异,因此成为视频编辑人员找剪切点的依据;然而HTML5 video不支持在帧步进时播放声音,导致视频编辑人员无法根据前后帧声音的差别来找到剪切点,所以,如何将HTML5视频步进时的声音播放出来,是现阶段需要考虑的问题。
发明内容
本发明的目的在于克服现有技术的缺点,提供了一种基于HTML5视频帧步进时的声音播放方法及系统,解决了现有HTML5视频步进时不能将声音播放出来的问题。
本发明的目的通过以下技术方案来实现:一种基于HTML5视频帧步进时的声音播放方法,所述声音播放方法包括:
S1、选择一个video播放器并赋值一个mp4地址,将初始状态设置为暂停;
S2、加载mp4的metadata信息,包括:
S21、创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;
S22、解析metadata头,找到所有音频帧所在文件的二进制地址;
S23、建立映射表,将音频帧的二进制地址与视频帧的pts进行对应;
S24、建立音频缓冲池,对已经加载的二进制音频数据进行管理;
S3、寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点;
S4、返回步骤S2完成此帧视频中声音的播放。
所述解析metadata头,找到所有音频帧所在文件的二进制地址包括:
从mp4文件结构中媒体目录下的第一个轨道盒子开始,解析轨道盒子目前下的媒体的播放过程信息得到轨道类型,并判断是否为音频轨道;
如果为音频轨道,则解析视频流创建时间和长度信息,得到相应的时间期限作为以后计算时间戳的基础;
然后继续向下查找解析媒体目录下的其它盒子,得到stsd盒子、stts盒子、stsc盒子、stsz盒子和stco盒子中所包含的信息。
所述建立映射表,将音频帧的二进制地址与视频帧的pts进行对应包括:
解析媒体目录下的stts盒子,得到每个sample的时长列表;
循环遍历得到一个sample的时长数组,数组的长度和sample总数相对应;
解析媒体目录下的stsz盒子,循环遍历后得到一个sample的size大小数组,数组的长度和sample总数相对应;
解析stsc盒子得到一个chunk中包含的sample的数量;
解析stco盒子,得到每个chunk在mp4文件中的位置;
根据stsc盒子表示的1个chunk包含的sample个数计算某个sample落在哪一个chunk中;
建立映射表,每个sample的pts以sample的偏移量从0开始累加,其中sample的偏移量根据所在chunk的偏移量加上sample在chunk内部的偏移量,循环sample时长数组,将几组数据进行合并得到合并后的数组,完成pts映射表。
所述寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点包括:。
通过video时间得到某一帧视频画面的pts时间;
在音频缓冲池中查找这一帧视频画面的二进制音频数据,如果有,则直接播放这一帧的音频,否则,继续下一步;通过pts定位到音频缓冲池中此帧的对象,判断isfinsh是否为真,如果为真则直接播放找到的音频节点对象;
查找映射表,找到对应的pts所在的二进制地址范围,找到音频缓冲池中的pts对象,向前和向后查找n个缓冲对象,查找过程中如果遇到缓冲对象已经处理完成,则跳出查找;利用range请求将地址范围的二进制数据下载到本地,得到物理二进制文件,将该文件按照sample所在的位置进行分割后放入sample二进制对象中,并遍历请求的缓冲对象,为每个缓冲对象生成一个音频节点,编将isfinsh设置为真。
一种基于HTML5视频帧步进时的声音播放方法的系统,它包括赋值模块、解析模块和音频节点生成模块;所述赋值模块用于选择一个video播放器并赋值一个mp4地址,将初始状态设置为暂停;所述解析模块用于创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;解析metadata头,找到所有音频帧所在文件的二进制地址;建立映射表,将音频帧的二进制地址与视频帧的pts进行对应;建立音频缓冲池,对已经加载的二进制音频数据进行管理;所述音频节点生成模块用于寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点。
所述解析模块包括创建单元、metadata解析单元、映射表建立单元和音频缓冲池建立单元;
所述创建单元用于创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;
所述metadata解析单元用于从mp4文件结构中媒体目录下的第一个轨道盒子开始,解析轨道盒子目前下的媒体的播放过程信息得到轨道类型,并判断是否为音频轨道;如果为音频轨道,则解析视频流创建时间和长度信息,得到相应的时间期限作为以后计算时间戳的基础;然后继续向下查找解析媒体目录下的其它盒子,得到stsd盒子、stts盒子、stsc盒子、stsz盒子和stco盒子中所包含的信息;
所述映射表建立单元用于解析媒体目录下的stts盒子,得到每个sample的时长列表;循环遍历得到一个sample的时长数组,数组的长度和sample总数相对应;解析媒体目录下的stsz盒子,循环遍历后得到一个sample的size大小数组,数组的长度和sample总数相对应;解析stsc盒子得到一个chunk中包含的sample的数量;解析stco盒子,得到每个chunk在mp4文件中的位置;根据stsc盒子表示的1个chunk包含的sample个数计算某个sample落在哪一个chunk中;建立映射表,每个sample的pts以sample的偏移量从0开始累加,其中sample的偏移量根据所在chunk的偏移量加上sample在chunk内部的偏移量,循环sample时长数组,将几组数据进行合并得到合并后的数组,完成pts映射表;
所述音频缓冲池建立单元通过video时间得到某一帧视频画面的pts时间;在音频缓冲池中查找这一帧视频画面的二进制音频数据,如果有,则直接播放这一帧的音频,否则,继续下一步;通过pts定位到音频缓冲池中此帧的对象,判断isfinsh是否为真,如果为真则直接播放找到的音频节点对象;查找映射表,找到对应的pts所在的二进制地址范围,找到音频缓冲池中的pts对象,向前和向后查找n个缓冲对象,查找过程中如果遇到缓冲对象已经处理完成,则跳出查找;利用range请求将地址范围的二进制数据下载到本地,得到物理二进制文件,将该文件按照sample所在的位置进行分割后放入sample二进制对象中,并遍历请求的缓冲对象,为每个缓冲对象生成一个音频节点,编将isfinsh设置为真。
本发明具有以下优点:一种基于HTML5视频帧步进时的声音播放方法及系统,解决了现有HTML5视频步进时不能将声音播放出来的问题,能够辅助视频编辑工作者更快的剪切视频;审核视频时更快定位异常位置。
附图说明
图1为本发明方法的流程示意图;
图2为本发明解析metadata头的示意图1;
图3为本发明解析metadata头的示意图2;
图4为本发明sample时长列表的示意图;
图5为地址合并示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下结合附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。
如图1所示,本发明主要是通过JS自有特性,通过网络请求将mp4的metadata头加载下来并解析,得到pts映射关系。然后在播放器寻找某一画面时,通过映射区间找到画面对应的二进制音频数据,再将数据转换为可播放的对象,交由audio播放。其主要包括以下步骤:
S1、选择一个video播放器并赋值一个mp4地址,将初始状态设置为暂停;
S2、加载mp4的metadata信息,包括:
S21、创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;
S22、解析metadata头,找到所有音频帧所在文件的二进制地址;
如图2所示,在mp4文件结构中,moov盒子为metadata部分,其中mvhd包含了媒体的创建与修改时间时间刻度、默认音量、色域、时长等信息,而trak则包含了单个媒体轨道(Track)所特有的描述信息。一个mp4可能含有多个媒体轨道,视频轨、音频轨(可多条)、字幕轨。在这一步中,我们将找到音频轨,由于音频轨可能存在多条,在此示列中,暂时以找到第一条为准,其它音频轨只需要重复此步骤即可。
从trak这个盒子开始,第二层的tkhd为媒体流的头部信息,比如创建时间、修改时间、轨道ID、时长、音量、幅面高宽等。第二层的mdia盒子里含有三层,分别是:mdhd:存放视频流创建时间,长度等信息;hdlr:媒体的播放过程信息;minf:解释track媒体数据的handler-specific信息;此时,通过解析hdlr可以得到轨道类型,位于此盒子第16个字节位置,占用4个字节表示,将此值取出得到对应的字符。如果此字符为soun,则表示此轨道为音频轨道。
如图3所示,音频轨定位后,首先解析mdhd盒子,得到timeScale(比如44100)作为以后计算时间戳的基础。然后继续向下查找minf下的stbl盒子,这个盒子是mp4中最复杂的一个box,stbl包含了媒体流每一个sample在文件中的offset,pts,duration等信息。
stsd:存放解码必须的描述信息;
stts:存储了sample的duration,描述了sample时序的映射方法,我们通过它可以找到任何时间的sample。“stts”可以包含一个压缩的表来映射时间和sample序号,用其他的表来提供每个sample的长度和指针。表中每个条目提供了在同一个时间偏移量里面连续的sample序号,以及samples的偏移量。递增这些偏移量,就可以建立一个完整的time tosample表。
stsc:用chunk组织sample可以方便优化数据获取,一个chunk包含一个或多个sample。描述了sample与chunk的映射关系,查看这张表就可以找到包含指定sample的chunk,从而找到这个sample。
stsz:定义了每个sample的大小,包含了媒体中全部sample的数目和一张给出每个sample大小的表。
stco:定义了每个chunk在媒体流中的位置。通过这个盒子,我们可以知道chunk在Mp4文件中真实的位置。
S23、建立映射表,将音频帧的二进制地址与视频帧的pts进行对应;
如图4所示,首先解析stts盒子,得到每个sample的时长列表;示列中第一个音频帧时长为1024/44100=0.023219954648526078秒,通过循环遍历得到一个sample的时长数组[0.023,0.024,0.024,0.025,…],数组长度和Sample总数相对应。
其次,解析stsz盒子,stsz里表明了每一个sample的size大小,循环遍历后,得到一个sample的size大小数组[42072,7354,4326,…],数组长度和sample总数相对应。
第三步开始解析stsc,这个盒子里会表明一个chunk里含有多少个sample。
第四步开始解析stco,从这个盒子里,我们会得到每个chunk在mp4文件中的位置。得到类似下面的结果,[7544,182562,204381…]。
第五步,根据stsc表示的1个chunk含有sample的个数来计算某个sample该落在哪一个chunk中,如果1个chunk中含有1个sample,那么chunk和sample是一对一的关系,如果1个chunk中含有2个sample,则需要将sample的序号与chunk序号进行模运算,得到sample在哪一个chunk中。
第六步,建立映射表,每个sample的pts从0开始累加,sample的偏移量根据所在chunk的偏移量加上sample在chunk内部的偏移量,循环sample时长数组,将几组数据进行合并。至此,pts映射表完成。
S24、建立音频缓冲池,对已经加载的二进制音频数据进行管理;
音频缓冲池对象的作用在于当多次定位到某一帧画面时,避免重复去加载和解析这一帧的音频,提高效率。建立时,需要以视频每一帧时长为基准,假设视频帧率为25,则每一帧时长为40毫秒。
其中,isFinsh表示这一帧的音频数据是否已经创建在本地。
S3、寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点;
具体为,S31、通过video事件,得到这一帧画面的PTS时间;
S32、在音频缓冲池中查找这一帧的二进制音频数据,如果有,则直接播放这一帧的音频,否则,继续下一步。
通过PTS可定位到缓冲池此帧的对象,判断isFinsh是否为真,为真则直接播放找到的音频节点对象。为false,则需要加载并解析;
S33、查找映射表,找到对应的PTS所在的二进制地址范围。在这里需要对程序进行优化,可以将这帧画面前后1秒的所有地址范围查找出来进行合并。
找到缓冲池的PTS对象,向前查找25个缓冲池对象,向后查找25个缓冲池对象,查找中,如果遇到缓冲对象已经处理完成,则跳出查找。由于sample的连续性,即可从第一缓冲对象的第一个的offsetStart和最后一个缓冲对象的sample的offsetEnd。
如图5所示,合并后的地址为100-600;利用range请求,将地址范围的二进制数据下载至本地,得到物理二进制文件100-600共500字节的文件,将此文件按照sample所在的位置分割后,放入sample二进制对象。遍历刚刚请求的缓冲对象,为每个缓冲对象生成一个音频节点,并将isFinsh置为true。
S4、此时,再次回到步骤S2,则可完成此帧声音的播放。
本发明中涉及到的英文单词或者英文缩写所表示的含义如下:
HTML5:是构建网页内容的一种语言描述方式;
MP4:一种常见的视频封装格式;
metadata:表示MP4文件头信息部分(元数据);
XMLHttpRequest:可以从页面向后台加载数据或向后台发送数据;
range:XMLHttpRequest对象的一个参数,表示数据范围;
box:一个盒子,在Mp4中表示一个完整的可解析的二进制块;
offset:二进制的偏移位置量;
pts:解码时表示某一帧的时间点;
duration:时长;
moov:mp4元数据的一个盒子;
mvhd:包含了媒体的创建与修改时间时间刻度、默认音量、色域、时长等信息;
trak:一个轨道数据盒子;
tkhd:轨道数据的基本信息,创建时间,创建时间、修改时间等;
mdhd:存放视频流创建时间,长度等信息;
hdlr:媒体的播放过程信息;
handler-specific:特别的处理程序;
minf:解释track媒体数据的handler-specific信息;
vide:表示轨道类型为视频;
soun:表示轨道类型为音频;
hint:表示轨道类型为索引;
timeScale:时间头刻度;
sample:最小化数据单元,视频轨表示一帧或多帧连续的视频,音频表示连续的一段压缩音频;
samples:多个数据单元的集合;
stbl:包含了关于轨道中sample所有时间和位置的信息,以及sample的编解码等信息;
stsd:sample数据检索的信息;
stts:存储了sample的duration,描述了sample时序的映射方法;
stsc:描述了sample与chunk的映射关系;
stsz:定义了每个sample的大小;
stco:定义了每个chunk在媒体流中的位置;
chunk:由一个或多个sample组成的数据单元;
audio:音频节点;
Object:程序运行时的对象;
isFinsh:是否完成;
false:否;
offsetStart:开始偏移量;
offsetEnd:结束偏移量;
size:大小;
true:是。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (6)

1.一种基于HTML5视频帧步进时的声音播放方法,其特征在于:所述声音播放方法包括:
S1、选择一个video播放器并赋值一个mp4地址,将初始状态设置为暂停;
S2、加载mp4的metadata信息,包括:
S21、创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;
S22、解析metadata头,找到所有音频帧所在文件的二进制地址;
S23、建立映射表,将音频帧的二进制地址与视频帧的pts进行对应;
S24、建立音频缓冲池,对已经加载的二进制音频数据进行管理;
S3、寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点;
S4、返回步骤S2完成此帧视频中声音的播放。
2.根据权利要求1所述的一种基于HTML5视频帧步进时的声音播放方法,其特征在于:所述解析metadata头,找到所有音频帧所在文件的二进制地址包括:
从mp4文件结构中媒体目录下的第一个轨道盒子开始,解析轨道盒子目前下的媒体的播放过程信息得到轨道类型,并判断是否为音频轨道;
如果为音频轨道,则解析视频流创建时间和长度信息,得到相应的时间期限作为以后计算时间戳的基础;
然后继续向下查找解析媒体目录下的其它盒子,得到stsd盒子、stts盒子、stsc盒子、stsz盒子和stco盒子中所包含的信息。
3.根据权利要求2所述的一种基于HTML5视频帧步进时的声音播放方法,其特征在于:所述建立映射表,将音频帧的二进制地址与视频帧的pts进行对应包括:
解析媒体目录下的stts盒子,得到每个sample的时长列表;
循环遍历得到一个sample的时长数组,数组的长度和sample总数相对应;
解析媒体目录下的stsz盒子,循环遍历后得到一个sample的size大小数组,数组的长度和sample总数相对应;
解析stsc盒子得到一个chunk中包含的sample的数量;
解析stco盒子,得到每个chunk在mp4文件中的位置;
根据stsc盒子表示的1个chunk包含的sample个数计算某个sample落在哪一个chunk中;
建立映射表,每个sample的pts以sample的偏移量从0开始累加,其中sample的偏移量根据所在chunk的偏移量加上sample在chunk内部的偏移量,循环sample时长数组,将几组数据进行合并得到合并后的数组,完成pts映射表。
4.根据权利要求1所述的一种基于HTML5视频帧步进时的声音播放方法,其特征在于:所述寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点包括:。
通过video时间得到某一帧视频画面的pts时间;
在音频缓冲池中查找这一帧视频画面的二进制音频数据,如果有,则直接播放这一帧的音频,否则,继续下一步;通过pts定位到音频缓冲池中此帧的对象,判断isfinsh是否为真,如果为真则直接播放找到的音频节点对象;
查找映射表,找到对应的pts所在的二进制地址范围,找到音频缓冲池中的pts对象,向前和向后查找n个缓冲对象,查找过程中如果遇到缓冲对象已经处理完成,则跳出查找;利用range请求将地址范围的二进制数据下载到本地,得到物理二进制文件,将该文件按照sample所在的位置进行分割后放入sample二进制对象中,并遍历请求的缓冲对象,为每个缓冲对象生成一个音频节点,并将isfinsh设置为真。
5.根据权利要求1-4中任意一项所述的一种基于HTML5视频帧步进时的声音播放方法的系统,其特征在于:它包括赋值模块、解析模块和音频节点生成模块;所述赋值模块用于选择一个video播放器并赋值一个mp4地址,将初始状态设置为暂停;所述解析模块用于创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;解析metadata头,找到所有音频帧所在文件的二进制地址;建立映射表,将音频帧的二进制地址与视频帧的pts进行对应;建立音频缓冲池,对已经加载的二进制音频数据进行管理;所述音频节点生成模块用于寻找某一帧视频确定该帧画面的pts时间,对定位到缓冲池中该帧的对象进行判断,根据判断结果查找映射表中对应的pts所在的二进制地址范围,并对缓冲池中的pts对象进行处理为每个缓冲对象生成一个音频节点。
6.根据权利要求5所述的一种基于HTML5视频帧步进时的声音播放方法的系统,其特征在于:所述解析模块包括创建单元、metadata解析单元、映射表建立单元和音频缓冲池建立单元;
所述创建单元用于创建XMLHttpRequest Range请求,将metadata部分的二进数据下载到内存;
所述metadata解析单元用于从mp4文件结构中媒体目录下的第一个轨道盒子开始,解析轨道盒子目前下的媒体的播放过程信息得到轨道类型,并判断是否为音频轨道;如果为音频轨道,则解析视频流创建时间和长度信息,得到相应的时间期限作为以后计算时间戳的基础;然后继续向下查找解析媒体目录下的其它盒子,得到stsd盒子、stts盒子、stsc盒子、stsz盒子和stco盒子中所包含的信息;
所述映射表建立单元用于解析媒体目录下的stts盒子,得到每个sample的时长列表;循环遍历得到一个sample的时长数组,数组的长度和sample总数相对应;解析媒体目录下的stsz盒子,循环遍历后得到一个sample的size大小数组,数组的长度和sample总数相对应;解析stsc盒子得到一个chunk中包含的sample的数量;解析stco盒子,得到每个chunk在mp4文件中的位置;根据stsc盒子表示的1个chunk包含的sample个数计算某个sample落在哪一个chunk中;建立映射表,每个sample的pts以sample的偏移量从0开始累加,其中sample的偏移量根据所在chunk的偏移量加上sample在chunk内部的偏移量,循环sample时长数组,将几组数据进行合并得到合并后的数组,完成pts映射表;
所述音频缓冲池建立单元通过video时间得到某一帧视频画面的pts时间;在音频缓冲池中查找这一帧视频画面的二进制音频数据,如果有,则直接播放这一帧的音频,否则,继续下一步;通过pts定位到音频缓冲池中此帧的对象,判断isfinsh是否为真,如果为真则直接播放找到的音频节点对象;查找映射表,找到对应的pts所在的二进制地址范围,找到音频缓冲池中的pts对象,向前和向后查找n个缓冲对象,查找过程中如果遇到缓冲对象已经处理完成,则跳出查找;利用range请求将地址范围的二进制数据下载到本地,得到物理二进制文件,将该文件按照sample所在的位置进行分割后放入sample二进制对象中,并遍历请求的缓冲对象,为每个缓冲对象生成一个音频节点,编将isfinsh设置为真。
CN202111221645.4A 2021-10-20 2021-10-20 一种基于html5视频帧步进时的声音播放方法及系统 Active CN113852857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111221645.4A CN113852857B (zh) 2021-10-20 2021-10-20 一种基于html5视频帧步进时的声音播放方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111221645.4A CN113852857B (zh) 2021-10-20 2021-10-20 一种基于html5视频帧步进时的声音播放方法及系统

Publications (2)

Publication Number Publication Date
CN113852857A true CN113852857A (zh) 2021-12-28
CN113852857B CN113852857B (zh) 2023-04-11

Family

ID=78982371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111221645.4A Active CN113852857B (zh) 2021-10-20 2021-10-20 一种基于html5视频帧步进时的声音播放方法及系统

Country Status (1)

Country Link
CN (1) CN113852857B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115359154A (zh) * 2022-10-19 2022-11-18 成都华栖云科技有限公司 一种新型高效的html5网页动画帧精确合成方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101842786A (zh) * 2007-10-29 2010-09-22 诺基亚公司 对于多媒体文件格式的快速和编辑友好的采样关联方法
CN105847994A (zh) * 2016-05-05 2016-08-10 北京奇艺世纪科技有限公司 一种多媒体文件的播放方法和装置
CN105898551A (zh) * 2015-12-18 2016-08-24 乐视云计算有限公司 网络视频播放方法及装置
US20170034497A1 (en) * 2014-09-10 2017-02-02 Panasonic Intellectual Property Corporation Of America Recording medium, playback device, and playback method
US20180227164A1 (en) * 2017-02-07 2018-08-09 Da Sheng Inc. Method for synchronously taking audio and video in order to proceed one-to-multi multimedia stream
CN110248204A (zh) * 2019-07-16 2019-09-17 广州虎牙科技有限公司 一种直播缓存的处理方法、装置、设备和存储介质
CN110784741A (zh) * 2018-07-31 2020-02-11 中移(杭州)信息技术有限公司 媒体数据的时移响应方法及装置
CN110944225A (zh) * 2019-11-20 2020-03-31 武汉长江通信产业集团股份有限公司 一种基于html5的不同帧率音视频的同步方法及装置
CN111063376A (zh) * 2019-12-13 2020-04-24 厦门市美亚柏科信息股份有限公司 一种mp4修复中音视频同步的方法、终端设备和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101842786A (zh) * 2007-10-29 2010-09-22 诺基亚公司 对于多媒体文件格式的快速和编辑友好的采样关联方法
US20170034497A1 (en) * 2014-09-10 2017-02-02 Panasonic Intellectual Property Corporation Of America Recording medium, playback device, and playback method
CN105898551A (zh) * 2015-12-18 2016-08-24 乐视云计算有限公司 网络视频播放方法及装置
CN105847994A (zh) * 2016-05-05 2016-08-10 北京奇艺世纪科技有限公司 一种多媒体文件的播放方法和装置
US20180227164A1 (en) * 2017-02-07 2018-08-09 Da Sheng Inc. Method for synchronously taking audio and video in order to proceed one-to-multi multimedia stream
CN110784741A (zh) * 2018-07-31 2020-02-11 中移(杭州)信息技术有限公司 媒体数据的时移响应方法及装置
CN110248204A (zh) * 2019-07-16 2019-09-17 广州虎牙科技有限公司 一种直播缓存的处理方法、装置、设备和存储介质
CN110944225A (zh) * 2019-11-20 2020-03-31 武汉长江通信产业集团股份有限公司 一种基于html5的不同帧率音视频的同步方法及装置
CN111063376A (zh) * 2019-12-13 2020-04-24 厦门市美亚柏科信息股份有限公司 一种mp4修复中音视频同步的方法、终端设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115359154A (zh) * 2022-10-19 2022-11-18 成都华栖云科技有限公司 一种新型高效的html5网页动画帧精确合成方法及系统

Also Published As

Publication number Publication date
CN113852857B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
CN101099210B (zh) 再现用于存储提供增强的搜索功能的元数据的存储介质的装置和方法
US6920181B1 (en) Method for synchronizing audio and video streams
CN100367794C (zh) 元数据编辑装置
US7181757B1 (en) Video summary description scheme and method and system of video summary description data generation for efficient overview and browsing
DE60102831T2 (de) System und verfahren zur verarbeitung von mpeg-stroemen fuer die einfuegung von dateiindex
US10210253B2 (en) Apparatus of providing comments and statistical information for each section of video contents and the method thereof
US10529383B2 (en) Methods and systems for processing synchronous data tracks in a media editing system
JP5144838B1 (ja) 情報処理装置、情報処理方法、及び、プログラム
WO2006011748A1 (en) Storage medium including metadata and re¬ production apparatus and method therefor
CN111669645B (zh) 视频的播放方法、装置、电子设备及存储介质
WO2001027876A1 (en) Video summary description scheme and method and system of video summary description data generation for efficient overview and browsing
CN102123281A (zh) 视频播放时快进快退处理方法、装置以及移动终端
KR20130118820A (ko) 증강현실 서비스를 위한 미디어 파일의 제공 방법 및 장치
CN113852857B (zh) 一种基于html5视频帧步进时的声音播放方法及系统
CN101132528A (zh) 元数据再生、分发、检索装置、元数据再生成条件设定装置
CN106899881B (zh) 音视频文件的播放方法及播放装置
CN103856800A (zh) 机顶盒读取外接存储设备的方法和装置
CN101803378B (zh) 用于访问媒体文件格式的元数据的方法
CN105847990A (zh) 播放媒体文件的方法和设备
CN103165157A (zh) 定位无索引avi 文件播放位置的方法、装置及播放器
CN107360457A (zh) 多媒体数据处理方法及相关设备
KR101477492B1 (ko) 동영상 콘텐츠 편집 및 재생을 위한 장치 및 그 방법
KR101709053B1 (ko) 음원의 음성 정보와 자막을 음절 단위로 동기화하기 위한 자막 파일 구조 및 자막 재생 장치
JP4383721B2 (ja) 多重化分離装置
CN108337503B (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
GR01 Patent grant
GR01 Patent grant