本发明涉及存储,特别是涉及一种视频文件的读取方法、装置、视频文件的写入方法、装置、电子设备及计算机可读存储介质。
背景技术:
1、随着大数据和云的兴起,数据存储作为一切其他数据行为的基础扮演着越来越重要的角色。分布式文件存储系统正被应用于各行各业中,其形态以集群形式提供可靠稳定的文件系统服务。
2、在视频监控和广电媒资领域中,要求文件是恒定码流的形式进行读写,任何由于存储性能上的不足所导致的卡顿都会引起丢帧,进而发生马赛克的现象,较为严重地影响视频和媒体质量。当在客户端节点上进行恒定码流读写时,在很多情况下会使用不同码率,比如1mb、2mb、8mb、120mb等,它们分别对应于标清、高清、超清等视频质量。针对这些常用码率,在作缓存处理时,传统的存储一般都会申请固定大小的内存空间,所有的读写数据混合在一块进行处理,会造成各路文件之间带宽相互影响,很容易出现丢帧问题。
3、综上所述,如何有效地解决视频文件读写时申请固定大小的内存空间,所有的读写数据混合在一块进行处理,造成各路文件之间带宽相互影响,易出现丢帧等问题,是目前本领域技术人员急需解决的问题。
技术实现思路
1、本发明的目的是提供一种视频文件的读取方法,该方法避免各路视频文件之间的相互影响,确保码流的稳定,较大地降低了丢帧概率;本发明的另一目的是提供一种视频文件的读取装置、视频文件的写入方法、装置、电子设备及计算机可读存储介质。
2、为解决上述技术问题,本发明提供如下技术方案:
3、一种视频文件的读取方法,包括:
4、当检测到视频文件读取操作时,获取当前路视频文件的待读取位置;
5、获取预记录的对所述当前路视频文件最近一次读取操作对应的最近邻读取位置和第一文件偏移量;
6、当根据所述待读取位置、所述最近邻读取位置以及所述第一文件偏移量确定为顺序读取时,计算所述当前路视频文件本次读取的码率;
7、分别获取当前处于读取状态的其他路视频文件的码率;
8、计算各路视频文件的码率之间的比例关系,根据所述比例关系为各路视频文件分配对应的缓存空间;
9、分别利用各路视频文件分配到的缓存空间对各路视频文件进行读取操作。
10、在本发明的一种具体实施方式中,计算所述当前路视频文件本次读取的码率,包括:
11、获取本次读取时长及本次读取偏移量;
12、判断是否所述本次读取时长超出第一预设时长和/或所述本次读取偏移量超出第一预设值;
13、若是,则获取预记录的对所述当前路视频文件最近一次读取操作对应的第一时间戳,并计算当前距离所述最近邻读取位置的总读取量和距离所述第一时间戳的第一时间跨度;
14、根据所述总读取量和所述第一时间跨度计算所述当前路视频文件本次读取的码率。
15、在本发明的一种具体实施方式中,包括判断所述当前路视频文件本次读取是否为顺序读的判断过程,所述判断所述当前路视频文件本次读取是否为顺序读的判断过程,包括:
16、判断所述待读取位置是否为所述最近邻读取位置与所述第一文件偏移量之和;
17、若是,则确定本次读取为顺序读取。
18、在本发明的一种具体实施方式中,还包括:
19、当确定本次读取为非顺序读取时,对所述最近邻读取位置、所述第一文件偏移量以及所述第一时间戳进行更新操作,并重复执行所述判断所述待读取位置是否为所述最近邻读取位置与所述第一文件偏移量之和的步骤。
20、在本发明的一种具体实施方式中,还包括:
21、记录所述当前路视频文件本次读取的开始时间戳到确定为顺序读取的时间戳之间的耗时。
22、在本发明的一种具体实施方式中,还包括:
23、当检测到当前处于读取状态的各路视频文件中存在非恒定码流的视频文件时,对分配给非恒定码流的视频文件的缓存空间进行回收,并为所述非恒定码流的视频文件分配预设大小的缓存空间。
24、一种视频文件的写入方法,包括:
25、当检测到视频文件写入操作时,获取当前路视频文件的待写入位置;
26、获取预记录的对所述当前路视频文件最近一次写入操作对应的最近邻写入位置和第二文件偏移量;
27、当根据所述待写入位置、所述最近邻写入位置以及所述第二文件偏移量确定为顺序写入时,计算所述当前路视频文件本次写入的初始码率;
28、分别获取当前处于写入状态的其他路视频文件的码率;
29、计算各路视频文件的码率之间的比例关系,根据所述比例关系为各路视频文件分配对应的缓存空间;
30、分别利用各路视频文件分配到的缓存空间对各路视频文件进行写入操作。
31、在本发明的一种具体实施方式中,在计算所述当前路视频文件本次写入的初始码率之后,计算各路视频文件的码率之间的比例关系之前,还包括:
32、获取所述当前路视频文件对应的缓存配额;
33、判断所述当前路视频文件本次写入的初始码率是否超出所述缓存配额;
34、若是,则将所述缓存配额确定为所述当前路视频文件本次写入的目标码率。
35、在本发明的一种具体实施方式中,在将所述缓存配额确定为所述当前路视频文件本次写入的目标码率之后,还包括:
36、根据所述目标码率和所述初始码率计算所述当前路视频文件的刷新频度;
37、分别利用各路视频文件分配到的缓存空间对各路视频文件进行写入操作,包括:
38、获取除所述当前路视频文件之外的其他路视频文件的刷新频度;
39、根据各路视频文件分别对应的刷新频度,利用各路视频文件分配到的缓存空间对各路视频文件进行写入操作。
40、在本发明的一种具体实施方式中,计算所述当前路视频文件本次写入的初始码率,包括:
41、获取本次写入时长及本次写入偏移量;
42、判断是否所述本次写入时长超出第二预设时长和/或所述本次写入偏移量超出第二预设值;
43、若是,则获取预记录的对所述当前路视频文件最近一次写入操作对应的第二时间戳,并计算当前距离所述最近邻写入位置的总写入量和距离所述第二时间戳的第二时间跨度;
44、根据所述总写入量和所述第二时间跨度计算所述当前路视频文件本次写入的初始码率。
45、在本发明的一种具体实施方式中,包括判断所述当前路视频文件本次写入是否为顺序写的判断过程,所述判断所述当前路视频文件本次写入是否为顺序写的判断过程,包括:
46、判断所述待写入位置是否为所述最近邻写入位置与所述第二文件偏移量之和;
47、若是,则确定本次写入为顺序写入。
48、在本发明的一种具体实施方式中,还包括:
49、当确定本次写入为非顺序写入时,对所述最近邻写入位置、所述第二文件偏移量以及所述第二时间戳进行更新操作,并重复执行所述判断所述待写入位置是否为所述最近邻写入位置与所述第二文件偏移量之和的步骤。
50、一种视频文件的读取装置,包括:
51、待读取位置获取模块,用于当检测到视频文件读取操作时,获取当前路视频文件的待读取位置;
52、第一位置及偏移量获取模块,用于获取预记录的对所述当前路视频文件最近一次读取操作对应的最近邻读取位置和第一文件偏移量;
53、码率计算模块,用于当根据所述待读取位置、所述最近邻读取位置以及所述第一文件偏移量确定为顺序读取时,计算所述当前路视频文件本次读取的码率;
54、读取码率获取模块,用于分别获取当前处于读取状态的其他路视频文件的码率;
55、读取缓存空间分配模块,用于计算各路视频文件的码率之间的比例关系,根据所述比例关系为各路视频文件分配对应的缓存空间;
56、文件读取模块,用于分别利用各路视频文件分配到的缓存空间对各路视频文件进行读取操作。
57、一种视频文件的写入装置,包括:
58、待写入位置获取模块,用于当检测到视频文件写入操作时,获取当前路视频文件的待写入位置;
59、第二位置及偏移量获取模块,用于获取预记录的对所述当前路视频文件最近一次写入操作对应的最近邻写入位置和第二文件偏移量;
60、初始码率计算模块,用于当根据所述待写入位置、所述最近邻写入位置以及所述第二文件偏移量确定为顺序写入时,计算所述当前路视频文件本次写入的初始码率;
61、写入码率获取模块,用于分别获取当前处于写入状态的其他路视频文件的码率;
62、写入缓存空间分配模块,用于计算各路视频文件的码率之间的比例关系,根据所述比例关系为各路视频文件分配对应的缓存空间;
63、文件写入模块,用于分别利用各路视频文件分配到的缓存空间对各路视频文件进行写入操作。
64、一种电子设备,包括:
65、存储器,用于存储计算机程序;
66、处理器,用于执行所述计算机程序时实现如前所述视频文件的读取方法或视频文件的写入方法的步骤。
67、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述视频文件的读取方法或视频文件的写入方法的步骤。
68、本发明所提供的视频文件的读取方法,当检测到视频文件读取操作时,获取当前路视频文件的待读取位置;获取预记录的对当前路视频文件最近一次读取操作对应的最近邻读取位置和第一文件偏移量;当根据待读取位置、最近邻读取位置以及第一文件偏移量确定为顺序读取时,计算当前路视频文件本次读取的码率;分别获取当前处于读取状态的其他路视频文件的码率;计算各路视频文件的码率之间的比例关系,根据比例关系为各路视频文件分配对应的缓存空间;分别利用各路视频文件分配到的缓存空间对各路视频文件进行读取操作。
69、由上述技术方案可知,通过当检测到视频文件读取操作,并确定当前路视频文件为顺序读时,计算当前路视频文件本次读取的码率,并获取其他各路视频文件分别对应的码率,根据各路视频文件码率之间的比例,对缓存空间进行合理分配,避免各路视频文件之间的相互影响,确保码流的稳定,较大地降低了丢帧概率。
70、相应的,本发明还提供了与上述视频文件的读取方法相对应的视频文件的读取装置、视频文件的写入方法、装置、电子设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。