一种视频直播流的转码方法、装置、系统及可读存储介质与流程
admin
2022-11-23 07:50:00
0
该技术已申请专利。仅供学习研究,如用于商业用途,请联系技术所有人。 一种视频直播流的转码方法、装置、系统及可读存储介质与流程

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.图1是可用于实现本公开实施例的直播转码系统的硬件配置的一个例子的框图。
44.图2为根据本公开实施例的视频直播流的转码方法的流程示意图。
45.图3为根据本公开实施例的视频直播流的转码的方框原理图。
46.图4为根据本公开实施例的直播转码系统的方框原理图。
具体实施方式
47.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
48.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
49.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
50.在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
51.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
52.《硬件配置》
53.图1是示出可以实现本公开的实施例的直播转码系统1000的硬件配置的框图。
54.如图1所示,直播转码系统1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器cpu、微处理器mcu等。存储器1200例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括任意类型的usb接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括wifi通信、蓝牙通信、2g/3g/4g/5g通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
55.在本公开的实施例中,直播转码系统1000可以是计算机、计算机集群、笔记本电脑、平板电脑、或手机等电子产品。
56.图1所示的直播转码系统仅仅是说明性的并且决不意味着对本公开、其应用或使用的任何限制。应用于本公开的实施例中,直播转码系统1000的所述存储器1200用于存储
指令,所述指令用于控制所述处理器1100进行操作以执行本公开实施例提供的任意一项方法。本领域技术人员应当理解,尽管在图1中对直播转码系统1000示出了多个装置,但是,本公开可以仅涉及其中的部分装置,例如,直播转码系统1000只涉及处理器1100和存储装置1200。技术人员可以根据本公开所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
57.图1所示的直播转码系统1000仅是解释性的,并且决不是为了要限制本说明书、其应用或用途。
58.下面,参照附图描述根据本公开的各个实施例和例子。
59.《方法实施例》
60.在本实施例中,提供一种视频直播流的转码方法。该方法可以是由直播转码系统实施。该直播转码系统可以是如图1所示的直播转码系统1000。
61.根据图2所示,本实施例的方法可以包括如下步骤s2100~s2400:
62.步骤s2100,响应于转码请求,基于画面组将接收到的视频直播流进行切片,得到至少一个视频切片。
63.一个画面组(gop,group of pictures)就是一组连续的画面,mpeg编码将画面(即帧)分为i、p、b三种,i是内部编码帧,p是前向预测帧,b是双向内插帧。i帧是关键帧,可以理解为一个完整的画面,而p帧和b帧记录的是相对于i帧的变化,p帧表示跟前一帧的差别,b帧表示前后帧差别。一个画面组中包括一个i帧。一个是画面组的长度,在理论上记录为n,即多少帧里面出现一次i帧。
64.基于画面组对视频直播流进行切片,得到的视频切片的大小不固定,即每个视频切片中所包含帧的数量可以是任意正整数。
65.在本公开的一个实施例中,可以是将接收到的视频直播流转封装为hls格式,即可以得到基于画面组的视频切片。
66.hls(http live streaming,基于http的自适应码率流媒体传输协议)是动态码率自适应技术。主要用于个人计算机和苹果终端的音视频服务。包括一个m3u(8)的索引文件,ts媒体分片文件和key加密串文件。
67.在本实施例中,视频直播流中的每帧图像具有时间信息,该时间信息可以表示对应图像的播放时间。在对视频直播流进行切片得到视频切片的过程中,视频切片中图像的时间信息将会保留。
68.在一个例子中,该视频直播流可以是全景视频直播流,全景视频直播流可以是通过全景相机拍摄的360度视频,也可以是通过全景相机拍摄的180度视频。可选地,该全景视频直播流的分辨率可以是8k分辨率,即,长度为7680像素,宽度为3840像素。该全景视频直播流例如可以是风景类视频直播流。
69.该全景视频直播流可以通过专门用于播放全景视频的电子设备进行播放。例如,手机、便携式电脑、平板电脑、掌上电脑、vr设备、ar设备及mr设备等。
70.步骤s2200,从计算机集群中选取满足该视频直播流的转码条件的目标计算机。
71.本实施例中的计算机集群中可以包括多台计算机,每台计算机的视频处理能力可以相同,也可以不同。
72.满足该视频直播流的转码条件,即表示能够对该视频直播流的视频切片进行转
码。该转码条件可以是根据视频直播流的画面质量得到的,不同画面质量的视频直播流的转码条件可能不同。
73.在本公开的一个实施例中,从计算机集群中选取满足该视频直播流的转码条件的目标计算机,可以包括如下所示的步骤s2210~s2220:
74.步骤s2210,获取计算机集群中计算机的性能参数以及视频直播流的质量参数。
75.其中,性能参数为表示计算机的最高视频处理能力的参数,质量参数为表示视频直播流的画面质量的参数。
76.在一个例子中,性能参数可以包括第一分辨率和第一帧率,质量参数可以包括第二分辨率和第二帧率。其中,第一分辨率表示对应计算机能够处理画面分辨率小于等于第一分辨率的视频直播流,第一帧率表示对应计算机最高能够处理画面帧率小于等于第一帧率的视频直播流。
77.步骤s2220,根据性能参数和质量参数,从计算机集群中选取目标计算机。
78.在本公开的第一个实施例中,性能参数至少可以包括第一分辨率,质量参数至少可以包括第二分辨率。那么,根据性能参数和质量参数,从计算机集群中选取目标计算机,可以包括如下所示的步骤s2221~s2222:
79.步骤s2221,从计算机集群中选取第一分辨率大于等于第二分辨率的计算机,作为候选计算机。
80.步骤s2222,从候选计算机中选取目标计算机。
81.在一个实施例中,计算机集群中各计算机的帧率可以相同,那么,可以是随机中选取设定数量个候选计算机,作为目标计算机。其中,设定数量可以是预先根据应用场景或具体需求所设定的。例如,该设定数量可以是2。
82.在另一个实施例中,计算机集群中各计算机的帧率可以不同,性能参数可以包括第一帧率,质量参数可以包括第二帧率。那么,可以是根据第一帧率和第二帧率,从候选计算机中选取目标计算机。
83.在一个例子中,根据第一帧率和第二帧率,从候选计算机中选取目标计算机,可以包括:选取第一帧率的总和大于等于第二帧率的至少一个候选计算机,作为目标计算机。
84.例如,候选计算机1~5的第一帧率分别为fps11、fps12、fps13、fps14、fps15,视频直播流的第二帧率为fps2,在fps11+fps12+fps13≥fps2的情况下,可以是将候选计算机1~3作为目标计算机;在fps11+fps12+fps13+fps15≥fps2的情况下,可以是将候选计算机1~3和候选计算机5均作为目标计算机。
85.在上述实施例中,如果候选计算机1~3作为目标计算机的第一帧率的总和大于等于第二帧率,候选计算机1~3和候选计算机5的第一帧率的总和也大于等于第二帧率,那么,可以是仅选取候选计算机1~3作为目标计算机,也可以是选取候选计算机1~3和候选计算机5作为目标计算机。
86.在满足第一帧率的总和大于等于第二帧率的候选计算机的组合的数量大于1的情况下,可以是选取包含计算机的数量较少的组合中的候选计算机,作为目标计算机。
87.在一个例子中,根据第一帧率和第二帧率,从候选计算机中选取目标计算机,还可以包括:按照第一帧率对候选计算机进行降序排序,按照排序顺序选取候选计算机作为目标计算机,直至已经选取的目标计算机的第一帧率的总和大于等于第二帧率。
88.例如,候选计算机1~5的第一帧率分别为fps11、fps12、fps13、fps14、fps15,且fps11≥fps12≥fps13≥fps14≥fps15,视频直播流的第二帧率为fps2,可以是先将候选计算机1作为目标计算机,如果fps11<fps2,则将候选计算机2也作为目标计算机,如果fps11+fps12<fps2,则将候选计算机3也作为目标计算机,直至fps11+

+fps1n≥fps2,其中,n为小于等于5的正整数,那么,候选计算机1~n则作为目标计算机。在此情况下,fps11+

+fps1(n-1)<fps2。
89.在一个例子中,第一帧率的数值可以是多个值。根据第一帧率和第二帧率,从候选计算机中选取目标计算机,可以包括:根据第一帧率和第二帧率,选取满足数量优化条件的第一帧率,作为目标第一帧率;其中,数量优化条件为目标计算机的数量小于等于设定值;根据设定值选取目标第一帧率的候选计算机,作为目标计算机。
90.其中,设定值可以是预先根据应用场景或具体需求所设定的。例如,该设定值可以是2。
91.进一步地,根据第一帧率和第二帧率,选取满足数量优化条件的第一帧率,作为目标第一帧率,可以是计算第二帧率与第一帧率的商的整数,选取该整数小于等于设定的第一帧率,作为目标第一帧率。
92.例如,候选计算机1~3的第一帧率可以为fps11,候选计算机4~5的第一帧率可以为fps12,候选计算机6~9的第一帧率可以为fps3,视频直播流的第二帧率为fps2,设定值为d,将设定值分别与fps2/fps11、fps2/fps12、fps2/fps13进行比较,如果fps2/fps11≤d,可以是将fps11作为目标第一帧率,从候选计算机1~3中选取d个作为目标计算机;如果fps2/fps12≤d,可以是将fps12作为目标第一帧率,从候选计算机4~5中选取d个作为目标计算机;如果fps2/fps13≤d,可以是将fps13作为目标第一帧率,从候选计算机6~9中选取d个作为目标计算机。
93.这样,可以使得目标计算机的性能相同,便于控制目标计算机对视频切片进行转码。
94.步骤s2300,控制目标计算机对视频切片进行转码,得到转码后的视频切片。
95.在本实施例中,目标计算机可以是一个或多个,视频切片可以是一个或多个,一台目标计算机在任意时刻最多可以对一个视频切片进行转码,一个视频切片只能被一台目标计算机转码。
96.在本公开的一个实施例中,控制目标计算机对视频切片进行转码,得到转码后的视频切片,可以包括如下所示的步骤s2310~s2320:
97.步骤s2310,根据视频切片中至少一帧图像的时间信息,生成视频切片的第一列表。
98.在本实施例中,可以是按照时间信息由先到后的顺序,将视频切片存储至第一列表中。
99.步骤s2320,控制目标计算机在保留时间信息的情况下,轮流循环读取第一列表中的视频切片,并对读取的视频切片进行转码,得到转码后的视频切片。
100.对于视频切片中的每帧图像,可以是在转码后保留转码前的时间信息,即每帧图像转码前和转码后的时间信息不变。
101.例如,目标计算机包括目标计算机1和目标计算机2,第一列表中的视频切片可以
包括视频切片1~5,那么,控制目标计算机轮流循环读取第一列表中的视频切片,并对读取的视频切片进行转码,可以是控制目标计算机1读取视频切片1,并对读取的视频切片1进行转码,控制目标计算机2读取视频切片2,并对读取的视频切片2进行转码;再控制目标计算机1读取视频切片3,并对读取的视频切片3进行转码,控制目标计算机2读取视频切片4,并对读取的视频切片4进行转码;再控制目标计算机1读取视频切片5,并对读取的视频切片5进行转码。
102.由于视频直播流的视频切片是实时更新的,本实施例通过构建第一列表,可以使得目标计算机便于读取其中还未转码的视频切片进行转码。
103.在本公开的一个实施例中,该方法还可以包括如下所示的步骤s3100~s3200:
104.步骤s3100,获取转码请求中所包含的转码信息。
105.本实施例中的转码信息为是对视频直播流进行转码所需的信息,可以是表示。例如,该转码信息可以包括:直播封装格式、编码类型、转码后的分辨率、转码后的码率中的至少一项。
106.步骤s3200,将转码信息记录在视频切片中,以供目标计算机在对视频切片进行转码时读取。
107.具体的,目标计算机可以是根据编码类型、转码后的分辨率、转码后的码率,对视频切片进行转码。
108.步骤s2400,将转码后的视频切片进行封装,得到并输出转码后的视频直播流。
109.在本实施例中,可以是按照转码信息中所记录的直播封装格式,将转码后的视频进行封装后输出,即输出转码后的视频直播流。
110.具体的,可以是将转码后的视频直播流输出至终端中进行播放。
111.在本公开的一个实施例中,由于转码后的视频切片中的每帧图像保留了其转码前的时间信息,因此,可以基于时间信息,将转码后的视频切片进行封装。
112.进一步地,可以是根据转码后的视频切片中至少一帧图像的时间信息,生成转码后的视频切片的第二列表;顺序读取第二列表中的转码后的视频切片,并对读取的转码后的视频切片进行封装后输出。
113.在本实施例中,可以是按照时间信息由先到后的顺序,将转码后的视频切片存储至第二列表中。
114.由于视频直播流的视频切片是实时更新的,转码后的视频切片也是实时更新的,因此,本实施例通过构建第二列表,可以便于读取其中还未封装的转码后的视频切片进行封装。
115.在本实施例中,基于时间信息将转码后的视频切片进行封装,可以保证转码后的视频直播流和转码前的视频直播流的画面顺序相同。
116.通过本公开的实施例,基于画面组将接收到的视频直播流进行切片,并从计算机集群中选取目标计算机对切片视频进行转码,再将转码后的视频切片进行封装,可以通过自适应切片技术对实时的视频直播流进行无损切片,而且,实时转码不再完全依赖于单机的性能,而是把自适应切片后的视频切片分配到计算机集群中选取的目标计算机上,通过横向扩展目标计算机的数量,在低性能的计算机上实现视频直播流的实时转码,大幅度降低资源依赖。
117.《装置实施例》
118.在本实施例中,提供一种视频直播流的转码装置300,如图3所示,包括切片模块310、选取模块320、转码模块330和封装模块340。该切片模块310用于响应于转码请求,基于画面组将接收到的视频直播流进行切片,得到至少一个视频切片;该选取模块320用于从计算机集群中选取满足视频直播流的转码条件的目标计算机;该转码模块330用于控制目标计算机对视频切片进行转码,得到转码后的视频切片;该封装模块340用于将转码后的视频切片进行封装,得到并输出转码后的视频直播流。
119.在本公开的一个实施例中,该选取模块320还可以用于:
120.获取计算机集群中计算机的性能参数以及视频直播流的质量参数,其中,性能参数为表示计算机的最高视频处理能力的参数,质量参数为表示视频直播流的画面质量的参数;
121.根据性能参数和质量参数,从计算机集群中选取目标计算机。
122.在本公开的一个实施例中,性能参数包括第一分辨率,质量参数包括第二分辨率,
123.根据性能参数和质量参数,从计算机集群中选取目标计算机包括:
124.从计算机集群中选取第一分辨率大于等于第二分辨率的计算机,作为候选计算机;
125.从候选计算机中选取目标计算机。
126.在本公开的一个实施例中,性能参数包括第一帧率,质量参数包括第二帧率,从候选计算机中选取目标计算机,包括:
127.根据第一帧率和第二帧率,选取满足数量优化条件的第一帧率,作为目标第一帧率;其中,数量优化条件为目标计算机的数量小于等于设定值;
128.根据设定值选取目标第一帧率的候选计算机,作为目标计算机。
129.在本公开的一个实施例中,性能参数包括第一帧率,质量参数包括第二帧率,从候选计算机中选取目标计算机,包括:
130.选取第一帧率的总和大于第二帧率的至少一个候选计算机,作为目标计算机。
131.在本公开的一个实施例中,该视频直播流的转码装置300还可以包括:
132.用于获取转码请求中所包含的转码信息的模块;
133.用于将转码信息记录在视频切片中,以供目标计算机在对视频切片进行转码时读取的模块。
134.在本公开的一个实施例中,转码模块330还可以用于:
135.根据视频切片中至少一帧图像的时间信息,生成视频切片的第一列表;
136.控制目标计算机在保留时间信息的情况下,轮流循环读取第一列表中的视频切片,并对读取的视频切片进行转码,得到转码后的视频切片;
137.将转码后的视频切片进行封装,包括:
138.基于时间信息,将转码后的视频切片进行封装。
139.本领域技术人员应当明白,可以通过各种方式来实现视频直播流的转码装置300。例如,可以通过指令配置处理器来实现视频直播流的转码装置300。例如,可以将指令存储在rom中,并且当启动设备时,将指令从rom读取到可编程器件中来实现视频直播流的转码装置300。例如,可以将视频直播流的转码装置300固化到专用器件(例如asic)中。可以将视
频直播流的转码装置300分成相互独立的单元,或者可以将它们合并在一起实现。视频直播流的转码装置300可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
140.在本实施例中,视频直播流的转码装置300可以具有多种实现形式,例如,视频直播流的转码装置300可以是任何的提供视频直播流的转码服务的软件产品或者应用程序中运行的功能模块,或者是这些软件产品或者应用程序的外设嵌入件、插件、补丁件等,还可以是这些软件产品或者应用程序本身。
141.《直播转码系统实施例》
142.请参见图4,本公开实施例还提供了一种直播转码系统。如图4所示,该直播转码系统400包括存储器410和处理器420。
143.该存储器410可以用于存储可执行的计算机指令。
144.该处理器420可以用于根据所述可执行的计算机指令的控制,执行根据本公开方法实施例所述的视频直播流的转码方法。
145.该直播转码系统400可以是如图1所示的直播转码系统100,也可以是具备其他硬件结构的设备,在此不做限定。该直播转码系统400例如可以是手机、便携式电脑、平板电脑、掌上电脑、台式计算机、计算机集群等,本公开实施例对此不作限定。
146.在另外的实施例中,该直播转码系统400可以包括以上视频直播流的转码装置300。
147.在一个实施例中,以上视频直播流的转码装置300的各模块可以通过处理器420运行存储器410中存储的计算机指令实现。
148.通过本公开的实施例,基于画面组将接收到的视频直播流进行切片,并从计算机集群中选取目标计算机对切片视频进行转码,再将转码后的视频切片进行封装,可以通过自适应切片技术对实时的视频直播流进行无损切片,而且,实时转码不再完全依赖于单机的性能,而是把自适应切片后的视频切片分配到计算机集群中选取的目标计算机上,通过横向扩展目标计算机的数量,在低性能的计算机上实现视频直播流的实时转码,大幅度降低资源依赖。
149.《计算机可读存储介质实施例》
150.在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本公开任意实施例的视频直播流的转码方法。
151.上述各实施例主要重点描述与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。
152.本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施例的对应部分的说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的。
153.本公开可以是装置、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
154.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
155.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边界服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
156.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、位姿设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的位姿信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
157.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
158.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
159.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产
生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
160.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
161.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。

相关内容