云手机网络视频编码方法与服务器
技术领域
本发明涉及网络技术领域,特别涉及一种云手机网络视频编码方法与服务器。
背景技术
云手机,是一个基于云计算强大虚拟应用和移动互联网的智能手机应用云平台。基于云计算在大规模计算、强大的存储能力、虚拟化应用等方面突出的优势,云平台为智能手机用户提供多元化、全方位的虚拟手机应用和服务,全面支持各种手机应用程序的展示、下载、应用与管理服务,并卓越实现全天候云端智能托管应用,让用户脱离移动终端的状态下,也能将各种应用程序托管到到云端,保持全天候在线状态,全面实现智能手机应用虚拟化。
当前云手机进行网络视频传输的时候,会根据现有的视频编码方式,选择软编码或者硬编码,但是这两种方式各有利弊,无法全面针对云手机广泛的应用场景实现较为理想的网络视频传输效果。
发明内容
本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种云手机网络视频编码方法与服务器。
本发明实施方式的一种云手机网络视频编码方法,其特征在于,包括:
步骤1,由控制服务接收客户端的编码方式请求;其中,编码方式请求中记载包括客户端类型的内容;
步骤2,将编码方式请求转发至云手机;
步骤3,云手机解析接收到的编码方式请求,根据客户端类型选择软编码或者硬编码的编码方式;
步骤4,云手机根据确定的编码方式初始化编码器参数再执行视频编码操作。
一种实施方式中,客户端类型包括电脑客户端、移动终端客户端和网页客户端中的任意一种,编码方式请求中以预设字段表示客户端类型。
一种实施方式中,步骤3包括:云手机解析接收到的编码方式请求,若客户端类型是电脑客户端则选择硬编码的编码方式,若客户端类型是网页客户端则选择软编码的编码方式;若客户端类型是移动终端客户端则选择硬编码或软编码中的任意一种编码方式。
一种实施方式中,编码器参数包括分辨率、码率和帧率,步骤4包括:云手机确定编码方式为软编码后,按第一分辨率、第一码率和第一帧率进行编码器参数的初始化再执行视频编码操作。
一种实施方式中,编码器参数包括分辨率、码率和帧率,步骤4包括:云手机确定编码方式为硬编码后,按第二分辨率、第二码率和第二帧率进行编码器参数的初始化,再利用硬件加速器执行视频编码操作。
本发明实施方式还提出一种服务器,其特征在于,包括:控制服务模块和与控制服务模块通信连接的云手机,其中,
控制服务模块,用于接收客户端的编码方式请求;其中,编码方式请求中记载包括客户端类型的内容;
控制服务模块还用于将编码方式请求转发至云手机;
云手机,用于解析接收到的编码方式请求,根据客户端类型选择软编码或者硬编码的编码方式;
云手机还用于根据确定的编码方式初始化编码器参数再执行视频编码操作。
一种实施方式中,客户端类型包括电脑客户端、移动终端客户端和网页客户端中的任意一种,编码方式请求中以预设字段表示客户端类型。
一种实施方式中,云手机具体用于云手机解析接收到的编码方式请求,若客户端类型是电脑客户端则选择硬编码的编码方式,若客户端类型是网页客户端则选择软编码的编码方式;若客户端类型是移动终端客户端则选择硬编码或软编码中的任意一种编码方式。
一种实施方式中,编码器参数包括分辨率、码率和帧率,则云手机具体用于确定编码方式为软编码后,按第一分辨率、第一码率和第一帧率进行编码器参数的初始化再执行视频编码操作。
一种实施方式中,编码器参数包括分辨率、码率和帧率,则云手机具体用于确定编码方式为硬编码后,按第二分辨率、第二码率和第二帧率进行编码器参数的初始化,再利用硬件加速器执行视频编码操作。
本发明实施方式的云手机网络视频编码方法与服务器,依据PC端、手机端和网页端等不同类型的客户端的使用场景设置对应的编码方式,编码方式更加灵活,而且针对不同编码方式在分辨率、码率和帧率进行特定搭配保证编码后视频传输效果更佳。
本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本发明实施方式的云手机网络视频编码方法的流程示意图;
图2是本发明实施方式的服务器的组成示意图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。
请参阅图1,本发明实施方式的云手机网络视频编码方法,包括:
步骤1,由控制服务接收客户端的编码方式请求;其中,编码方式请求中记载包括客户端类型的内容;
步骤2,将编码方式请求转发至云手机;
步骤3,云手机解析接收到的编码方式请求,根据客户端类型选择软编码或者硬编码的编码方式;
步骤4,云手机根据确定的编码方式初始化编码器参数再执行视频编码操作。
请参阅图2,本发明实施方式的服务器,包括:控制服务模块和与控制服务模块通信连接的云手机,其中,各模块介绍如下:
控制服务模块,用于接收客户端的编码方式请求;其中,编码方式请求中记载包括客户端类型的内容;
控制服务模块还用于将编码方式请求转发至云手机;
云手机,用于解析接收到的编码方式请求,根据客户端类型选择软编码或者硬编码的编码方式;
云手机还用于根据确定的编码方式初始化编码器参数再执行视频编码操作。
在该实施方式中,云手机网络视频编码方法以服务器作为步骤的执行对象,或者以服务器内的组成部分作为步骤的执行对象。具体地,步骤1和步骤2以控制服务模块作为步骤的执行对象,步骤3和步骤4以云手机作为步骤的执行对象。
步骤1中,客户端需要与服务器进行网络视频传输前,会向服务器发送一个编码方式请求,请求中记载包括客户端类型的内容,当然请求中记载的内容还可以包括用户账号信息、网络带宽等内容,在此不做限定。服务器通过控制服务模块接收客户端的编码方式请求。
本实施方式中,客户端类型包括电脑客户端、移动终端客户端和网页客户端中的任意一种,编码方式请求中以预设字段表示客户端类型。像PC电脑、Mac电脑、会议室平板等电脑设备上安装的客户端都属于电脑客户端,在Android手机、苹果手机、iPad之类的平板设备等移动终端上安装的客户端都属于移动终端客户端,网页客户端主要是指利用微信小程序、浏览器等基于网页访问云手机的客户端。三种不同类型的客户端各自的编码能力不同,使用场景也不同。
步骤2中,控制服务模块将编码方式请求转发至云手机。其中,控制服务模块可以通过私网进行连接。私网就是指的局域网(LAN),相对于广域网(WAN)而言,主要是指在小范围内的计算机互联网络。这个“小范围”可以是公司的一个机房,或者是一个网络集群。广域网上的每一台电脑(或其他网络设备)都有一个或多个广域网IP地址(或者说公网、外网IP地址),广域网IP地址一般要到ISP处交费之后才能申请到,广域网IP地址不能重复;局域网(LAN)上的每一台电脑(或其他网络设备)都有一个或多个局域网IP地址(或者说私网、内网IP地址),局域网IP地址是局域网内部分配的,不同局域网的IP地址可以重复,不会相互影响。控制服务模块可以和若干台云手机进行连接,这样保证了云手机和客户端之间可以通过控制服务模块来统一接收和发送,更加便捷和有序。
步骤3中,云手机解析接收到的编码方式请求,根据客户端类型选择软编码或者硬编码的编码方式。
其中,软编码和硬编码的介绍如下:
1.软编码和硬编码如何区分
软编码:使用CPU进行编码
硬编码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等
2.软编码和硬编码各自特点
软编码:实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。
硬编码:性能高,低码率下通常质量低于硬编码器。
具体地,步骤3包括:云手机解析接收到的编码方式请求,若客户端类型是电脑客户端则选择硬编码的编码方式,若客户端类型是网页客户端则选择软编码的编码方式;若客户端类型是移动终端客户端则选择硬编码或软编码中的任意一种编码方式。例如,从PC端访问云手机进行网络视频传输则选择硬编码,从微信小程序等网页端访问云手机进行网络视频传输则选择软编码,用手机端访问云手机进行网络视频传输则可以随意选择软编码或者硬编码。
步骤4中,云手机根据确定的编码方式初始化编码器参数再执行视频编码操作。本实施方式中,编码器参数包括分辨率、码率和帧率。通常分辨率高和码率高会导致视频包大,这种情况下为了保证网络视频传输效果则需要降低帧率,即分辨率、码率和帧率需要搭配好才能保证视频传输效果更佳。下面分几种情况来说明:
第一种情况中,云手机确定编码方式为软编码后,按第一分辨率、第一码率和第一帧率进行编码器参数的初始化再执行视频编码操作。
例如,第一分辨率为720p,第一码率选在4096bkps,第一帧率是20~25帧之间。即第一帧率可以是20帧,也可以是25帧,或者20~25帧之间的数字,例如24帧。
通常720p的画面分辨率为1280×720,一般也可称为高清(HD)。但有些情况下,如iPod Touch 4,其720P摄录并不是指1280×720(16:9),而是960×720(4:3),故没有注明是HD的720P摄录并不是都指1280×720(16:9)。
视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
帧率表示每秒钟要显示多少帧画面。
即云手机确定编码方式为软编码后,按第一分辨率为720p,第一码率选在4096bkps且第一帧率在20~25帧之间进行编码器参数的初始化再执行视频编码操作。
再例如,第一分辨率为480p,第一码率选在2048bkps,第一帧率是20-25帧之间。即云手机确定编码方式为软编码后,按第一分辨率为480p,第一码率选在2048bkps且第一帧率在20-25帧之间进行编码器参数的初始化再执行视频编码操作。
第二种情况中,步骤4包括:云手机确定编码方式为硬编码后,按第二分辨率、第二码率和第二帧率进行编码器参数的初始化,再利用硬件加速器执行视频编码操作。
像Radeon GPU Analyzer这样的硬件加速器可以在进行硬编码的时候启动,以便节省硬编码时CPU进行内存拷贝的时间。
具体地,云手机确定编码方式为硬编码后,按第二分辨率为720p,第二码率选在4096bkps且第二帧率在20~25帧之间进行编码器参数的初始化,再利用硬件加速器执行视频编码操作。
或者,云手机确定编码方式为硬编码后,按第二分辨率为480p,第二码率选在2048bkps且第二帧率在20~25帧之间进行编码器参数的初始化,再利用硬件加速器执行视频编码操作。
综上所述,本发明依据PC端、手机端和网页端等不同类型的客户端的使用场景设置对应的编码方式,编码方式更加灵活,而且针对不同编码方式在分辨率、码率和帧率进行特定搭配保证编码后视频传输效果更佳。
在本发明的实施方式的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的实施方式的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的实施方式的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明的实施方式中的具体含义。
在本发明的实施方式中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的实施方式的不同结构。为了简化本发明的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明的实施方式可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理模块的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。