一种视频流传输方法、系统、装置和终端设备与流程

文档序号:31608149发布日期:2022-09-21 12:21阅读:71来源:国知局
一种视频流传输方法、系统、装置和终端设备与流程

1.本发明涉及网络技术领域,尤其涉及一种视频流传输方法、系统、装置和终端设备。


背景技术:

2.在基于摄像机的视频流媒体传输过程中,发送视频流的一端通常需要对视频流进行编码压缩后才能进行传输,而接受视频流的一端需要解码后才能进行显示。目前,现有的编码技术都是根据摄像机本身的帧率,并采用一个编码后的关键帧(即i帧)和多个编码后的前向预测帧(即p帧)完成1秒内的实时图像编码。但因为前向预测帧需要依赖前一帧的图像出现做差值还原,因此,当接收端收到的第一个关键帧出现解码异常,将导致1秒的图像全部无法正常解码和显示,而在视频编码器启动过程中,通常初始图像容易出现异常图像,从而将导致初始编码时的关键帧图像异常。


技术实现要素:

3.第一方面,本发明提供一种视频流传输系统,所述系统包括客户端和服务端,包括:
4.所述客户端用于接收显示参数和初始编码帧,对所述初始编码帧进行解码,当所述初始编码帧解码异常时,发送解码异常信息至所述服务端;
5.所述服务端还用于根据所述解码异常信息增加至少一个关键帧,对所述至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将所述至少一个关键编码帧发送至所述客户端;
6.所述客户端还用于接收所述至少一个关键编码帧,基于所述显示参数和所述至少一个关键编码帧进行解码并显示。
7.在可选的实施方式中,所述视频流传输系统还包括:
8.所述客户端还用于当所述初始编码帧解码正常时,基于所述显示参数和所述初始编码帧进行解码并显示。
9.在可选的实施方式中,所述视频流传输系统还包括:
10.所述服务端还用于接收所述客户端发送的连接请求,并根据所述连接请求与所述客户端建立连接。
11.在可选的实施方式中,当所述至少一个关键帧为n个关键帧时,所述n个关键帧为从第二个关键帧开始的连续n个关键帧,n为大于等于2的整数。
12.第二方面,本发明提供一种视频流传输方法,应用于服务端,所述方法包括:
13.获取视频流中的显示参数和初始关键帧;
14.对所述初始关键帧进行编码得到初始编码帧,发送所述显示参数和所述初始编码帧至客户端,以使所述客户端对所述初始编码帧进行解码,当所述初始编码帧解码异常时,发送解码异常信息至所述服务端;
15.根据所述解码异常信息增加至少一个关键帧,对所述至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将所述至少一个关键编码帧发送至所述客户端,以使所述客户端基于所述至少一个关键编码帧进行解码并显示。
16.第三方面,本发明提供一种视频流传输方法,应用于客户端,所述方法包括:
17.接收服务端发送的显示参数和初始编码帧,对所述初始编码帧进行解码;
18.当所述初始编码帧解码异常时,发送解码异常信息至所述服务端,以使所述服务端根据所述解码异常信息增加至少一个关键帧,并对所述至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将所述至少一个关键编码帧发送至所述客户端;
19.接收所述至少一个关键编码帧,基于所述显示参数和所述至少一个关键编码帧进行解码并显示。
20.在可选的实施方式中,还包括:
21.当所述初始编码帧解码正常时,基于所述显示参数和所述初始编码帧进行解码并显示。
22.第四方面,本发明提供一种视频流传输装置,应用于服务端,所述装置包括:
23.获取模块,用于获取视频流中的显示参数和初始关键帧;
24.发送模块,用于对所述初始关键帧进行编码得到初始编码帧,发送所述显示参数和所述初始编码帧至客户端,以使所述客户端对所述初始编码帧进行解码,当所述初始编码帧解码异常时,发送解码异常信息至所述服务端;
25.显示模块,用于根据所述解码异常信息增加至少一个关键帧,对所述至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将所述至少一个关键编码帧发送至所述客户端,以使所述客户端基于所述至少一个关键编码帧进行解码并显示。
26.第五方面,本发明提供一种终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行所述的视频流传输方法。
27.第六方面,本发明提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行所述的视频流传输方法。
28.本技术的实施例具有如下有益效果:
29.本技术实施例提供一种视频流传输系统,该视频流传输系统包括客户端和服务端,客户端用于接收显示参数和初始编码帧,对初始编码帧进行解码,当初始编码帧解码异常时,发送解码异常信息至服务端,服务端还用于根据解码异常信息增加至少一个关键帧,对至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将至少一个关键编码帧发送至客户端,客户端还用于接收至少一个关键编码帧,基于显示参数和至少一个关键编码帧进行解码并显示。本技术不仅可以避免出现初始关键帧编码异常或后续帧解码异常导致的客户端无法正常显示的问题,还可以有效地改善客户端显示异常的问题,从而降低了对摄像机初始出图的质量依赖。
附图说明
30.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
31.图1示出了本技术实施例的视频流传输系统的视频流传输的第一流程示意图;
32.图2示出了本技术实施例的视频流传输系统的视频流传输的第二流程示意图;
33.图3示出了本技术实施例的视频流传输系统的视频流传输的第三流程示意图;
34.图4示出了本技术实施例的视频流传输方法的第一流程示意图;
35.图5示出了本技术实施例的视频流传输方法的第二流程示意图;
36.图6示出了本技术实施例的视频流传输装置的结构示意图。
37.主要元件符号说明:
38.10-视频流传输系统;11-客户端;12-服务端;20-视频流传输装置;21-获取模块;22-发送模块;23-显示模块。
具体实施方式
39.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
40.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
42.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
43.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
44.实施例1
45.请参照图1,为本技术实施例的视频流传输系统10的视频流传输的流程示意图,该视频流传输系统10包括客户端11和服务端12。下面对本技术实施例的视频流传输系统10实现视频流传输的过程进行描述。
46.步骤s110:客户端接收显示参数和初始编码帧,对初始编码帧进行解码,当初始编码帧解码异常时,发送解码异常信息至服务端。
47.可以理解的是,客户端包括视频解码器,客户端将接收服务端发送的显示参数和初始编码帧,并通过视频解码器对初始编码帧进行解码处理时。当客户端对初始编码帧进行解码处理时,需要判断初始编码帧解码是否存在异常,若解码存在异常,客户端将发送解码异常信息至服务端,以避免因初始编码帧解码异常,导致客户端无法对接收的初始编码
帧进行正常显示。其中,解码异常可能表现为无法解码、解码后画面中存在大块马赛克现场以及视频解码器解码卡死等情况。视频解码器是指一个能够对数字视频进行压缩或者解压缩的程序或者设备,初始编码帧为视频的第一个关键帧经过编码后得到的。
48.步骤s120:服务端根据解码异常信息增加至少一个关键帧,对至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将至少一个关键编码帧发送至客户端。
49.可以理解的是,服务端在接收到解码异常信息后,将增加摄像机获取的视频的至少一个关键帧,并通过视频编码器对初始关键帧之后的至少一个关键帧进行编码,得到对应的至少一个关键编码帧,并将得到的至少一个关键编码帧发送至客户端。
50.步骤s130:客户端接收至少一个关键编码帧,基于显示参数和至少一个关键编码帧进行解码并显示。
51.客户通过视频解码器对至少一个关键编码帧进行解码,并基于解码后的至少一个关键编码帧和接收的显示参数对上述视频并进行显示。其中,增加的至少一个关键帧编码应为从初始关键帧之后的关键帧开始的关键帧,当增加的至少一个关键帧为n个关键帧时,n个关键帧可以为从第二个关键帧开始的连续n个关键帧,换言之,为从初始关键帧后的第一个关键帧开始的连续n个关键帧,n为大于等于2的整数。示范性地,当增加五个关键帧时,此时五个关键帧应为初始关键帧后连续的五个关键帧,即第二个关键帧、第三个关键帧、第四个关键帧、第五个关键帧和第六个关键帧。
52.如图2所示,视频流传输系统的传输方式还包括以下步骤:
53.步骤s140:客户端当初始编码帧解码正常时,基于显示参数和初始编码帧进行解码并显示。
54.可以理解的是,当客户端对服务器发送的编码帧进行解码处理,解码正常时,客户端将基于显示参数和解码后的初始编码帧对摄像机获取的视频进行显示,即基于视频对应的分辨率、帧率等显示参数对初始编码帧进行解码处理并显示。
55.在一种实施方式中,如图3所示,视频流传输系统在视频流传输过程中还包括步骤s150~s160。
56.步骤s150:服务端接收客户端发送的连接请求,并根据连接请求与客户端建立连接。
57.在本实施例中,视频流传输系统在进行视频流传输之前,将建立服务端与客户端之间的连接,换言之,客户端将发送连接请求至服务端,服务端接收连接请求。
58.可以理解的是,服务端在接收到客户端发送的连接请求后,将根据连接请求与客户端之间建立网络连接。其中,流式传输的实现有特定的实时传输协议采用rtsp(real time streaming protocol,实时流传输协议)等实时传输协议。
59.步骤s160:服务端获取视频流中的显示参数和初始关键帧,对初始关键帧进行编码得到初始编码帧,发送显示参数和初始编码帧至客户端。
60.在本实施例中,服务端用于对获取的视频进行处理,在需要对视频流进行传输时,将获取摄像机录制的视频数据的初始关键帧和相关信息,视频数据的相关信息为显示参数,显示参数包括但不限于视频的帧率和分辨率等用于视频显示的相关参数。显示参数和初始关键帧用于视频数据在客户端进行显示。其中,视频流是指视频数据的传输,例如,它能够被作为一个稳定的和连续的流通过网络处理。
61.服务端包括视频编码器,在将显示参数发送至客户端的同时或之后,将启动服务端的视频编码器,对获取的视频数据的第一个关键帧,即初始关键帧进行编码,得到初始编码帧,将初始编码帧发送至客户端,以使客户端接收在初始编码帧后,通过视频解码器对初始编码帧进行解码处理。
62.其中,视频编码器由专用音视频压缩编解码器芯片、数据和报警输入输出通道、网络接口、音视频接口(hdmi,vga,hd-sdi)、rs232串行接口控制、协议接口控制、嵌入软件等构成。视频编码器是把视频源编码压缩成网络流,通过各种传输方式实现视频远距离传输或者直播用的设备,一般为mpeg-2、mpeg-4、h.264、h.265等编码方式。
63.在本技术通过增加客户端和服务端的通信,当客户端解码异常时,将通知服务端增加对关键帧的编码,不仅可以避免出现初始关键帧编码异常或后续帧解码异常导致的客户端无法正常显示的问题,还可以有效地改善客户端显示异常的问题,从而降低了对摄像机初始出图的质量依赖。
64.请参照图4,本技术实施例提供了一种视频流传输方法,应用于服务端,示范性地,该视频流传输方法包括步骤s210~s230:
65.步骤s210:获取视频流中的显示参数和初始关键帧。
66.步骤s220:对初始关键帧进行编码得到初始编码帧,发送显示参数和初始编码帧至客户端,以使客户端对初始编码帧进行解码,当初始编码帧解码异常时,发送解码异常信息至服务端。
67.步骤s230:根据解码异常信息增加至少一个关键帧,对至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将至少一个关键编码帧发送至客户端,以使客户端基于至少一个关键编码帧进行解码并显示。
68.可以理解,本实施例的方法步骤对应于上述实施例中的视频流传输系统中服务端12执行相应功能,其中,上述视频流传输方法中关于服务端12的可选项同样适用于本实施例的方法,这里不再重复描述。
69.请参照图5,本技术实施例还提出一种视频流传输方法,应用于客户端,示范性地,该视频流传输方法包括步骤s310~s350:
70.步骤s310:接收服务端发送的显示参数和初始编码帧,对初始编码帧进行解码。
71.步骤s320:检测初始编码帧是否解码异常。
72.步骤s330:当初始编码帧解码异常时,发送解码异常信息至服务端,以使服务端根据解码异常信息增加至少一个关键帧,并对至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将至少一个关键编码帧发送至客户端。
73.步骤s340:接收至少一个关键编码帧,基于显示参数和至少一个关键编码帧进行解码并显示。
74.步骤s350:当初始编码帧解码正常时,基于显示参数和初始编码帧进行解码并显示。
75.可以理解,本实施例的方法步骤对应于上述实施例中的视频流传输系统中客户端11执行相应功能,其中,上述视频流传输方法中关于客户端11的可选项同样适用于本实施例的方法,这里不再重复描述。
76.请参照图6,基于上述实施例的方法,本技术实施例还提出一种视频流传输装置
20,应用于服务端,该视频流传输装置20包括:
77.获取模块21,用于获取视频流中的显示参数和初始关键帧。
78.发送模块22,用于对初始关键帧进行编码得到初始编码帧,发送显示参数和初始编码帧至客户端,以使客户端对初始编码帧进行解码,当初始编码帧解码异常时,发送解码异常信息至服务端。
79.显示模块23,用于根据所述解码异常信息增加至少一个关键帧,对所述至少一个关键帧进行编码后得到对应的至少一个关键编码帧,将所述至少一个关键编码帧发送至所述客户端,以使所述客户端基于所述至少一个关键编码帧进行解码并显示。
80.本实施例的视频流传输装置20用于执行上述实施例的视频流传输方法,上述实施例所涉及的实施方案以及有益效果在本实施例中同样适用,在此不再赘述。
81.本技术实施例还提供一种终端设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行上述实施例中的视频流传输方法。
82.本技术实施例还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上执行时,实施上述实施例中的视频流传输方法。
83.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
84.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
85.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
86.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1