一种用于提升倍速播放性能的视频存取方法与流程

文档序号:27212169发布日期:2021-11-03 15:08阅读:602来源:国知局
一种用于提升倍速播放性能的视频存取方法与流程

1.本发明属于流媒体应用及视频存储技术领域,具体涉及一种用于提升倍速播放性能的视频存取方法。


背景技术:

2.视频存储是安防监控领域常见的业务类型,视频最常见的应用是实时播放及回放。对于视频回放业务,倍速播放是十分常用的业务场景,多用于当某事件发生后,管理人员试图通过倍速播放快速地查找和定位其所关注的“画面”,从而锁定事件发生时间的视频段,以便进一步分析情况。
3.从技术角度,对于2倍速的视频播放,通常采取跳帧的方式实现,即:以同样的播放帧率,只播放原有图像帧序列的奇数图像帧或偶数图像帧;对于大于2倍速的回放,例如4倍速、8倍速及以上倍速,单纯跳帧的方法效果欠佳。例如,对于4倍速,以同样的播放帧率,只播放原有图像帧序列的第1图像帧,第5图像帧,第9图像帧,第13图像帧...如果原始图像帧的帧率为32帧/秒,则通常情况下,第1帧为i帧(关键帧,为完整画面帧),而2到32帧为p帧(即前向预测编码帧,简称“差别帧”,只保留本帧与前一帧相比的差别画面),由于第5图像帧和第1图像帧之间跳过3个p帧,同样的,第9图像帧和第5图像帧之间跳过3个p帧,即:相邻两个图像帧之间跳过3个p帧,跳过的p帧数量较多,导致相邻的后一图像帧与前一图像帧差别太大,因此,数据质量差,很容易引起画面模糊。
4.对于视频回放,当前方法主要为:由流媒体服务器将视频数据当作普通视频流交给存储服务器,存储服务器以数据块的方式存储视频数据;在回放时,流媒体服务器通过存储服务器取到所需时间段的视频数据,再将所需时间段的视频数据传输给终端播放器,由终端播放器进行跳帧处理,达到倍速播放的目的。
5.该技术主要存在以下问题:对流媒体服务器而言,当进行x倍速播放时,需要在单位时间内获取相当于原有数据量x倍的视频数据,流媒体服务器的处理能力,缓存数量、流媒体服务器与存储服务器之间的带宽,存储服务器的处理能力和缓存数量以及存储服务器上磁盘的io能力都要相应地扩大到x倍才能实现这一业务。因此在实际工程中,当倍速播放的速率较大(例如大于4倍)时,能够看到倍速播放的效果不佳,一是实际播放的倍速可能达不到预期倍速,再或者是为了达到预期倍速而中间跳帧过多导致画面连续性较差。
6.由此可见,当倍速播放的速率较大时,从存储服务器、流媒体服务器到终端播放器,其处理性能、缓存能力网络性能等都可能成为瓶颈,进而影响倍速播放的效果。


技术实现要素:

7.针对现有技术存在的缺陷,本发明提供一种用于提升倍速播放性能的视频存取方法,可有效解决上述问题。
8.本发明采用的技术方案如下:
9.本发明提供一种用于提升倍速播放性能的视频存取方法,包括以下步骤:
10.步骤一:视频写入过程:
11.步骤1.1:摄像机将视频流推送到流媒体服务器;其中,视频流中携带摄像机id;
12.步骤1.2:流媒体服务器对接收到的视频流进行协议解析及解封装,从视频流中去掉信令数据,得到处理后的视频流;其中,处理后的视频流为图像帧序列;
13.步骤1.3:流媒体服务器对处理后的视频流进行解码,从图像帧序列中识别出i帧,并对识别到的每个i帧写入i帧标记,由此得到解码后的图像帧序列;
14.步骤1.4:流媒体服务器以图像帧为写入单位,将解码后的图像帧序列写入到存储服务器;
15.步骤1.5:存储服务器对接收到的图像帧序列进行分析,根据i帧标记识别到每个i帧,并预建立与每个摄像机id对应的i帧索引表,将每个i帧的关键信息存入到所述i帧索引表;其中,每个i帧的关键信息包括时间戳、帧类型、帧序号、帧偏移地址和帧长度;
16.步骤1.6:存储服务器将接收到的图像帧序列写入到存储介质;
17.步骤二:视频倍速读取过程:
18.步骤2.1:播放器向流媒体服务器发起视频倍速回放请求;其中,所述视频倍速回放请求中携带摄像机id、待播放时间段和视频回放倍速x的信息;
19.步骤2.2:流媒体服务器向存储服务器发送视频数据读取请求;其中,所述视频数据读取请求中携带摄像机id、待播放时间段和视频回放倍速x的信息;
20.步骤2.3:存储服务器根据摄像机id及待播放时间段,查找与摄像机id对应的i帧索引表,根据每个i帧的时间戳,确定与待播放时间段对应的第一目标i帧序列;
21.然后,根据视频回放倍速x,从与待播放时间段对应的第一目标i帧序列中,挑选出符合视频回放倍速x的第二目标i帧序列;
22.然后,根据第二目标i帧序列中每个i帧的帧偏移地址和帧长度,从存储介质中读取到第二目标i帧序列;
23.步骤2.4:存储服务器向流媒体服务器返回获取到的第二目标i帧序列;
24.步骤2.5:流媒体服务器对接收到的第二目标i帧序列进行打包封装,得到封装后的目标i帧序列;
25.步骤2.6:流媒体服务器将封装后的目标i帧序列发送给播放器;
26.步骤2.7:播放器对接收到的封装后的目标i帧序列进行解码,并按照需要的视频回放倍速要求,倍速播放目标i帧序列。
27.优选的,步骤2.7具体为:
28.步骤2.7.1,对于帧率为m帧/秒的视频流,1秒对应的m帧中,存在1个i帧,其他m

1帧均为p帧;
29.步骤2.7.2,播放器获取到待播放时间段的第二目标i帧序列,将第二目标i帧序列表示为:第1i帧,第2i帧,...,第ni帧,其中,n为第二目标i帧序列的帧数;
30.步骤2.7.3,假设播放器需要x倍速播放第二目标i帧序列,并且,播放器的播放速度为y帧/秒;
31.则:
32.播放器在第1秒,读取第1i帧

第xi帧,对第1i帧

第xi帧进行均匀补零帧,将第1i帧

第xi帧扩充为y帧;然后,在第1秒,播放补零帧后的y帧;
33.同样的,在第2秒,读取第(x+1)i帧

第(2x)i帧,对第(x+1)i帧

第(2x)i帧进行均匀补零帧,将第(x+1)i帧

第(2x)i帧扩充为y帧;然后,在第2秒,播放补零帧后的y帧;
34.依此类推,实现以x倍速播放第二目标i帧序列。
35.本发明提供的一种用于提升倍速播放性能的视频存取方法具有以下优点:
36.1)减轻了存储服务器的io带宽、cpu要求及内存要求,降低了存储服务器与流媒体服务器间的网络带宽占用。
37.2)同时对于流媒体服务器,因为不需要对完整的视频流进行缓存、解码、定位、跳帧等处理,因此减轻了性能消耗,提升了倍速播放的响应速度,改善了用户体验。
38.3)由于最终向播放器返回的为i帧,i帧是完整画面帧,而不像p帧仅为差别画面帧,因此,对于播放器,倍速播放i帧,能够保证播放画面质量。
附图说明
39.图1为本发明提供的一种用于提升倍速播放性能的视频存取方法的流程示意图;
40.图2为本发明建立的i帧索引表的示意图;
41.图3为传统视频倍速播放过程与本发明倍速播放过程的对比图。
具体实施方式
42.为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
43.本发明属于流媒体应用及视频存储领域,专门针对视频存取的方法改进设计,以提升视频倍速播放时的性能。
44.本发明提出一种用于提升倍速播放性能的视频存取方法,视频流在向存储服务器写入时,存储服务器建立i帧索引表,在倍速回放时,存储服务器仅返回满足要求的i帧,而不是返回全部的码流,以此降低包括存储服务器、流媒体服务器以及播放器在内的整个系统的计算、缓存及网络负荷,进而提升倍速回放业务的用户体验。
45.本发明的主要原理是:流媒体服务器在向存储服务器提交视频流时,进行简单的解码工作,区分每个图像帧的类型,识别出视频流中的所有i帧,存储服务器为视频流中的所有i帧建立i帧索引表。在播放器需要进行倍速播放时,播放器通过流媒体服务器向存储服务器发送倍速播放请求,存储服务器根据视频回放倍速要求,通过简单计算,仅从磁盘中查找到所需时间段并且满足视频回放倍速要求的i帧,并向流媒体服务器返回对应的i帧,流媒体服务器再将对应的i帧返回给播放器进行播放。可见,流媒体服务器和存储服务器之间,以及流媒体服务器和播放器之间,并不是传输完整的视频流,而仅仅是满足要求的i帧。因此具有以下优点:1)减轻了存储服务器的io带宽、cpu要求及内存要求,降低了存储服务器与流媒体服务器间的网络带宽占用。2)同时对于流媒体服务器,因为不需要对完整的视频流进行缓存、解码、定位、跳帧等处理,因此减轻了性能消耗,提升了倍速播放的响应速度,改善了用户体验。3)由于最终向播放器返回的为i帧,i帧是完整画面帧,而不像p帧仅为差别画面帧,因此,对于播放器,倍速播放i帧,能够保证播放画面质量。
46.参考图1,本发明提供一种用于提升倍速播放性能的视频存取方法,包括以下步
骤:
47.步骤一:视频写入过程:
48.步骤1.1:摄像机将视频流推送到流媒体服务器;其中,视频流中携带摄像机id;
49.步骤1.2:流媒体服务器对接收到的视频流进行协议解析及解封装,从视频流中去掉信令数据,得到处理后的视频流;其中,处理后的视频流为图像帧序列;
50.具体的,流媒体服务器对接收到的视频流进行协议解析及解封装,目的是从原始的流媒体协议数据中去掉信令数据,只保留音视频数据,并进行音视频数据的分离。
51.步骤1.3:流媒体服务器对处理后的视频流进行解码,从图像帧序列中识别出i帧,并对识别到的每个i帧写入i帧标记,由此得到解码后的图像帧序列;
52.本步骤中,流媒体服务器对处理后的视频流,只需要进行简单解码,实际应用中,除识别出i帧,还可进一步进行视频头部信息的识别,识别出序列参数集(sps)和图像参数集(pps)。该过程并不进行实际的视频解码工作,因此其开销极小。
53.步骤1.4:流媒体服务器以图像帧为写入单位,将解码后的图像帧序列写入到存储服务器;
54.具体的,传统方案中,视频流写入是以数据块为单位(例如每2m字节为一块)进行写入。而本发明中,以图像帧为写入单位,进行视频流写入。
55.步骤1.5:存储服务器对接收到的图像帧序列进行分析,根据i帧标记识别到每个i帧,并预建立与每个摄像机id对应的i帧索引表,将每个i帧的关键信息存入到所述i帧索引表;其中,每个i帧的关键信息包括时间戳、帧类型、帧序号、帧偏移地址和帧长度;
56.具体的,如果步骤1.3中识别出序列参数集(sps)和图像参数集(pps),则本步骤,存储服务器对接收到的图像帧序列进行分析时,可包括获取并记录序列参数集(sps)和图像参数集(pps)。sps和pps包括视频编码用到的一些关键参数,包括编码视频序列、码流的档次、参考帧的最大数目、图像的宽度和长度、图像的分辨率等,这些信息用于视频解码,通常是固定不变的,这些信息可以以全局结构统一记录。
57.而i帧索引表,采用(时间戳,帧类型,帧序号,帧偏移地址,帧长度)的五元组,其中(时间戳,帧类型,帧序号)作为联合关键字是唯一的。时间戳是以秒为单位,帧序号主要用于对i帧编号,以处理同一秒内出现多个i帧的情况。i帧索引表的详细结构说明参见图2。
58.步骤1.6:存储服务器将接收到的图像帧序列写入到磁盘等存储介质;
59.具体的,存储服务器进行数据落盘,落盘的策略可自定义,以便于对摄像机进行按时间检索为宜,例如为每个摄像机在每个小时建立一个视频文件。
60.步骤二:视频倍速读取过程:
61.步骤2.1:播放器向流媒体服务器发起视频倍速回放请求;其中,所述视频倍速回放请求中携带摄像机id、待播放时间段和视频回放倍速x的信息;
62.步骤2.2:流媒体服务器向存储服务器发送视频数据读取请求;其中,所述视频数据读取请求中携带摄像机id、待播放时间段和视频回放倍速x的信息;
63.步骤2.3:存储服务器根据摄像机id及待播放时间段,查找与摄像机id对应的i帧索引表,根据每个i帧的时间戳,确定与待播放时间段对应的第一目标i帧序列;
64.然后,根据视频回放倍速x,从与待播放时间段对应的第一目标i帧序列中,挑选出符合视频回放倍速x的第二目标i帧序列;
65.然后,根据第二目标i帧序列中每个i帧的帧偏移地址和帧长度,从存储介质中读取到第二目标i帧序列;根据i帧索引表,确定i帧偏移的过程参见图3。
66.假如对于原视频流,帧率为32帧/秒,每秒只包括一个i帧;获取的与待播放时间段对应的第一目标i帧序列,共包括100个i帧,编号分别为:第1i帧,第2i帧,...,第100i帧;
67.如果视频回放倍速x为1倍速,则需要将100个i帧均获取,并传输给播放器。如果视频回放倍速x为2倍速,4倍速,直到32倍速,仍然需要将100个i帧均获取,并传输给播放器。而如果为非常高倍速,超过32倍速,例如为64倍速,而需要对i帧进行跳帧处理,仅从100个i帧中,挑选出奇数i帧,再传输给播放器。
68.步骤2.4:存储服务器向流媒体服务器返回获取到的第二目标i帧序列;
69.步骤2.5:流媒体服务器对接收到的第二目标i帧序列进行打包封装,在媒体数据中添加信令信息以利于其在信道上传输,从而得到封装后的目标i帧序列;
70.步骤2.6:流媒体服务器将封装后的目标i帧序列发送给播放器;
71.不同于传统处理过程的是,本发明本步骤返回的是满足倍速播放条件的i帧,而非完整的视频流。
72.步骤2.7:播放器对接收到的封装后的目标i帧序列进行解码,并按照需要的视频回放倍速要求,倍速播放目标i帧序列。
73.步骤2.7具体为:
74.步骤2.7.1,对于帧率为m帧/秒的视频流,1秒对应的m帧中,存在1个i帧,其他m

1帧均为p帧;
75.步骤2.7.2,播放器获取到待播放时间段的第二目标i帧序列,将第二目标i帧序列表示为:第1i帧,第2i帧,...,第ni帧,其中,n为第二目标i帧序列的帧数;
76.步骤2.7.3,假设播放器需要x倍速播放第二目标i帧序列,并且,播放器的播放速度为y帧/秒;
77.则:
78.播放器在第1秒,读取第1i帧

第xi帧,对第1i帧

第xi帧进行均匀补零帧,将第1i帧

第xi帧扩充为y帧;然后,在第1秒,播放补零帧后的y帧;
79.同样的,在第2秒,读取第(x+1)i帧

第(2x)i帧,对第(x+1)i帧

第(2x)i帧进行均匀补零帧,将第(x+1)i帧

第(2x)i帧扩充为y帧;然后,在第2秒,播放补零帧后的y帧;
80.依此类推,实现以x倍速播放第二目标i帧序列。
81.参考图2,若对于帧率为30帧/秒的视频流进行x倍速(x=4,8,16,

,128)播放场景,与传统处理方式相比,本发明具有以下优点:
82.1)存储服务器需要访问的磁盘数据大幅减少,数据访问量降低到全部数据量的1/30到1/x(x>30时,需要跳过i帧);
83.2)从存储服务器向流媒体服务器返回的数据量降低到1/30到1/x,即网络带宽占用降低至传统处理方式的1/30到1/x(x>30);
84.3)流媒体服务器需要进行视频打包封装处理的数据量降低至传统方式的1/30到1/x(x>30);
85.4)流媒体服务器返回给播放器的数据量降低到1/30到1/x,即网络带宽消耗降低到传统处理方式的1/30到1/x(x>30);
86.5)播放器需要处理的数据量降低至1/30到1/x(x>30),播放器能够有效地进行高倍速播放;
87.6)存储服务器、流媒体服务器以及播放器在整个处理过程中的内存需求(数据缓存的空间)降低至1/30到1/x(x>30);
88.简言之,本发明提供的用于倍速回放的视频存取方法,较之传统的视频回放方法,将整个系统的cpu运算、内存占用、网络使用、io访问的带宽降低至1/30到1/x(x>30),满足高倍速播放的需求,有效降低系统开销,提升用户体验。
89.与此同时,本发明所付出的额外代价有:
90.1)在视频写入环节进行简单解码,以标记i帧;
91.2)在视频写入环节为i帧建立i帧索引;
92.3)存储服务器在视频读取环节进行跳帧处理;
93.以上工作引入少量的cpu运算开销,而比起上述节省的大量开销而言,此部分代价可以忽略,该方法整体而言对整个系统的开销起到了削减作用,显著提升系统性能及业务体验。
94.下面对本发明带来的优点,进行详细分析介绍:
95.对于帧率为30帧/秒的视频流,设定一秒一个i帧,摄像机采用onvif(open network video interface forum,开放型网络视频接口论坛)协议进行管理和控制,视频采用h.264编码,摄像机与流媒体服务器之间采用rfsp(real time streaming protocol,实时流协议)及rtp(real

time transport protocol,实时传输协议)协议进行会话建立及媒体传输。
96.流媒体服务器与存储服务器采用通用的块存储接口/对象存储接口/文件存储接口或者自定义接口,播放器采用常见开源播放器如mpv播放器或vlc media player等,这样基本上构建了一套完整的流媒体处理系统。
97.传统处理方法主要有以下两种:
98.(一)简单的加速播放方式
99.传统处理方法,例如,假设原始视频流为30帧/秒,视频播放倍速方式为:采用简单的加速播放方式,即:假如视频播放倍速为2倍速,则采用对原始视频流以60帧/秒的速度进行播放。由于采用原始视频流全帧播放,因此,当视频播放倍速达到4倍以上时,倍速播放的效果开始变差,主要表现为画面实际倍速远低于预期倍速,例如播放8倍速,根据画面上的时间戳能看到实际效果最多达到4倍速,当请求更高播放倍速时,实际的播放倍速也停留在4倍速或者稍高的速率,不会再升高。原因为:由于采用原始视频流全帧播放,播放器以及整个流媒体系统无法简单地将性能提升至期望的播放速率倍数(如4倍速播放,整个系统无法将处理性能直接提升到正常播放性能的4倍),通常最大的瓶颈在于播放器一侧(因为其主要运行在普通工作机上,性能一般),所以对于高倍速播放,传统处理方式播放器“无能为力”。
100.(二)跳帧加速播放方式
101.传统处理方法,例如,假设原始视频流为30帧/秒,视频播放倍速方式为2倍速,则播放器以30帧/秒的速度,只播放原始视频流中的奇数帧,由此达到2倍速播放效果。
102.此种播放速率虽然达到了预期倍速,但是,当播放倍速较高时,由于跳过的帧数量
多,并且,跳过的p帧与之前的帧之间差异较大,导致画面效果差,存在画面模糊或花屏的情况。
103.使用本发明提供的视频存取方法,对存储服务器存储接口及流媒体服务器的相应部分进行改造,此时带来的改变是:
104.1)对于倍速播放,无论播放倍速的倍速值,整个系统处理是流畅的,没有因为倍速的增高而导致画面变慢,实际播放倍速完全符合预期倍速,且播放倍速越高,对比效果越明显
105.2)倍速播放画面能够保持连续而清晰,不出现画面模糊或花屏等情况
106.此外本发明兼容正常的视频回放过程,因此对于正常速率的视频回放本例也能正常处理。
107.本发明提出的用于提升倍速播放性能的视频存取方法,其主要特征在于:
108.1)本方法拉通了视频数据处理的全流程,对视频数据存储策略进行优化,从存储的角度而非简单的流媒体处理的角度出发,从而从本质上解决倍速播放性能提升问题。
109.2)流媒体存储接口由块存储方式改为帧存储方式,存储服务器为i帧建立索引。
110.3)存储服务器内部进行跳帧处理,从信息源头上精准提取了倍速回放需要用到的i帧,进而减轻后续环节的处理负担
111.4)流媒体服务器仅需要在视频写入时进行帧识别和写入标记。
112.5)本发明对播放器等独立组件无特殊要求。
113.6)本方法对于任意倍速的视频回放处理的综合时间复杂度是一致的,因此,并不因为播放倍速的提高而引起性能降低,这一点是其他优化方法所不具备的。
114.本发明提出的用于提升倍速播放性能的视频存取方法,其核心设计思路,关键流程、算法及数据结构,以及由此内涵衍生出的方案及应用都在本发明专利的保护范围内。
115.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1