一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频文件的播放方法、装置、设备及存储介质与流程

2022-11-28 13:55:55 来源:中国专利 TAG:


1.本发明涉及多媒体播放技术领域,尤其涉及一种视频文件的播放方法、装置、设备及存储介质。


背景技术:

2.mp4,全称是mpeg-4 part 14,是一种使用mpeg-4的多媒体计算机文件格式,其扩展名为.mp4,以储存数字音频及数字视频为主。在mp4文件中,文件的物理格式和媒体数据的排列均不受媒体的时间顺序的控制。
3.现有技术中在播放mp4文件时,要将整个mp4文件下载后,才能实现播放,难以做到边下载边播放,播放效率较低。


技术实现要素:

4.鉴于上述现有技术的不足,本发明的目的在于提供一种视频文件的播放方法、装置、设备及存储介质。
5.本发明的技术方案如下:
6.一种视频文件的播放方法,所述视频文件为mp4文件,应用于视频播放服务器,所述方法包括:
7.获取原始mp4文件,对所述原始mp4文件进行解析,根据解析后的数据获取所述原始mp4文件的元数据,所述元数据为原始mp4文件的描述性信息;
8.将所述元数据移动至所述原始mp4文件的文件头指定位置,生成目标mp4文件;
9.当检测到客户端的在线播放指令时,将所述目标mp4文件发送至客户端,。其中,目标mp4文件发送过程中,客户端在读取文件头指定位置的元数据后,继续接收目标mp4文件的视频内容,并根据接收的视频内容进行在线播放
10.在一个实施例中,所述将所述元数据移动至所述原始mp4文件的文件头指定位置,生成目标mp4文件,包括:
11.获取所述原始mp4文件的文件头指定位置的原始存储内容,将原始存储内容转移至缓存中;
12.通过写文件函数将所述元数据写入所述原始mp4文件的文件头指定位置;
13.将所述缓存中的原始存储内容转存至特定位置后,生成目标mp4文件。
14.在一个实施例中,所述获取原始mp4文件,对所述原始mp4文件进行解析,包括:
15.获取视频客户端上传的原始mp4文件,根据mp4文件的文件封装格式对所述原始mp4文件进行格式解析;
16.根据格式解析结果得到原始mp4文件的文件类型、元数据、视频内容数据及数据长度。
17.在一个实施例中,所述原始mp4文件中的数据存储格式依次为文件类型、视频内容数据和元数据,所述通过写文件函数将所述元数据写入所述原始mp4文件的文件头指定位
置,生成目标mp4文件,包括:
18.提取所述元数据,通过写文件函数将所述元数据写入所述原始mp4文件的视频内容数据所在的地址之前。
19.在一个实施例中,所述根据解析后的数据获取所述原始mp4文件的元数据,包括:
20.获取原始mp4文件中存储的数据长度,根据数据长度读取所述原始mp4文件指定位置的元数据。
21.在一个实施例中,所述将所述元数据移动至所述原始mp4文件的文件头指定位置,生成目标mp4文件后,包括:
22.生成元数据调整标记,将所述元数据调整标记存储至所述目标mp4文件的开头位置。
23.在一个实施例中,所述当检测到客户端的在线播放指令时,将所述目标mp4文件发送至客户端,包括:
24.当检测到客户端的在线播放指令时,判断目标mp4文件是否存在元数据调整标记;
25.若存在元数据调整标记,则将所述目标mp4文件发送至客户端,其中,所述目标文件中的数据存储格式依次为文件类型、元数据和视频内容;
26.若不存在元数据调整标记,则将所述目标mp4文件的元数据移动至文件头指定位置后,将元数据移动后的目标mp4文件发送至客户端,其中,所述元数据移动后的目标文件中的数据存储格式依次为文件类型、元数据和视频内容。
27.本发明的另一实施例提供了一种视频文件的播放装置,装置包括:
28.数据解析模块,用于获取原始mp4文件,对所述原始mp4文件进行解析,根据解析后的数据获取所述原始mp4文件的元数据,所述元数据为原始mp4文件的描述性信息;
29.数据移动模块,用于将所述元数据移动至所述原始mp4文件的文件头指定位置,生成目标mp4文件;
30.数据发送模块,用于当检测到客户端的在线播放指令时,将所述目标mp4文件发送至客户端,其中,目标mp4文件发送过程中,客户端在读取文件头指定位置的元数据后,继续接收目标mp4文件的视频内容,并根据接收的视频内容进行在线播放。
31.本发明的另一实施例提供了一种视频文件的播放设备,所述设备包括至少一个处理器;以及,
32.与所述至少一个处理器通信连接的存储器;其中,
33.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的视频文件的播放方法。
34.本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的视频文件的播放方法。
35.有益效果:本发明实施例通过视频播放服务器将mp4文件的元数据移动到mp4文件的文件头指定位置,生成目标mp4文件,当客户端需要在线点播目标mp4文件时,当客户端下载到文件头指定位置的元数据,对元数据进行解析后,继续接收mp4文件的视频内容,根据接收目标mp4文件的视频内容进行在线播放,从而实现边缓存边播放mp4文件,提高了mp4文件播放效率。
附图说明
36.下面将结合附图及实施例对本发明作进一步说明,附图中:
37.图1为本发明一种视频文件的播放方法实施例的流程图;
38.图2为本发明一种视频文件的播放方法实施例的mp4文件内部数据的存储结构示意图;
39.图3为本发明一种视频文件的播放装置实施例的功能模块示意图;
40.图4为本发明一种视频文件的播放设备实施例的硬件结构示意图。
具体实施方式
41.为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
42.以下结合附图对本发明实施例进行介绍。
43.本发明实施例提供了一种视频文件的播放方法,视频文件为mp4文件,应用于视频播放服务器,请参阅图1,图1为本发明一种视频文件的播放方法较佳实施例的流程图。如图1所示,其包括步骤:
44.s100、获取原始mp4文件,对原始mp4文件进行解析,根据解析后的数据获取原始mp4文件的元数据,元数据为原始mp4文件的描述性信息;
45.s200、将元数据移动至原始mp4文件的文件头指定位置,生成目标mp4文件;
46.s300、当检测到客户端的在线播放指令时,将所述目标mp4文件发送至客户端,其中,目标mp4文件发送过程中,客户端在读取文件头指定位置的元数据后,继续接收目标mp4文件的视频内容,并根据接收的视频内容进行在线播放。
47.具体实施时,元数据为原始mp4文件的描述性信息,描述性信息对该mp4的数据和播放信息进行定义,所定义的对象包括但不限于媒体类型、媒体持续时间、引用的媒体轨道(track)等。由于mp4文件的元数据中包括对播放该mp4而言至关重要的信息,因此对mp4文件的播放始于对该mp4文件的元数据的解析。
48.mp4文件中的所有数据都装在box(quicktime中为atom)中,也就是说mp4文件由若干个box组成,每个box有类型和长度,可以将box理解为一个数据对象块。box中可以包含另一个box,这种box称为container box(容器box)。一个mp4文件首先会有且只有一个“ftyp”类型的box,作为mp4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(movie box),它是一种container box,子box包含了媒体的metadata信息;mp4文件的媒体数据包含在“mdat”类型的box(midia data box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时),媒体数据的结构由metadata进行描述,称为元数据(主要记录着视频的分辨率帧率码流时长的关键信息)。
49.mp4文件包括但不限于mp4音频文件和mp4视频文件。本发明实施例的mp4文件主要是指mp4视频文件。预先获取原始mp4文件,对原始mp4文件进行处解析,根据解析后的数据获取原始mp4文件的元数据,元数据一般是记录原始mp4文件的分辨率、帧率、码流、时长等描述性信息。通过写入函数将原始mp4文件中的元数据的位置移动至原始mp4文件的文件头位置,生成调整后的目标mp4文件。在检测到客户端的在线播放指令时,视频播放服务器将
目标mp4文件发送至客户端。在目标mp4文件发送至客户端的过程中,客户端对目标mp4文件进行接收,在读取到文件头指定位置的元数据后,继续接收mp4文件视频内容,可以根据元数据信息对获取视频播放服务器中mp4文件的视频内容进行边下载边播放。本发明实施例因将原始mp4文件的元数移动至mp4文件的开头后,可以减少读取元数据时数据下载量,减少读取元数据的时间,提升mp4目标的播放实时性。客户端为可以播放mp4文件的智能终端,智能终端包括但不限于手机、pad、台式机、笔记本电脑等电子设备。
50.在一些实施例中,获取原始mp4文件,对原始mp4文件进行解析,包括:
51.获取视频客户端上传的原始mp4文件,根据mp4文件的文件封装格式对原始mp4文件进行格式解析;
52.根据格式解析结果得到原始mp4文件的文件类型、元数据、视频内容数据及数据长度。
53.具体实施时,用户通过视频客户端将自己拍摄或制作的mp4上传至视频播放服务器,形成mp4文件,视频播放服务器获取原始mp4文件,根据mp4文件的文件封装格式对原始mp4文件进行格式解析,如图2所示,是本发明实施例的一个mp4文件内部数据的存储结构,ftyp box表示文件类型(.mp4,.3gp,.3g2,.mj2,.mov),描述遵从的规范的版本。moov box表示媒体的元数据记录播放时需要的重要信息。mdat box表示具体的媒体数据也就是具体的视频内容数据。对原始mp4文件进行解析后,可根据解析结果获取原始mp4文件的文件类型、元数据、视频内容数据对应的数据长度,方便用户获取元数据所在位置。
54.在一个实施例中,根据解析后的数据获取原始mp4文件的元数据,包括:
55.获取原始mp4文件中存储的数据长度,根据数据长度读取原始mp4文件指定位置的元数据。
56.具体实施时,如图2所示,获取原始mp4文件中每个box里面有字段存储这个box的数据长度,根据长度使用read等函数读取原始mp4文件指定位置的元数据。在一些其他实施例中,也可调用其他函数来读取元数据,或者是通过增加元数据标识符对元数据进行标识,通过读取元数据标识符,读取元数据。通过读取数据长度可直接进行寻址,实现快速查找元数据。
57.在一个实施例中,将元数据移动至所述原始mp4文件的文件头指定位置,生成目标mp4文件包括:
58.获取原始mp4文件的文件头指定位置的原始存储内容,将原始存储内容转移至缓存中;
59.通过写文件函数将元数据写入原始mp4文件的文件头指定位置;
60.将缓存中的原始存储内容转存至特定位置后,生成目标mp4文件。
61.具体实施时,在对原始mp4文件的文件头指定位置进行元数据写入时,需要预先文件头指定位置是否存在原始存储内容,若存在原始存储内容,则将原始存储内容取出后,存储在缓存中。在原始mp4文件的指定位置,使用写文件函数写入原始mp4文件的元数据,并将缓存中存储的原始存储内容根据需要存储在mp4文件的特定位置,生成目标mp4文件。文件头指定位置是在原始mp4文件的文件头位置中。写文件包括但不限于write函数,以c语言中write函数为例,函数名:write;头文件:《io.h》;函数原型:int write(int handle,void*buf,int len);功能:获取打开文件的指针位置;参数:int handle为要获取文件指针的文
件句柄;void*buf为要写入的内容;int len为要写入文件的长度;返回值:返回实际写入文件内容的长度。
62.在一些其他的实施例中,也可采用其他的数据写入函数,将元数据写入mp4指定位置。
63.可选的,原始mp4文件中的数据存储格式依次为文件类型、视频内容数据和元数据,通过写文件函数将元数据写入原始mp4文件的文件头指定位置,生成目标mp4文件,包括:
64.提取元数据,通过写文件函数将元数据写入原始mp4文件的视频内容数据所在的地址之前。
65.具体实施时,mp4视频文件默认是把moov box放到了mdat box后面这样就导致点播无法秒开并且无法边下载边播放,本发明实施例是将moov box放到了mdat box前面所以很好的解决了这个问题,而且保证了mp4文件能够正常播放。写文件函数可采用write等函数。
66.在一个实施例中,将元数据移动至原始mp4文件的文件头指定位置,生成目标mp4文件后,包括:
67.生成元数据调整标记,将元数据调整标记存储至目标mp4文件的开头位置。
68.具体地,通过生成元数据调整标记,可以判断目标mp4文件中的元数据是否发生了调整。
69.在一个实施例中,当检测到客户端的在线播放指令时,将所述目标mp4文件发送至客户端,包括:
70.当检测到客户端的在线播放指令时,判断目标mp4文件是否存在元数据调整标记;
71.若存在元数据调整标记,则将目标mp4文件发送至客户端,其中,目标文件中的数据存储格式依次为文件类型、元数据和视频内容;
72.若不存在元数据调整标记,则将目标mp4文件的元数据移动至文件头指定位置后,将元数据移动后的目标mp4文件发送至客户端,其中,元数据移动后的目标文件中的数据存储格式依次为文件类型、元数据和视频内容。
73.具体实施时,检测到客户端的在线播放指令,服务器可判断待播放的mp4文件是否存在元数据调整标记,若存在元数据调整标记,则视频播放服务器将目标mp4文件的元数据发送客户端,客户端获取目标mp4文件的视频内容,以边缓存边播放的模式进行播放。若不存在元数据调整标记,则视频播放服务器对目标mp4文件的元数据的位置进行调整后,视频播放服务器将调整后的目标mp4文件的元数据发送客户端,客户端获取目标mp4文件的视频内容,视频播放服务器控制客户端以边缓存边播放的模式进行播放目标mp4文件。
74.目标文件中的数据存储格式依次为文件类型、元数据和视频内容。本发明实施例可实现将在将元数据提取至文件的指定位置后,在检测到在线播放指令时,客户端对目标mp4文件的元数据先进行下载,元数据下载完成后可获取视频的分辨率帧率码流时常长的关键信息,根据关键信息控制目标mp4以边缓存边播的形式进行播放。
75.由以上方法实施例可知,本发明提供了一种视频文件的播放方法,视频播放服务器将mp4格式视频文件的元数据移动到文件的文件头位置,生成目标mp4文件,客户端在线点播目标mp4文件时,当客户端下载到文件头位置的元数据,对元数据进行解析后就开始播
放mp4视频文件,实现mp4文件内容边下载边播放,提高了mp4文件的播放效率。
76.需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
77.本发明另一实施例提供一种视频文件的播放装置,如图3所示,装置1包括:
78.数据解析模块11,用于获取原始mp4文件,对原始mp4文件进行解析,根据解析后的数据获取原始mp4文件的元数据,元数据为原始mp4文件的描述性信息;
79.数据移动模块12,用于将元数据移动至原始mp4文件的文件头指定位置,生成目标mp4文件;
80.数据发送模块13,用于当检测到客户端的在线播放指令时,将目标mp4文件发送至客户端,其中,目标mp4文件发送过程中,客户端在读取文件头指定位置的元数据后,继续接收目标mp4文件的视频内容,并根据接收的视频内容进行在线播放。
81.具体实施方式见方法实施例,此处不再赘述。
82.在一些实施例中,数据解析模块11具体用于:
83.获取视频客户端上传的原始mp4文件,根据mp4文件的文件封装格式对原始mp4文件进行格式解析;
84.根据格式解析结果得到原始mp4文件的文件类型、元数据、视频内容数据及数据长度。
85.具体实施方式见方法实施例,此处不再赘述。
86.在一个实施例中,数据解析模块11还用于:
87.获取原始mp4文件中存储的数据长度,根据数据长度读取原始mp4文件指定位置的元数据。
88.具体实施方式见方法实施例,此处不再赘述。
89.在一个实施例中,数据移动模块12具体用于:
90.获取原始mp4文件的文件头指定位置的原始存储内容,将原始存储内容转移至缓存中;
91.通过写文件函数将元数据写入原始mp4文件的文件头指定位置;
92.将缓存中的原始存储内容转存至特定位置后,生成目标mp4文件。
93.具体实施方式见方法实施例,此处不再赘述。
94.在一个实施例中,原始mp4文件中的数据存储格式依次为文件类型、视频内容数据和元数据,数据移动模块12还用于:
95.提取元数据,通过写文件函数将元数据写入原始mp4文件的视频内容数据所在的地址之前,生成目标mp4文件,目标mp4文件的数据存储格式依次为文件类型、元数据和视频内容。
96.具体实施方式见方法实施例,此处不再赘述。
97.在一个实施例中,装置还包括标记生成模块,标记生成模块用于:
98.生成元数据调整标记,将元数据调整标记存储至目标mp4文件的开头位置。
99.具体实施方式见方法实施例,此处不再赘述。
100.在一个实施例中,数据发送模块13用于,
101.当检测到客户端的在线播放指令时,判断目标mp4文件是否存在元数据调整标记;
102.若存在元数据调整标记,则将目标mp4文件发送至客户端,其中,目标文件中的数据存储格式依次为文件类型、元数据和视频内容;
103.若不存在元数据调整标记,则将目标mp4文件的元数据移动至文件头指定位置后,将元数据移动后的目标mp4文件发送至客户端,其中,元数据移动后的目标文件中的数据存储格式依次为文件类型、元数据和视频内容。
104.具体实施方式见方法实施例,此处不再赘述。
105.本发明另一实施例提供一种视频文件的播放设备,如图4所示,设备10包括:
106.一个或多个处理器110以及存储器120,图4中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图4中以通过总线连接为例。
107.处理器110用于完成,设备10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acorn risc machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、或任何其它这种配置。
108.存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的视频文件的播放方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行设备10的各种功能应用以及数据处理,即实现上述方法实施例中的视频文件的播放方法。
109.存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
110.一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的视频文件的播放方法,例如,执行以上描述的图1中的方法步骤s100至步骤s300。
111.本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s300。
112.作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明并非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddr sdram)、增强型sdram(esdram)、synchlink dram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何
其他适合类型的存储器中的一个或多个。
113.本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使处理器执行上述方法实施例的视频文件的播放方法。例如,执行以上描述的图1中的方法步骤s100至步骤s300。
114.以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
115.通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分的方法。
116.除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地还旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
117.已经在本文中在本说明书和附图中描述的内容包括能够提供视频文件的播放方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献