视频数据编码方法、装置、设备及存储介质与流程

文档序号:27316662发布日期:2021-11-10 00:00阅读:82来源:国知局
视频数据编码方法、装置、设备及存储介质与流程

1.本发明涉及网络直播技术领域,尤其涉及一种视频数据编码方法、装置、设备及存储介质。


背景技术:

2.当前直播软件的传统方案是由主播设备推送h.264编码格式或h.265编码格式的单路视频数据,由客户端拉取对应编码格式的视频进行播放,如果客户端不支持某个编码格式,则需要服务端进行转码服务,但是,服务端进行转码需要耗费大量的服务器,造成成本压力,而且通过这种方案也不能有效利用主播设备的设备性能。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提出一种视频数据编码方法、装置、设备及存储介质,旨在解决如何有效利用主播设备的设备性能,节省服务端转码的费用。
5.为实现上述目的,本发明提供一种视频数据编码方法,所述视频数据编码方法包括以下步骤:
6.检测设备性能和当前网络状态;
7.根据所述设备性能和所述当前网络状态确定对应的目标编码策略;
8.在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频;
9.将所述多路编码视频推送至视频接收设备。
10.可选地,所述根据所述设备性能和所述当前网络状态确定对应的目标编码策略,具体包括:
11.根据所述设备性能判断是否支持预设编码格式;
12.若支持所述预设编码格式,则获取主播账号信息,并根据所述主播账号信息确定主播等级;
13.根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略。
14.可选地,所述根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略,具体包括:
15.判断所述主播等级是否大于预设等级;
16.若所述主播等级大于所述预设等级,则判断所述设备性能是否超过预设性能;
17.若所述设备性能超过所述预设性能,则判断所述当前网络状态是否为移动网络;
18.若所述当前网络状态不为移动网络,则从预设编码策略中选取多路视频编码策略作为目标编码策略。
19.可选地,所述判断所述主播等级是否大于预设等级之后,还包括:
20.若所述主播等级小于所述预设等级,则获取当前观看人数;
21.判断所述当前观看人数是否大于预设人数;
22.若所述当前观看人数大于所述预设人数,则执行所述判断所述设备性能是否超过预设性能的步骤。
23.可选地,所述预设编码格式为h.265编码格式。
24.可选地,所述在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频,具体包括:
25.在所述目标编码策略为多路编码策略时,确定与所述多路编码策略对应的目标编码格式;
26.根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频。
27.可选地,所述目标编码格式包括第一编码格式和第二编码格式;
28.所述根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频,具体包括:
29.根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频;
30.根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频;
31.将所述第一编码视频和所述第二编码视频作为多路编码视频。
32.可选地,所述根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频,具体包括:
33.查找与所述第一编码格式对应的第一码率信息和第一帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;
34.根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据;
35.对所述第一音视频流数据进行封装处理,获得第一编码视频。
36.可选地,所述根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据,具体包括:
37.查找与所述第一编码格式对应的第一编码器;
38.将所述第一码率信息、第一帧率信息、音频流数据和视频流数据发送至所述第一编码器,以使所述第一编码器生成第一音视频流数据,并反馈所述第一音视频流数据;
39.接收所述第一编码器反馈的所述第一音视频流数据。
40.可选地,所述根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频,具体包括:
41.查找与所述第二编码格式对应的第二码率信息和第二帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;
42.根据所述第二码率信息、第二帧率信息、音频流数据和视频流数据生成第二音视频流数据;
43.对所述第二音视频流数据进行封装处理,获得第二编码视频。
44.可选地,所述第一编码格式为h.265编码格式,所述第二编码格式为h.264编码格式。
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.所述单路编码模块,还用于根据所述单路编码格式对待编码视频数据进行编码,获得单路编码视频;
71.所述单路编码模块,还用于将所述单路编码视频推送至视频接收设备。
72.此外,为实现上述目的,本发明还提出一种视频数据编码设备,所述视频数据编码设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频数据编码程序,所述视频数据编码程序配置有实现如上所述的视频数据编码方法的步骤。
73.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有视频数据编码程序,所述视频数据编码程序被处理器执行时实现如上文所述的视频数据编码方法的步骤。
74.本发明提出的视频数据编码方法,通过检测设备性能和当前网络状态;根据所述设备性能和所述当前网络状态确定对应的目标编码策略;在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频;将所述多路编码视频推送至视频接收设备。从而在设备性能和当前网络状态符合条件的情况下,将待编码视频数据按照不同的编码格式编码为多路编码视频,并推送至视频接收设备,由视频接收设备选择其中一种编码视频进行播放,有效地利用了主播设备的设备性能,节省了服务端转码的费用。
附图说明
75.图1是本发明实施例方案涉及的硬件运行环境的视频数据编码设备结构示意图;
76.图2为本发明视频数据编码方法第一实施例的流程示意图;
77.图3为本发明视频数据编码方法第二实施例的流程示意图;
78.图4为本发明视频数据编码方法第二实施例的逻辑判断图;
79.图5为本发明视频数据编码方法第三实施例的流程示意图;
80.图6为本发明视频数据编码装置第一实施例的功能模块示意图。
81.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
82.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
83.参照图1,图1为本发明实施例方案涉及的硬件运行环境的视频数据编码设备结构示意图。
84.如图1所示,该视频数据编码设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005
可以是高速随机存取存储器(random access memory,ram)存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
85.本领域技术人员可以理解,图1中示出的设备结构并不构成对视频数据编码设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
86.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及视频数据编码程序。
87.在图1所示的视频数据编码设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户设备,与所述用户设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储的视频数据编码程序,并执行本发明实施例提供的视频数据编码方法。
88.基于上述硬件结构,提出本发明视频数据编码方法实施例。
89.参照图2,图2为本发明视频数据编码方法第一实施例的流程示意图。
90.在第一实施例中,所述视频数据编码方法包括以下步骤:
91.步骤s10,检测设备性能和当前网络状态。
92.需要说明的是,本实施例的执行主体可为视频数据编码设备,还可为其他可实现相同或相似功能的设备,本实施例对此不作限制,所述视频数据编码设备可为主播设备,例如手机、平板、电脑等可用于直播的终端设备,还可为其他设备,本实施例对此不作限制。
93.应当理解的是,主播设备检测设备性能的方式可为获取设备信息,根据设备信息确定设备性能,还可为其他方式,本实施例对此不作限制。
94.应当理解的是,当前网络状态包含移动网络、无线网络和有线网络等状态,由于主播在进行直播的过程中,显然是需要连接网络的,因此,在本实施例中不考虑无网络连接的状态。
95.可以理解的是,在主播使用的直播设备为手机、平板等移动终端设备时,移动终端的当前网络状态可为无线网络或移动网络;在主播使用的直播设备为电脑时,电脑的当前网络状态可为无线网络或有线网络。
96.需要说明的是,由于直播是一个持续的过程,而在直播的过程中当前网络状态可能会发生变化,因此该检测过程也是一个持续的检测过程,可为按照预设周期进行周期性检测,也可为定时检测,从而根据当前的直播设备的设备状态确定合适的目标编码策略。
97.步骤s20,根据所述设备性能和所述当前网络状态确定对应的目标编码策略。
98.需要说明的是,根据设备性能和当前网络状态可确定对应的目标编码策略,目标编码策略包括多路编码策略和单路编码策略,多路编码策略为将待编码视频编码成不同编码格式的视频,而单路编码策略为将待编码视频编码成单一编码格式的视频,具体为,多路编码策略可将待编码视频编码成h.265编码格式和h.264编码格式的视频,单路编码策略为将待编码视频编码成h.265编码格式或h.264编码格式的视频。
99.应当理解的是,单路编码策略包括第一单路编码策略和第二单路编码策略,第一单路编码策略对应h.265编码格式,第二单路编码策略对应h.264编码格式。
100.步骤s30,在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频。
101.应当理解的是,在目标编码策略为多路编码策略时,对待编码视频数据按照h.265编码格式和h.264编码格式进行编码,从而获得这两种编码格式的编码视频,根据这两种编码格式的编码视频组成多路编码视频。
102.进一步地,所述步骤s20之后,还包括:
103.在所述目标编码策略为单路编码策略时,查找与所述单路编码策略对应的单路编码格式;根据所述单路编码格式对待编码视频数据进行编码,获得单路编码视频;将单路编码视频推送至视频接收设备。
104.需要说明的是,目标编码策略除了可为多路编码策略外,还可为单路编码策略,且只有在设备性能和当前网络状态无法满足多路编码策略时,才会采用单路编码策略进行视频编码,即优先选用多路编码策略,在无法使用多路编码策略时,才采用单路编码策略。
105.应当理解的是,单路编码策略还分为第一单路编码策略和第二单路编码策略,其中,第一单路编码策略对应的编码格式为h.265编码格式,第二单路编码策略对应的编码格式为h.264编码格式。
106.应当理解的是,在目标编码策略为第一单路编码格式时,根据h.265编码格式对待编码视频数据进行编码,获得单路编码视频;在目标编码策略为第二单路编码格式时,根据h.264编码格式对待编码视频数据进行编码,获得单路编码视频。
107.可以理解的是,由于在单路编码策略的情况下,只会根据一种编码格式对待编码视频数据进行编码,生成的单路编码视频是单一格式的编码视频,因此,将单路编码视频推送至视频接收设备时,视频接收设备无法进行选择,只能接收该编码格式的单路编码视频,本实施例中的视频接收设备为客户端,用户通过视频接收设备来观看直播,在这种情况下,用户只能观看到单路编码视频,如果用户想要观看其他编码格式的视频,需要通过服务器对单路编码视频进行转码,从而得到其他编码格式的视频供用户选择。
108.在具体实现中,例如,在目标编码策略为第一单路编码策略时,根据h.265编码格式对待编码视频数据进行编码,获得h.265编码格式的单路编码视频,将该视频推送至视频接收设备进行播放,而如果视频接收设备不支持播放h.265编码格式的视频,或者用户不想观看h.265编码格式的视频时,需要由服务器将单路编码视频转码为h.264编码格式的视频,再推送至视频接收设备进行播放。
109.步骤s40,将所述多路编码视频推送至视频接收设备。
110.需要说明的是,将不同编码格式的多路编码视频推送至视频接收设备,视频接收设备可从多路编码视频中选择一种编码格式的编码视频进行播放,例如,多路编码视频包括h.265编码格式的编码视频和h.264编码格式的编码视频,视频接收设备可从中选取h.265编码格式的编码视频进行播放,也可以从中选取h.264编码格式的编码视频进行播放,增加了用户观看直播的选择性,进而提升了用户观看直播的舒适性。
111.进一步地,所述步骤s40,包括:
112.对所述多路编码视频进行打包,获得多路编码视频包;将所述多路编码视频包上传至服务器,以使视频接收设备根据所述服务器中的多路编码视频包选择对应编码格式的编码视频进行下载。
113.可以理解的是,多路编码视频中包含两种编码格式的编码视频,将多路编码视频打包为多路编码视频包,并将多路编码视频包上传至服务器,在用户通过视频接收设备观
看直播时,可以选择观看h.265编码格式的编码视频或h.264编码格式的编码视频,视频接收设备可从多路编码视频包中选取与用户需求对应的编码格式的编码视频进行下载并播放,从而可以在不通过服务器进行转码的情况下,满足用户的观看需求。
114.本实施例中通过检测设备性能和当前网络状态;根据所述设备性能和所述当前网络状态确定对应的目标编码策略;在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频;将所述多路编码视频推送至视频接收设备。从而在设备性能和当前网络状态符合条件的情况下,将待编码视频数据按照不同的编码格式编码为多路编码视频,并推送至视频接收设备,由视频接收设备选择其中一种编码视频进行播放,有效地利用了主播设备的设备性能,节省了服务端转码的费用。
115.在一实施例中,如图3所示,基于第一实施例提出本发明视频数据编码方法第二实施例,所述待编码视频数据为主播视频数据,所述步骤s20,包括:
116.步骤s201,根据所述设备性能判断是否支持预设编码格式。
117.需要说明的是,待编码视频数据为主播视频数据,主播视频数据可为屏幕界面视频数据和/或摄像视频数据,例如,在主播设备为手机时,主播视频数据可为手机屏幕界面数据,还可为前摄像头的摄像视频数据,还可为后摄像头的摄像视频数据,还可为其他视频数据,本实施例对此不作限制。
118.需要说明的是,预设编码格式为h.265编码格式,因为本实施例中的多路编码策略是根据h.265编码格式和h.264编码格式对待编码视频数据进行编码,获得多路编码视频,而h.264编码格式为较为成熟的编码格式,终端基本上都可以支持,因此,需要判断是否支持h.265编码格式,这是一个初步地判断,只有在支持预设编码格式时,才进行后续进一步地判断,如果不支持预设编码格式则说明不能使用多路编码策略进行编码,将第二单路编码策略作为目标编码策略。
119.步骤s202,若支持所述预设编码格式,则获取主播账号信息,并根据所述主播账号信息确定主播等级。
120.应当理解的是,若支持预设编码格式,则获取主播账号信息,根据主播账号信息确定主播等级,在本实施例中,可将主播账号等级分为a-主播和a+主播,a-主播的观众群没有a+主播的观众群大,因此对于a-主播需要进一步判断观众数是否达标,而对于a+主播则不需要判断观众数,还可为其他等级划分,本实施例对此不作限制。
121.步骤s203,根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略。
122.进一步地,所述步骤s203,包括:
123.判断所述主播等级是否大于预设等级;若所述主播等级大于所述预设等级,则判断所述设备性能是否超过预设性能;若所述设备性能超过所述预设性能,则判断所述当前网络状态是否为移动网络;若所述当前网络状态不为移动网络,则从预设编码策略中选取多路视频编码策略作为目标编码策略。
124.在具体实现中,在将主播等级分为a-主播和a+主播时,可将预设等级设置为a,大于预设等级的即为a+主播,小于预设等级的即为a-主播。
125.应当理解的是,若主播等级大于预设等级,则判断设备性能是否超过预设性能,预设性能可为技术人员根据实际情况进行设置,设置一个性能标准,在超过这个性能标准时,
才采用多路编码策略;在未达到这个性能标准时,采用单路编码策略。
126.可以理解的是,若设备性能超过预设性能,还需判断当前网络状态是否为移动网络,若当前网络状态为移动网络,则采用单路编码策略,若当前网络状态不为移动网络,即为有线网络或无线网络时,则将多路视频编码策略中作为目标编码策略。
127.可以理解的是,在当前网络状态为有线网络或无线网络时,还可获取当前网络强度,在网络强度较差时,将单路视频编码策略作为目标编码策略。
128.需要说明的是,预设编码策略包括多路视频编码策略和单路视频编码策略,其中,单路编码策略又分为第一单路编码策略和第二单路编码策略。
129.进一步地,所述判断所述主播等级是否大于预设等级之后,还包括:
130.若所述主播等级小于所述预设等级,则获取当前观看人数;判断所述当前观看人数是否大于预设人数;若所述当前观看人数大于所述预设人数,则执行所述判断所述设备性能是否超过预设性能的步骤。
131.需要说明的是,若主播等级小于预设等级,即为a-主播时,还需要获取当前观看人数,在当前观看人数大于预设人数时,执行所述判断所述设备性能是否超过预设性能的步骤,进一步判断是否采用多路编码策略,在当前观看人数小于预设人数时,采用单路编码策略。
132.在具体实现中,以直播设备为iphone手机为例进行说明,如图4所示,图4为本实施例的逻辑判断图,iphonex+手机为设备性能超过预设性能的一类手机,iphonex-手机为设备性能不超过预设性能的一类手机,其中,iphonex+手机为iphonex以上的设备。
133.可以理解的是,首先判断是否支持h.265编码格式,不支持h.265编码格式则采用h.264编码格式,支持h.265编码格式则判断主播等级为a-主播还是a+主播,在为a+主播时,根据手机性能判断手机为iphonex+手机还是iphonex-手机,在手机为iphonex-手机时,采用h.265编码格式,在手机为iphonex+手机时,判断当前网络状态为4g还是wifi,在当前网络状态为4g时,采用h.265编码格式,在当前网络状态为wifi时,采用h.265编码格式和h.264编码格式。
134.而在为a-主播时,获取当前观看人数,将当前观看人数与预设人数进行比较判断观众数是否达标,在观众数达标时,执行根据手机性能判断手机为iphonex+手机还是iphonex-手机的步骤,在观众数不达标时,采用h.264编码格式。
135.本实施例中通过根据所述设备性能判断是否支持预设编码格式;若支持所述预设编码格式,则获取主播账号信息,并根据所述主播账号信息确定主播等级;根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略,从而通过多种信息来确定对应的目标编码策略,在不浪费设备性能并且不影响直播效果的前提下,选择最合适的目标编码策略。
136.在一实施例中,如图5所示,基于第一实施例或第二实施例提出本发明视频数据编码方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤s30,包括:
137.步骤s301,在所述目标编码策略为多路编码策略时,确定与所述多路编码策略对应的目标编码格式。
138.需要说明的是,在目标编码策略为多路编码策略时,确定与多路编码策略对应的目标编码格式,目标编码格式包括第一编码格式和第二编码格式,其中,第一编码格式为
h.265编码格式,第二编码格式为h.264编码格式。
139.步骤s302,根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频。
140.进一步地,所述步骤s302,包括:
141.根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频;根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频;将所述第一编码视频和所述第二编码视频作为多路编码视频。
142.需要说明的是,分别通过第一编码格式和第二编码格式这两种编码格式对待编码视频数据进行编码,可获得第一编码视频和第二编码视频,将这两种编码格式的编码视频作为多路编码视频。
143.应当理解的是,根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频的具体步骤为:查找与所述第一编码格式对应的第一码率信息和第一帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据;对所述第一音视频流数据进行封装处理,获得第一编码视频。
144.可以理解的是,在进行视频编码的过程中,还需要考虑编码的码率以及帧率,而每种编码格式的码率以及帧率是不相同的,因此,需要查找与第一编码格式对应的第一编码信息和第一帧率信息,而且,在对视频进行编码时,可从待编码视频数据中提取音频流数据和视频流数据,对其分别进行编码操作,可以起到更好的编码效果,第一编码信息和第一帧率信息可为用户提前进行设置,本实施例对此不作限制。
145.可以理解的是,在获得编码后的第一音视频流数据后,还需对第一音视频流数据进行封装处理,获得第一编码视频,之所以进行封装处理,是为了更方便传输以及便于识别。
146.应当理解的是,根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据的具体步骤为:查找与所述第一编码格式对应的第一编码器;将所述第一码率信息、第一帧率信息、音频流数据和视频流数据发送至所述第一编码器,以使所述第一编码器生成第一音视频流数据,并反馈所述第一音视频流数据;接收所述第一编码器反馈的所述第一音视频流数据。
147.可以理解的是,在进行编码的过程中需要使用到编码器,第一编码格式对应的第一编码器为h.265编码器,将第一码率信息、第一帧率信息、音频流数据和视频流数据发送至第一编码器,由第一编码器根据这些信息数据生成第一音视频流数据并反馈,从而通过第一编码器对待编码视频数据进行了编码,并得到编码后的视频数据。
148.应当理解的是,根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频的具体步骤为:查找与所述第二编码格式对应的第二码率信息和第二帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;根据所述第二码率信息、第二帧率信息、音频流数据和视频流数据生成第二音视频流数据;对所述第二音视频流数据进行封装处理,获得第二编码视频。
149.可以理解的是,需要查找与第二编码格式对应的第二编码信息和第一帧率信息,而且,在对视频进行编码时,可从待编码视频数据中提取音频流数据和视频流数据,对其分
别进行编码操作,可以起到更好的编码效果,第二编码信息和第二帧率信息可为用户提前进行设置,本实施例对此不作限制。
150.可以理解的是,在获得编码后的第二音视频流数据后,还需对第二音视频流数据进行封装处理,获得第二编码视频,之所以进行封装处理,是为了更方便传输以及便于识别。
151.应当理解的是,根据所述第二码率信息、第二帧率信息、音频流数据和视频流数据生成第二音视频流数据的具体步骤为:查找与所述第二编码格式对应的第二编码器;将所述第二码率信息、第二帧率信息、音频流数据和视频流数据发送至所述第二编码器,以使所述第二编码器生成第二音视频流数据,并反馈所述第二音视频流数据;接收所述第二编码器反馈的所述第二音视频流数据。
152.可以理解的是,第二编码格式对应的第二编码器为h.265编码器,将第二码率信息、第二帧率信息、音频流数据和视频流数据发送至第二编码器,由第二编码器根据这些信息数据生成第二音视频流数据并反馈,从而通过第二编码器对待编码视频数据进行了编码,并得到编码后的视频数据。
153.本实施例中通过在所述目标编码策略为多路编码策略时,确定与所述多路编码策略对应的目标编码格式;根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频,从而通过与多路编码策略对应的目标编码格式对待编码视频进行编码,获得多种编码格式的多路编码视频,充分利用了主播设备的性能,给用户提供多种编码格式的视频。
154.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有视频数据编码程序,所述视频数据编码程序被处理器执行时实现如上文所述的视频数据编码方法的步骤。
155.由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
156.此外,参照图6,本发明实施例还提出一种视频数据编码装置,所述视频数据编码装置包括:
157.信息检测模块10,用于检测设备性能和当前网络状态。
158.应当理解的是,主播设备检测设备性能的方式可为获取设备信息,根据设备信息确定设备性能,还可为其他方式,本实施例对此不作限制。
159.应当理解的是,当前网络状态包含移动网络、无线网络和有线网络等状态,由于主播在进行直播的过程中,显然是需要连接网络的,因此,在本实施例中不考虑无网络连接的状态。
160.可以理解的是,在主播使用的直播设备为手机、平板等移动终端设备时,移动终端的当前网络状态可为无线网络或移动网络;在主播使用的直播设备为电脑时,电脑的当前网络状态可为无线网络或有线网络。
161.需要说明的是,由于直播是一个持续的过程,而在直播的过程中当前网络状态可能会发生变化,因此该检测过程也是一个持续的检测过程,可为按照预设周期进行周期性检测,也可为定时检测,从而根据当前的直播设备的设备状态确定合适的目标编码策略。
162.策略确定模块20,用于根据所述设备性能和所述当前网络状态确定对应的目标编码策略。
163.需要说明的是,根据设备性能和当前网络状态可确定对应的目标编码策略,目标编码策略包括多路编码策略和单路编码策略,多路编码策略为将待编码视频编码成不同编码格式的视频,而单路编码策略为将待编码视频编码成单一编码格式的视频,具体为,多路编码策略可将待编码视频编码成h.265编码格式和h.264编码格式的视频,单路编码策略为将待编码视频编码成h.265编码格式或h.264编码格式的视频。
164.应当理解的是,单路编码策略包括第一单路编码策略和第二单路编码策略,第一单路编码策略对应h.265编码格式,第二单路编码策略对应h.264编码格式。
165.视频编码模块30,用于在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频。
166.应当理解的是,在目标编码策略为多路编码策略时,对待编码视频数据按照h.265编码格式和h.264编码格式进行编码,从而获得这两种编码格式的编码视频,根据这两种编码格式的编码视频组成多路编码视频。
167.进一步地,所述根据所述设备性能和所述当前网络状态确定对应的目标编码策略之后,还包括:
168.在所述目标编码策略为单路编码策略时,查找与所述单路编码策略对应的单路编码格式;根据所述单路编码格式对待编码视频数据进行编码,获得单路编码视频;将单路编码视频推送至视频接收设备。
169.需要说明的是,目标编码策略除了可为多路编码策略外,还可为单路编码策略,且只有在设备性能和当前网络状态无法满足多路编码策略时,才会采用单路编码策略进行视频编码,即优先选用多路编码策略,在无法使用多路编码策略时,才采用单路编码策略。
170.应当理解的是,单路编码策略还分为第一单路编码策略和第二单路编码策略,其中,第一单路编码策略对应的编码格式为h.265编码格式,第二单路编码策略对应的编码格式为h.264编码格式。
171.应当理解的是,在目标编码策略为第一单路编码格式时,根据h.265编码格式对待编码视频数据进行编码,获得单路编码视频;在目标编码策略为第二单路编码格式时,根据h.264编码格式对待编码视频数据进行编码,获得单路编码视频。
172.可以理解的是,由于在单路编码策略的情况下,只会根据一种编码格式对待编码视频数据进行编码,生成的单路编码视频是单一格式的编码视频,因此,将单路编码视频推送至视频接收设备时,视频接收设备无法进行选择,只能接收该编码格式的单路编码视频,本实施例中的视频接收设备为客户端,用户通过视频接收设备来观看直播,在这种情况下,用户只能观看到单路编码视频,如果用户想要观看其他编码格式的视频,需要通过服务器对单路编码视频进行转码,从而得到其他编码格式的视频供用户选择。
173.在具体实现中,例如,在目标编码策略为第一单路编码策略时,根据h.265编码格式对待编码视频数据进行编码,获得h.265编码格式的单路编码视频,将该视频推送至视频接收设备进行播放,而如果视频接收设备不支持播放h.265编码格式的视频,或者用户不想观看h.265编码格式的视频时,需要由服务器将单路编码视频转码为h.264编码格式的视频,再推送至视频接收设备进行播放。
174.视频推送模块40,用于将所述多路编码视频推送至视频接收设备。
175.需要说明的是,将不同编码格式的多路编码视频推送至视频接收设备,视频接收
设备可从多路编码视频中选择一种编码格式的编码视频进行播放,例如,多路编码视频包括h.265编码格式的编码视频和h.264编码格式的编码视频,视频接收设备可从中选取h.265编码格式的编码视频进行播放,也可以从中选取h.264编码格式的编码视频进行播放,增加了用户观看直播的选择性,进而提升了用户观看直播的舒适性。
176.进一步地,所述将所述多路编码视频推送至视频接收设备,包括:
177.对所述多路编码视频进行打包,获得多路编码视频包;将所述多路编码视频包上传至服务器,以使视频接收设备根据所述服务器中的多路编码视频包选择对应编码格式的编码视频进行下载。
178.可以理解的是,多路编码视频中包含两种编码格式的编码视频,将多路编码视频打包为多路编码视频包,并将多路编码视频包上传至服务器,在用户通过视频接收设备观看直播时,可以选择观看h.265编码格式的编码视频或h.264编码格式的编码视频,视频接收设备可从多路编码视频包中选取与用户需求对应的编码格式的编码视频进行下载并播放,从而可以在不通过服务器进行转码的情况下,满足用户的观看需求。
179.本实施例中通过检测设备性能和当前网络状态;根据所述设备性能和所述当前网络状态确定对应的目标编码策略;在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频;将所述多路编码视频推送至视频接收设备。从而在设备性能和当前网络状态符合条件的情况下,将待编码视频数据按照不同的编码格式编码为多路编码视频,并推送至视频接收设备,由视频接收设备选择其中一种编码视频进行播放,有效地利用了主播设备的设备性能,节省了服务端转码的费用。
180.在一实施例中,所述策略确定模块20,还用于根据所述设备性能判断是否支持预设编码格式;若支持所述预设编码格式,则获取主播账号信息,并根据所述主播账号信息确定主播等级;根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略。
181.在一实施例中,所述策略确定模块20,还用于判断所述主播等级是否大于预设等级;若所述主播等级大于所述预设等级,则判断所述设备性能是否超过预设性能;若所述设备性能超过所述预设性能,则判断所述当前网络状态是否为移动网络;若所述当前网络状态不为移动网络,则从预设编码策略中选取多路视频编码策略作为目标编码策略。
182.在一实施例中,所述策略确定模块20,还用于若所述主播等级小于所述预设等级,则获取当前观看人数;判断所述当前观看人数是否大于预设人数;若所述当前观看人数大于所述预设人数,则执行所述判断所述设备性能是否超过预设性能的步骤。
183.在一实施例中,所述视频编码模块30,还用于在所述目标编码策略为多路编码策略时,确定与所述多路编码策略对应的目标编码格式;根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频。
184.在一实施例中,所述视频编码模块30,还用于根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频;根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频;将所述第一编码视频和所述第二编码视频作为多路编码视频。
185.在一实施例中,所述视频编码模块30,还用于查找与所述第一编码格式对应的第一码率信息和第一帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据;
对所述第一音视频流数据进行封装处理,获得第一编码视频。
186.在一实施例中,所述视频编码模块30,还用于查找与所述第一编码格式对应的第一编码器;将所述第一码率信息、第一帧率信息、音频流数据和视频流数据发送至所述第一编码器,以使所述第一编码器生成第一音视频流数据,并反馈所述第一音视频流数据;接收所述第一编码器反馈的所述第一音视频流数据。
187.在一实施例中,所述视频编码模块30,还用于查找与所述第二编码格式对应的第二码率信息和第二帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;根据所述第二码率信息、第二帧率信息、音频流数据和视频流数据生成第二音视频流数据;对所述第二音视频流数据进行封装处理,获得第二编码视频。
188.在一实施例中,所述视频推送模块40,还用于对所述多路编码视频进行打包,获得多路编码视频包;将所述多路编码视频包上传至服务器,以使视频接收设备根据所述服务器中的多路编码视频包选择对应编码格式的编码视频进行下载。
189.在一实施例中,所述视频数据编码装置还包括单路编码模块,用于在所述目标编码策略为单路编码策略时,查找与所述单路编码策略对应的单路编码格式;根据所述单路编码格式对待编码视频数据进行编码,获得单路编码视频;将所述单路编码视频推送至视频接收设备。
190.在本发明所述视频数据编码装置的其他实施例或具体实现方法可参照上述各方法实施例,此处不再赘述。
191.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
192.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
193.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该估算机软件产品存储在如上所述的一个估算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台智能设备(可以是手机,估算机,视频数据编码设备,空调器,或者网络视频数据编码设备等)执行本发明各个实施例所述的方法。
194.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
195.本发明公开了a1、一种视频数据编码方法,所述视频数据编码方法包括以下步骤:
196.检测设备性能和当前网络状态;
197.根据所述设备性能和所述当前网络状态确定对应的目标编码策略;
198.在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频;
199.将所述多路编码视频推送至视频接收设备。
200.a2、如a1所述的视频数据编码方法,所述待编码视频数据为主播视频数据;
201.所述根据所述设备性能和所述当前网络状态确定对应的目标编码策略,具体包括:
202.根据所述设备性能判断是否支持预设编码格式;
203.若支持所述预设编码格式,则获取主播账号信息,并根据所述主播账号信息确定主播等级;
204.根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略。
205.a3、如a2所述的视频数据编码方法,所述根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略,具体包括:
206.判断所述主播等级是否大于预设等级;
207.若所述主播等级大于所述预设等级,则判断所述设备性能是否超过预设性能;
208.若所述设备性能超过所述预设性能,则判断所述当前网络状态是否为移动网络;
209.若所述当前网络状态不为移动网络,则从预设编码策略中选取多路视频编码策略作为目标编码策略。
210.a4、如a3所述的视频数据编码方法,所述判断所述主播等级是否大于预设等级之后,还包括:
211.若所述主播等级小于所述预设等级,则获取当前观看人数;
212.判断所述当前观看人数是否大于预设人数;
213.若所述当前观看人数大于所述预设人数,则执行所述判断所述设备性能是否超过预设性能的步骤。
214.a5、如a4所述的视频数据编码方法,所述预设编码格式为h.265编码格式。
215.a6、如a1所述的视频数据编码方法,所述在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频,具体包括:
216.在所述目标编码策略为多路编码策略时,确定与所述多路编码策略对应的目标编码格式;
217.根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频。
218.a7、如a6所述的视频数据编码方法,所述目标编码格式包括第一编码格式和第二编码格式;
219.所述根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频,具体包括:
220.根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频;
221.根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频;
222.将所述第一编码视频和所述第二编码视频作为多路编码视频。
223.a8、如a7所述的视频数据编码方法,所述根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频,具体包括:
224.查找与所述第一编码格式对应的第一码率信息和第一帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;
225.根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据;
226.对所述第一音视频流数据进行封装处理,获得第一编码视频。
227.a9、如a8所述的视频数据编码方法,所述根据所述第一码率信息、第一帧率信息、音频流数据和视频流数据生成第一音视频流数据,具体包括:
228.查找与所述第一编码格式对应的第一编码器;
229.将所述第一码率信息、第一帧率信息、音频流数据和视频流数据发送至所述第一编码器,以使所述第一编码器生成第一音视频流数据,并反馈所述第一音视频流数据;
230.接收所述第一编码器反馈的所述第一音视频流数据。
231.a10、如a7所述的视频数据编码方法,所述根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频,具体包括:
232.查找与所述第二编码格式对应的第二码率信息和第二帧率信息,并从所述待编码视频数据中提取音频流数据和视频流数据;
233.根据所述第二码率信息、第二帧率信息、音频流数据和视频流数据生成第二音视频流数据;
234.对所述第二音视频流数据进行封装处理,获得第二编码视频。
235.a11、如a7所述的视频数据编码方法,所述第一编码格式为h.265编码格式,所述第二编码格式为h.264编码格式。
236.a12、如a1~a11中任一项所述的视频数据编码方法,所述将所述多路编码视频推送至视频接收设备,具体包括:
237.对所述多路编码视频进行打包,获得多路编码视频包;
238.将所述多路编码视频包上传至服务器,以使视频接收设备根据所述服务器中的多路编码视频包选择对应编码格式的编码视频进行下载。
239.a13、如a1~a11中任一项所述的视频数据编码方法,所述根据所述设备性能和所述当前网络状态确定对应的目标编码策略之后,还包括:
240.在所述目标编码策略为单路编码策略时,查找与所述单路编码策略对应的单路编码格式;
241.根据所述单路编码格式对待编码视频数据进行编码,获得单路编码视频;
242.将所述单路编码视频推送至视频接收设备。
243.本发明还公开了b14、一种视频数据编码装置,所述视频数据编码装置包括:
244.信息检测模块,用于检测设备性能和当前网络状态;
245.策略确定模块,用于根据所述设备性能和所述当前网络状态确定对应的目标编码策略;
246.视频编码模块,用于在所述目标编码策略为多路编码策略时,对待编码视频数据按照不同的编码格式进行编码,获得多路编码视频;
247.视频推送模块,用于将所述多路编码视频推送至视频接收设备。
248.b15、如b14所述的视频数据编码装置,所述策略确定模块,还用于根据所述设备性能判断是否支持预设编码格式;
249.所述策略确定模块,还用于若支持所述预设编码格式,则获取主播账号信息,并根
据所述主播账号信息确定主播等级;
250.所述策略确定模块,还用于根据所述主播等级、所述设备性能和所述当前网络状态确定对应的目标编码策略。
251.b16、如b15所述的视频数据编码装置,所述策略确定模块,还用于判断所述主播等级是否大于预设等级;
252.所述策略确定模块,还用于若所述主播等级大于所述预设等级,则判断所述设备性能是否超过预设性能;
253.所述策略确定模块,还用于若所述设备性能超过所述预设性能,则判断所述当前网络状态是否为移动网络;
254.所述策略确定模块,还用于若所述当前网络状态不为移动网络,则从预设编码策略中选取多路视频编码策略作为目标编码策略。
255.b17、如b14所述的视频数据编码装置,所述视频编码模块,还用于在所述目标编码策略为多路编码策略时,确定与所述多路编码策略对应的目标编码格式;
256.所述视频编码模块,还用于根据所述目标编码格式对待编码视频数据进行编码,获得多路编码视频。
257.b18、如b17所述的视频数据编码装置,所述视频编码模块,还用于根据所述第一编码格式对待编码视频数据进行编码,获得第一编码视频;
258.所述视频编码模块,还用于根据所述第二编码格式对所述待编码视频数据进行编码,获得第二编码视频;
259.所述视频编码模块,还用于将所述第一编码视频和所述第二编码视频作为多路编码视频。
260.本发明还公开了c19、一种视频数据编码设备,所述视频数据编码设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频数据编码程序,所述视频数据编码程序配置有实现如上所述的视频数据编码方法的步骤。
261.本发明还公开了c20、一种存储介质,所述存储介质上存储有视频数据编码程序,所述视频数据编码程序被处理器执行时实现如上所述的视频数据编码方法的步骤。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1