CN113542795B - 视频处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
视频处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113542795B CN113542795B CN202010317630.7A CN202010317630A CN113542795B CN 113542795 B CN113542795 B CN 113542795B CN 202010317630 A CN202010317630 A CN 202010317630A CN 113542795 B CN113542795 B CN 113542795B
- Authority
- CN
- China
- Prior art keywords
- video
- terminal
- playing
- model
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Abstract
本申请提供了一种视频处理方法、装置、电子设备及计算机可读存储介质,涉及互联网领域。该方法包括:当接收到终端发送的针对视频播放地址的获取请求时,提取所述获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值;根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出所述视频标识对应的各个版本的视频;结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频,并基于所述目标视频生成视频播放地址;将所述视频播放地址发送至所述终端,以使得所述终端基于所述视频播放地址进行视频播放。本申请不仅提高了视频播放的成功率,也提升了视频播放的清晰度,从而提升了用户的观看体验。
Description
技术领域
本申请涉及互联网技术领域,具体而言,本申请涉及一种视频处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着科技的进步,终端的硬件性能越来越强大,移动网络的网络速度也越来越快,用户可以随时随地通过终端观看视频。
现有的技术中,针对终端不同的网络环境,比如WIFI和移动网络(2G、3G、4G等),都是下发相同清晰度的视频,这样就会导致弱网环境的用户观看视频不流畅,用户观看体验差。
为了保证视频播放的成功率,现有技术都是下发特定编码格式、清晰度比较低和码率较低的视频,无法发挥高端终端设备的硬件性能。其中,下发特定编码格式包括只下发H.264编码格式的视频,或者,针对指定终端下发H.265编码格式的视频,但是,由于H.265编码格式的视频的播放需要终端具备硬解码能力(软解码性能差),导致需要人为地设定终端的白名单,并人为地定期对其维护来保证不同的终端播放视频的成功率,会消耗大量人力成本和时间成本。
而且,H.265编码格式的视频比H.264编码格式的视频的文件体积要小,而现有技术中只会给白名单中的终端下发送H.265编码格式的视频,这样就导致大部分情况下仍然下发H.264编码格式的视频,需要消耗较大的带宽。
发明内容
本申请提供了一种视频处理方法、装置、电子设备及计算机可读存储介质,可以解决上述问题。所述技术方案如下:
第一方面,提供了一种视频处理方法,应用于服务器,该方法包括:
当接收到终端发送的针对视频播放地址的获取请求时,提取所述获取请求中的终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出所述视频标识对应的各个版本的视频;
结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频,并基于所述目标视频生成视频播放地址;
将所述视频播放地址发送至所述终端,以使得所述终端基于所述视频播放地址进行视频播放。
优选地,所述终端信息还包括所述终端的终端型号;视频的版本包括视频的编码格式、分辨率以及码率;
所述结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频的步骤,包括:
基于所述解码能力值确定出所述终端支持的目标编码格式;
基于预设的解码能力模型确定出与所述终端型号对应的目标分辨率;其中,所述解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率;
从各个版本中匹配出具有所述目标编码格式和所述目标分辨率的视频的集合;所述视频集合中的各个视频具有相同的所述目标编码格式和所述目标分辨率,且互不相同的码率;
将视频集合中符合所述网络的码率、且不超过码率阈值的视频确定为目标视频。
优选地,所述编码格式包括第一编码格式和第二编码格式;
所述基于所述解码能力值确定出所述终端支持的目标编码格式的步骤,包括:
若所述解码能力值大于预设的能力阈值,确定所述终端支持的编码格式为第一编码格式;
若所述解码能力值不大于预设的能力阈值,确定所述终端支持的编码格式为第二编码格式。
优选地,所述基于预设的解码能力模型确定出与所述终端型号对应的目标分辨率的步骤,包括:
依据所述终端型号查询所述解码能力模型中是否存在匹配项;
若是,则获取所述终端型号对应的视频播放的所有播放分辨率,并将所述所有播放分辨率中最大的分辨率作为目标分辨率;
若否,则将所述目标编码格式对应的默认分辨率作为目标分辨率。
优选地,所述解码能力模型还包括针对每种视频的播放分辨率的播放指标,所述播放指标包括播放是否硬解码成功以及掉帧率;
所述解码能力模型通过如下方式生成:
针对已播放任一视频的各个终端,获取各个终端在播放所述任一视频时的终端型号、是否硬解码成功、播放分辨率,以及掉帧次数,得到每个终端型号对应的至少一种播放分辨率,以及各种播放分辨率对应的播放总次数、硬解码失败总次数和掉帧总次数;
针对每个终端型号,基于所述播放总次数、硬解码失败总次数和掉帧总次数计算出各种播放分辨率对应的硬解码失败率和掉帧率;
基于每个终端型号对应的各种播放分辨率对应的硬解码失败率和掉帧率生成解码能力模型。
优选地,所述码率阈值通过如下方式生成:
每隔预设时间段获取各个终端各自上传的网络速度;
依据所有的网络速度计算出平均网络速度;
确定出与所述平均网络速度对应的码率,并将所述码率作为码率阈值。
优选地,所述获取请求还包括所述终端的当前网络速度;
所述基于所述终端信息从各个版本的视频中确定出与所述终端相匹配的目标视频的步骤,还包括:
基于所述终端信息和所述当前网络速度从各个版本的视频中确定出与所述终端相匹配的目标视频。
优选地,当目标编码格式为第一编码格式时,基于各个版本中具有所述目标编码格式和所述目标分辨率的视频作为目标视频,包括:
将各个版本中具有所述第一编码格式和所述目标分辨率的视频,以及具有所述第二编码格式和所述目标分辨率的视频同时作为目标视频。
第二方面,提供了一种视频处理方法,应用于终端,该方法包括:
当接收到视频播放指令时,生成获取视频播放地址的获取请求,所述获取请求包括终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
将所述获取请求发送至服务器,以使得所述服务器基于所述终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将所述视频播放地址发送至所述终端;
接收所述视频播放地址,并基于所述视频播放地址进行视频播放。
优选地,基于所述视频播放地址进行视频播放,包括:
从所述视频播放地址获取对应的视频数据;
当调用预设的视频相关接口成功时,对所述视频数据进行硬解码,得到解码后的视频数据;
播放所述解码后的视频数据。
优选地,调用预设的视频相关接口成功,包括:
调用预设的视频相关接口成功,或,预设的视频相关接口对所述视频数据进行硬解码成功;否则,判定调用预设的视频相关接口失败,并停止播放所述视频,以及将所述终端的终端型号、播放分辨率以及硬解码失败发送至所述服务器。
优选地,所述视频数据包括音频数据和图像数据,所述音频数据包括至少一帧音频帧,所述图像数据包括至少一帧图像帧;
在播放所述解码后的视频数据的步骤之前,还包括:
获取每个音频帧的显示时间戳和每个图像帧的解码时间戳;
针对任一时间戳,检测图像帧的解码时间戳是否落后于音频帧的解码时间戳;
若是,则判定所述任一时间戳对应的图像帧超时;
将所述任一时间戳对应的图像帧丢弃,并将所述超时记录为一次掉帧;
将所述终端的终端型号、播放分辨率以及所述一次掉帧发送至所述服务器。
第三方面,提供了一种视频处理装置,应用于服务器,该装置包括:
第一接收模块,用于接收终端发送的针对视频播放地址的获取请求;
提取模块,用于提取所述获取请求中的终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
确定模块,用于根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出所述视频标识对应的各个版本的视频;
匹配模块,用于结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频;
第一生成模块,用于基于所述目标视频生成视频播放地址;
第一发送模块,用于将所述视频播放地址发送至所述终端,以使得所述终端基于所述视频播放地址进行视频播放。
优选地,所述终端信息还包括所述终端的终端型号;视频的版本包括视频的编码格式、分辨率以及码率;
所述匹配模块包括:
目标编码格式确定子模块,用于基于所述解码能力值确定出所述终端支持的目标编码格式;
目标分辨率确定子模块,用于基于预设的解码能力模型确定出与所述终端型号对应的目标分辨率;其中,所述解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率;
目标视频确定子模块,用于从各个版本中匹配出具有所述目标编码格式和所述目标分辨率的视频的集合;所述视频集合中的各个视频具有相同的所述目标编码格式和所述目标分辨率,且互不相同的码率;并将视频集合中符合所述网络状态的码率、且不超过码率阈值的视频确定为目标视频。
优选地,所述编码格式包括第一编码格式和第二编码格式;
所述目标编码格式确定子模块具体用于:
若所述解码能力值大于预设的能力阈值,确定所述终端支持的编码格式为第一编码格式;
若所述解码能力值不大于预设的能力阈值,确定所述终端支持的编码格式为第二编码格式。
优选地,所述目标分辨率确定子模块包括:
查询单元,用于依据所述终端型号查询所述解码能力模型中是否存在匹配项;
处理单元,用于获取所述终端型号对应的视频播放的所有播放分辨率,并将所述所有播放分辨率中最大的分辨率作为目标分辨率;或,将所述目标编码格式对应的默认分辨率作为目标分辨率。
优选地,所述解码能力模型还包括针对每种视频的播放分辨率的播放指标,所述播放指标包括播放是否硬解码成功以及掉帧率;
所述解码能力模型通过如下方式生成:
针对已播放任一视频的各个终端,获取各个终端在播放所述任一视频时的终端型号、是否硬解码成功、播放分辨率,以及掉帧次数,得到每个终端型号对应的至少一种播放分辨率,以及各种播放分辨率对应的播放总次数、硬解码失败总次数和掉帧总次数;
针对每个终端型号,基于所述播放总次数、解码失败总次数和掉帧总次数计算出各种播放分辨率对应的硬解码失败率和掉帧率;
基于每个终端型号对应的各种播放分辨率对应的硬解码失败率和掉帧率生成解码能力模型。
优选地,所述码率阈值通过如下方式生成:
每隔预设时间段获取各个终端各自上传的网络速度;
依据所有的网络速度计算出平均网络速度;
确定出与所述平均网络速度对应的码率,并将所述码率作为码率阈值。
优选地,所述获取请求还包括所述终端的当前网络速度;
所述匹配模块还用于:
基于所述终端信息和所述当前网络速度从各个版本的视频中确定出与所述终端相匹配的目标视频。
优选地,所述目标视频确定子模块还用于:
当目标编码格式为第一编码格式时,将各个版本中具有所述第一编码格式和所述目标分辨率的视频,以及具有所述第二编码格式和所述目标分辨率的视频同时作为目标视频。
第四方面,提供了一种视频处理装置,应用于终端,该装置包括:
第二接收模块,用于接收视频播放指令;
第二生成模块,用于生成获取视频播放地址的获取请求,所述获取请求包括终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
第二发送模块,用于将所述获取请求发送至服务器,以使得所述服务器基于所述终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将所述视频播放地址发送至所述终端;
所述第二接收模块,还用于接收所述视频播放地址;
播放模块,用于基于所述视频播放地址进行视频播放。
优选地,所述播放模块包括:
视频数据获取子模块,用于从所述视频播放地址获取对应的视频数据;
调用子模块,用于当调用预设的视频相关接口成功时,对所述视频数据进行硬解码,得到解码后的视频数据;
播放子模块,用于播放所述解码后的视频数据。
优选地,调用预设的视频相关接口成功,包括:
调用预设的视频相关接口成功,或,预设的视频相关接口对所述视频数据进行硬解码成功;否则,判定调用预设的视频相关接口失败,并停止播放所述视频,以及将所述终端的终端型号、播放分辨率以及硬解码失败发送至所述服务器。
优选地,所述视频数据包括音频数据和图像数据,所述音频数据包括至少一帧音频帧,所述图像数据包括至少一帧图像帧;
所述播放模块还包括:
在播放所述解码后的视频数据的步骤之前,获取每个音频帧的显示时间戳和每个图像帧的解码时间戳;
解码时间戳获取子模块,用于针对任一时间戳,检测图像帧的解码时间戳是否落后于音频帧的解码时间戳;
判定子模块,用于判定所述任一时间戳对应的图像帧超时;
丢弃子模块,用于将所述任一时间戳对应的图像帧丢弃,并将所述超时记录为一次掉帧;
发送子模块,用于将所述终端的终端型号、播放分辨率以及所述一次掉帧发送至所述服务器。
第五方面,提供了一种电子设备,该电子设备包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本申请的第一方面、第二方面所示的视频处理方法对应的操作。
第六方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面、第二方面所示的视频处理方法。
本申请提供的技术方案带来的有益效果是:
当服务器接收到终端发送的针对视频播放地址的获取请求时,提取所述获取请求中的终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值,然后根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出所述视频标识对应的各个版本的视频,再结合所述网络状态从各个版本的视频中确定出与所述终端相匹配的目标视频,并基于所述目标视频生成视频播放地址,即可将所述视频播放地址发送至所述终端,以使得所述终端基于所述视频播放地址进行视频播放。这样,当用户请求视频播放地址时,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请一个实施例提供的一种视频处理方法的流程示意图;
图2为本申请中终端与服务器中各个系统的交互示意图;
图3为本申请又一实施例提供的一种视频处理方法的流程示意图;
图4为本申请的测试中视频平均码率的优化前后对比图;
图5为本申请的测试中视频播放的实际视觉效果的优化前后对比图;
图6A、6B为本申请的测试中带宽消耗的优化前后对比图;
图7为本申请又一实施例提供的一种视频处理方法的流程示意图;
图8为本申请中视频相关接口的异常检测流程示意图;
图9为本申请中检测掉帧的流程示意图;
图10为本申请又一实施例提供的一种视频处理装置的结构示意图;
图11为本申请又一实施例提供的一种视频处理装置的结构示意图;
图12为本申请又一实施例提供的一种视频处理的电子设备的结构示意图;
图13为本申请又一实施例提供的一种视频处理的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请提供的视频处理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
在一个实施例中提供了一种视频处理方法,如图1所示,应用于服务器,该方法包括:
步骤S101,当接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值;
在本发明实施例中,服务器中可以安装信息收集系统、信息处理系统以及信息监控系统,如图2所示。其中,信息收集系统可以用于收集终端上报的各种数据,供开发者对各种数据进行分析、定位问题等,比如“腾讯灯塔”系统;信息处理系统具有高可用性和高可伸缩性,具有海量数据存储和海量数据分析的分布式数据处理系统,信息处理系统可以对海量数据进行分析从而得到解码能力模型,比如TDW(Tencent distributed DataWarehouse,腾讯内部海量数据处理平台)系统;信息监控系统用来监控外网视频的播放情况以及定位问题,以便于对上述的解码能力模型进行实时更新,比如“黄金眼”系统。
进一步,服务器中还可以设置有匹配策略服务、换链服务,以及用于存储视频的存储容器。其中,匹配策略服务可以通过查询解码能力模型确定出与终端相匹配的目标视频,然后从存储容器中获取目标视频并生成视频播放地址;换链服务包括:终端发送的获取请求可以先调用换链服务,换链服务会根据视频标识从存储容器拿到该视频的所有版本,然后把终端信息以及视频的全部版本发送给匹配策略服务,匹配策略服务决策出最优视频版本以后,将该版本回传换链服务,换链服务置换好视频播放地址再返回给终端进行播放。
具体而言,海量数据可以在TDW系统中作离线分析,最终输出成终端设备的解码能力模型,供匹配策略服务使用消费。此外,TDW系统接入黄金眼来监控外网视频的播放情况及时定位问题,以便于采用新的匹配策略对当前的解码能力模型进行相应的、实时地调整,该过程是不间断进行的。
需要说明的是,存储容器除了可以设置在上述的服务器中之外,也可以设置在一个单独的用于生成视频播放地址的视频处理服务器中,这样,上述的服务器在确定出了目标视频之后,将目标视频的相关信息发送至视频处理服务器,视频处理服务器基于相关信息获取目标视频再生成视频播放地址即可,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。
进一步,各个系统除了可以安装在上述的服务器中之外,也可以安装在至少一个其它的服务器中,在实际应用中可以根据实际需求进行设置,本发明实施例对此也不作限制。
为方便描述,在本申请中,以上述的各个系统和服务设置在一个服务器中进行详细说明。
在实际应用中,服务器接收到终端发送的针对视频播放地址的获取请求后,可以从获取请求中提取出终端信息和视频标识。其中,终端信息可以包括但不限于:终端型号、终端的解码能力值、网络状态类型、系统版本号、应用程序版本号、终端类型等等。视频标识可以包括但不限于视频的ID、名称、识别码等等。当然,终端信息和视频标识具体包含的信息可以实际需求进行调整,本发明实施例对此不作限制。
进一步,解码能力值用于表征终端解码能力的数值,包括硬解码能力值和软解码能力值。
步骤S102,根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频;
具体而言,服务器的存储容器中存储的视频可以具有多个版本,服务器从获取请求中提取出视频标识后,基于视频标识、终端设备的解码能力值以及预设的解码能力模型,即可确定出该视频标识对应的各个版本的视频。
步骤S103,结合所述网络状态,从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址;
在实际应用中,服务器在接收到获取请求后就可以调用匹配策略服务,匹配策略服务根据获取请求中的终端信息,查询解码能力模型,然后结合视频标识和网络状态,确定出一个与终端相匹配的目标视频,然后基于该目标视频生成视频播放地址即可。其中,网络状态可以包括网络类型、网络速度等等。
步骤S104,将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。
服务器生成了视频播放地址后,即可将视频播放地址发送至终端,终端依据该视频播放地址获取目标视频,并播放目标视频。
在本发明实施例中,当服务器接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频,再结合网络状态,从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址,即可将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。这样,当用户请求视频播放地址时,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
在另一个实施例中提供了一种视频处理方法,如图3所示,应用于服务器,该方法包括:
步骤S301,当接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值;
在本发明实施例中,服务器中可以安装信息收集系统、信息处理系统以及信息监控系统,如图2所示。其中,信息收集系统可以用于收集终端上报的各种数据,供开发者对各种数据进行分析、定位问题等,比如“腾讯灯塔”系统;信息处理系统具有高可用性和高可伸缩性,具有海量数据存储和海量数据分析的分布式数据处理系统,信息处理系统可以对海量数据进行分析从而得到解码能力模型,比如TDW(Tencent distributed DataWarehouse,腾讯内部海量数据处理平台)系统;信息监控系统用来监控外网视频的播放情况以及定位问题,以便于对上述的解码能力模型进行实时更新,比如“黄金眼”系统。
进一步,服务器中还可以设置有匹配策略服务、换链服务,以及用于存储视频的存储容器。其中,匹配策略服务可以通过查询解码能力模型确定出与终端相匹配的目标视频,然后从存储容器中获取目标视频并生成视频播放地址;换链服务包括:终端发送的获取请求可以先调用换链服务,换链服务会根据视频标识从存储容器拿到该视频的所有版本,然后把终端信息以及视频的全部版本发送给匹配策略服务,匹配策略服务决策出最优视频版本以后,将该版本回传换链服务,换链服务置换好视频播放地址再返回给终端进行播放。
具体而言,海量数据可以在TDW系统中作离线分析,最终输出成终端设备的解码能力模型,供匹配策略服务使用消费。此外,TDW系统接入黄金眼来监控外网视频的播放情况及时定位问题,以便于采用新的匹配策略对当前的解码能力模型进行相应的、实时地调整,该过程是不间断进行的。
需要说明的是,存储容器除了可以设置在上述的服务器中之外,也可以设置在一个单独的用于生成视频播放地址的视频处理服务器中,这样,上述的服务器在确定出了目标视频之后,将目标视频的相关信息发送至视频处理服务器,视频处理服务器基于相关信息获取目标视频再生成视频播放地址即可,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。
进一步,各个系统除了可以安装在上述的服务器中之外,也可以安装在至少一个其它的服务器中,在实际应用中可以根据实际需求进行设置,本发明实施例对此也不作限制。
为方便描述,在本申请中,以上述的各个系统和服务设置在一个服务器中进行详细说明。
在实际应用中,服务器接收到终端发送的针对视频播放地址的获取请求后,可以从获取请求中提取出终端信息和视频标识。其中,终端信息可以包括但不限于:终端型号、终端的解码能力值、网络类型(比如3G、4G、5G、WIFI)、系统版本号、应用程序版本号、终端类型等等。视频标识可以包括但不限于视频的ID、名称、识别码等等。当然,终端信息和视频标识具体包含的信息可以实际需求进行调整,本发明实施例对此不作限制。
步骤S302,根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频;
具体而言,服务器的存储容器中存储的视频可以具有多个版本,服务器从获取请求中提取出视频标识后,基于视频标识即可确定出该视频标识对应的各个版本的视频。比如,视频A具有480P、720P、1080P、2K等多个分辨率,每种分辨率具有第一编码格式和第二编码格式,服务器接收到的获取请求中为视频A的视频标识,那么就可以确定出视频A对应有8个版本的视频。当然,在实际应用中,每个视频不一定具有多种编码格式和多种播放分辨率,所以,最终确定出视频对应的版本不一定是多个,有可能只有一个版本,比如,某个视频只有480P的第一编码格式这一个版本。
步骤S303,结合网络状态,从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址;
在实际应用中,服务器在接收到获取请求后就可以调用匹配策略服务,匹配策略服务根据获取请求中的终端信息,查询解码能力模型,然后结合视频标识和网络状态,确定出一个与终端相匹配的目标视频,然后基于该目标视频生成视频播放地址即可。其中,网络状态可以包括网络类型、网络速度等等。
在本发明一种优选实施例中,视频的版本包括视频的编码格式、分辨率以及码率;
结合网络状态,从各个版本的视频中确定出与终端相匹配的目标视频的步骤,包括:
基于解码能力值确定出终端支持的目标编码格式;
基于预设的解码能力模型确定出与终端型号对应的目标分辨率;其中,解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率;
从各个版本中匹配出具有所述目标编码格式和所述目标分辨率的视频的集合;所述视频集合中的各个视频具有相同的所述目标编码格式和所述目标分辨率,且互不相同的码率;
将视频集合中符合所述网络状态的码率、且不超过码率阈值的视频确定为目标视频。
其中,编码格式包括第一编码格式和第二编码格式。第一编码格式可以是当前最新的编码格式,比如HEVC(High Efficiency Video Coding,高效率视频编码)/H.265,是一种新的视频压缩标准,可以代替H.264/AVC(Advanced Video Coding,高级视频编码)。HEVC编码格式的视频需要具备硬解码能力,使用软解码HEVC编码格式视频性能较差。
需要说明的是,第二编码格式可以是除了第一编码格式外的其它编码格式,比如H.264、H.263等等。而且,第一编码格式并不是只能是H.265,只要是当前最新的编码格式都可以作为第一编码格式,比如,当H.266编码格式成熟后,H.266即可作为第一编码格式,H.265、H.264等编码格式即可作为第二编码格式了。
码率指的是数据传输时单位时间传送的数据位数,单位是kbps(千位每秒)。对于视频来说,在编码之后,码率越高,被压缩的比例越小,处理出来的文件就更接近原始文件,更加清晰。对于同一个视频来说,在一定范围内,码率越高,文件的体积越大,视频的质量更高,也更清晰。
在本发明实施例中,同一编码格式且同一分辨率的视频可以具有不同的码率,所以,同一编码格式且同一分辨率的视频是由多个码率的视频组成的集合,终端依据视频播放地址获取目标视频时,服务器可以将视频集合中码率最高、且不超过码率阈值的视频发送至终端。
其中,码率阈值通过如下方式生成:
每隔预设时间段获取各个终端各自上传的网络速度;
依据所有的网络速度计算出平均网络速度;
确定出与平均网络速度对应的码率,并将码率作为码率阈值。
用户在终端观看视频的时候,可以每隔预设时间段将当前的网络速度上传至服务器,或者,也可以先获取不同时间段的网络速度,然后计算出平均网络速度,再将平均网络速度上传至服务器。服务器接收到各个终端上传的多个网络速度之后,依据多个网络速度计算出平均网络速度,然后将平均网络速度换算成码率。
比如,根据多个终端上报的网络速度用户的平均网速计算得出,约78%用户的移动网络的平均网络速度超过100KB/s,然后根据100KB/s对应800kbps码率换算,可以得出700kbps~800kbps码率的视频适合移动网络下大多数用户流畅的观看。
其中,硬解码和软解码指的是视频解码的方法。通常来讲,硬解码是指使用GPU(比如显卡)进行解码的工作,软解码则是由CPU(中央处理器)负责解码工作。
进一步,解码能力值用于表征终端解码能力的数值,包括硬解码能力值和软解码能力值。
例如,硬解码能力值(hwcodec level),用于表征终端硬解码能力的数值,可以直观描述终端的硬解码能力。硬解码能力值具体可以如表1所示:
表1
具体而言,获取请求中的终端信息还可以包括该终端的硬解码能力值,服务器根据终端上报的硬解码能力值就可以确定出该终端是否具备硬解码能力,从而确定出该终端支持的视频的编码格式。
其中,基于解码能力值确定出终端支持的目标编码格式的步骤,包括:
若解码能力值大于预设的能力阈值,确定终端支持的编码格式为第一编码格式;
若解码能力值不大于预设的能力阈值,确定终端支持的编码格式为第二编码格式。
在实际应用中,可以预先设置硬解码能力值的能力阈值,比如设置为4,根据HEVC编码规范定义可知,对于硬解码能力值小于4的终端,可认为该终端的机器性能较差,无法支持HEVC格式视频的硬解;当终端硬解码能力值大于等于4时,认为该终端是支持视频的硬解码的;其中,当终端硬解码能力值等于4时,认为支持480P的HEVC硬解码;当设备硬解码能力值大于4时,认为该设备支持720P、1080P的HEVC硬解码。这样,从获取请求中提取出终端的硬解码能力值后,将该值与能力阈值进行比较即可确定出终端支持的编码格式了。
需要说明的是,硬解码能力值可以是终端基于终端的硬件信息计算得到,也可以是终端通过运行测试类的应用程序测试得到,还可以通过其它方式得到,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。
在确定出终端支持的编码格式后,可以基于预设的解码能力模型确定出该终端支持的、最高的播放分辨率了。其中,播放分辨率为视频播放时视频的分辨率。
其中,基于预设的解码能力模型确定出与终端型号对应的目标分辨率的步骤,包括:
依据终端型号查询解码能力模型中是否存在匹配项;
若是,则获取终端型号对应的视频播放的所有播放分辨率,并将所有播放分辨率中最大的分辨率作为目标分辨率;
若否,则将目标编码格式对应的默认分辨率作为目标分辨率。
具体而言,解码能力模型中可以包括各种终端的终端型号,每个终端型号都有对应的各种播放分辨率和每种播放分辨率对应的播放指标,播放指标包括播放是否硬解码成功以及掉帧率,任一终端型号对应的分辨率和播放指标的关系具体可以如表2所示:
表2
分辨率 | 是否硬解码成功 | 掉帧率 |
2K | x | x |
1080P | x | x |
720P | x | x |
480P | x | x |
当然,播放指标除了可以包括是否硬解码成功和掉帧率之外,还可以包括其它的信息,在实际应用中可以根据需求进行设置,本发明实施例对此不作限制。
在本发明实施例中,还可以设置掉帧率阈值。当从解码能力模型中查询到任一终端的终端型号后,从最大的分辨率开始,判断任一终端型号的分辨率的掉帧率是否超过掉帧率阈值,如果是,就可以判定该终端无法播放该分辨率的视频,然后按照分辨率的大小依次比较,直至某个分辨率不超过掉帧率阈值,当该终端型号对应的某个播放分辨率同时满足硬解码成功和掉帧率不超过掉帧率阈值时,即可确定出该终端型号支持的硬解码的播放分辨率了;当该终端型号对应的某个播放分辨率满足掉帧率不超过掉帧率阈值,而不满足硬解码成功时,那么可以对该播放分辨率进行软解码。
进一步,如果从解码能力模型中查询不到某个终端型号时,那么就可以判定该终端型号为新型号,此时,可以将获取请求中的硬解码能力值与表2进行匹配,然后将对应的默认分辨率作为该终端型号支持的播放分辨率。
比如,某个终端型号为新型号,解码能力模型中没有匹配项,而该终端发送的获取请求中的硬解码能力值为5.2,那么就可以将4096*2160作为该终端支持的播放分辨率。
解码能力模型通过如下方式生成:
针对已播放任一视频的各个终端,获取各个终端在播放任一视频时的终端型号、是否硬解码成功、播放分辨率,以及掉帧次数,得到每个终端型号对应的至少一种播放分辨率,以及各种播放分辨率对应的播放总次数、硬解码失败总次数和掉帧总次数;
针对每个终端型号,基于播放总次数、硬解码失败总次数和掉帧总次数计算出各种播放分辨率对应的硬解码失败率和掉帧率;
基于每个终端型号对应的各种播放分辨率对应的硬解码失败率和掉帧率生成解码能力模型。
具体而言,终端在播放某个视频的时候,会将该终端的终端型号、是否硬解码成功、播放分辨率以及掉帧次数发送给服务器,这样,针对同一个视频,不同的终端播放之后,服务器就可以记录播放了该视频的各个终端型号、每个终型号对应的至少一种播放分辨率,以及采用各种播放分辨率播放的播放总次数、硬解码失败总次数和掉帧总次数。
比如,已播放过视频A的终端型号有型号一,型号一在播放视频A的时候使用的播放分辨率包括720*480、1280*720、1920*1080。720*480的播放总次数为6,硬解码总次数为6,硬解码失败总次数为0,掉帧总次数为0;1280*720的播放总次数为18,硬解码总次数为18,硬解码失败总次数为0,掉帧总次数为0;1920*1080的播放总次数为100,硬解码总次数为100,硬解码失败总次数为2,掉帧总次数为4。因此,型号一的解码能力模型可以如表3所示:
表3
进一步,在本发明实施例中可以设置硬解码失败率阈值和掉帧率阈值,当任一终端型号的任一播放分辨率对应的硬解码失败率超过了硬解码失败率阈值时,可判定该终端型号的该播放分辨率不支持硬解码,以及,当任一终端型号的任一播放分辨率对应的掉帧率超过了掉帧率阈值时,可判定该终端型号不支持该播放分辨率。
比如,终端每一次上报终端型号、是否硬解码成功、播放分辨率以及掉帧次数服务器就记录一次,当记录上报的累计数量少于1000时,由于数据不足,可判定该终端型号是支持对应的播放分辨率的;当累计数量大于1000时,如果该终端型号对于对应的播放分辨率的硬解码失败率大于30%,可判定该终端型号无法对对应的播放分辨率进行硬解码;当累计数量大于10000时,如果该终端型号对于对应的播放分辨率的掉帧率大于2%,可判定该终端型号不支持该播放分辨率。因此,表3也可以进一步优化,如表4所示:
表4
需要说明的是,解码能力模型除了可以包括上述信息之外,还可以包括其它信息,在实际应用中可以根据实际需求进行调整,本发明实施例对此不作限制。
进一步,解码能力模型可以通过信息处理系统生成、更新,而且,生成和更新可以被设置成定时任务,比如,每日凌晨可以生成解码能力模型,或者对已有的解码能力模型进行更新,以保证能力解码模型的新鲜度和可靠性。然后,将生成的解码能力模型或者更新后的解码能力模型进行存储,供策略服务使用。
在本发明一种优选实施例中,获取请求还包括终端的当前网络速度;
基于终端信息从各个版本的视频中确定出与终端相匹配的目标视频的步骤,还包括:
基于终端信息和当前网络速度从各个版本的视频中确定出与终端相匹配的目标视频。
具体而言,获取请求中还可以包括终端的当前网络速度,在确定目标视频时,可以基于终端信息和当前网络速度从各个版本的视频中确定出与终端相匹配的目标视频。这样,在通过终端信息确定出终端可以播放的至少一个视频版本后,再通过终端的当前网络速度从各个视频版本中再确定出当前网络速度可以流畅播放的视频版本,从而保证了视频的流畅性,提升了用户体验。
在本发明一种优选实施例中,当目标编码格式为第一编码格式时,基于各个版本中具有目标编码格式和目标分辨率的视频作为目标视频,包括:
将各个版本中具有第一编码格式和目标分辨率的视频,以及具有第二编码格式和目标分辨率的视频同时作为目标视频。
具体而言,为保证视频能够正常播放,当确定出与终端匹配的视频的版本为第一编码格式和目标分辨率时,还可以获取该目标分辨率对应的第二编码格式的视频,然后将二者同时作为目标视频。这样,即使在播放时由于终端出现意外情况无法播放第一编码格式的视频,也依然可以播放第二编码格式的视频,从而保证了视频能够正常播放,进一步提升了用户体验。
比如,在确定出了终端可以播放H.265编码格式、1080P的视频A后,可以将H.265编码格式、1080P的视频A,以及H.264编码格式、1080P的视频A同时作为目标视频。这样,即使终端无法播放H.265编码格式、1080P的视频A,也依然可以播放H.264编码格式、1080P的视频A。
步骤S304,将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。
服务器生成了视频播放地址后,即可将视频播放地址发送至终端,终端依据该视频播放地址获取目标视频,并播放目标视频。
如图4所示,在实际应用中,通过测试可知,在未使用本申请方案时,视频的平均码率为700,在使用本申请方案后,视频的平均码率为1267,视频的平均码率提升了81%,提升前后的视频视觉效果如图5所示。
进一步,由于本申请能够更准确的判断终端的硬解码能力,所以,H.265编码格式的视频下发占比较前大幅度提升,更加节省带宽。通过测试得到的视频播放CDN带宽的优化前后对比图如图6A、6B所示,相较于H.264,H.265的编码格式节省约30%带宽,理论带宽峰值节省(1.3Tbps+93.8Gbps)*89%*(1/70%-1)=543Gbps。
在本发明实施例中,当服务器接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频,再结合所述网络状态,从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址,即可将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。这样,当用户请求视频播放地址时,服务器可以根据请求中的终端信息确定出该终端的软解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
进一步,服务器获取各个终端上报的终端信息和播放视频时的播放指标,从而计算出不同的终端的软硬解码能力以及对不同播放分辨率的支持能力,并自动生成解码能力模型,以使得服务器基于解码能力模型确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力;同时,服务器可以持续获取终端上报的终端信息和播放指标,然后对解码能力模型自动进行更新,从而不需要对解码能力模型进行人为的维护,大大减少了人力成本和时间成本。
而且,由于能够精准地检测出终端是否具有硬解码能力,而硬编码格式的视频的体积较小,所以能够提高硬编码格式视频的下发占比,从而节省带宽。
在另一个实施例中提供了一种视频处理方法,如图7所示,应用于终端,该终端可以具有如下特点:
(1)在硬件体系上,设备具备中央处理器、存储器、输入部件和输出部件,也就是说,设备往往是具备通信功能的微型计算机设备。另外,还可以具有多种输入方式,诸如键盘、鼠标、触摸屏、送话器和摄像头等,并可以根据需要进行调整输入。同时,设备往往具有多种输出方式,如受话器、显示屏等,也可以根据需要进行调整;
(2)在软件体系上,设备必须具备操作系统,如Windows Mobile、Symbian、Palm、Android、iOS等。同时,这些操作系统越来越开放,基于这些开放的操作系统平台开发的个性化应用程序层出不穷,如通信簿、日程表、记事本、计算器以及各类游戏等,极大程度地满足了个性化用户的需求;
(3)在通信能力上,设备具有灵活的接入方式和高带宽通信性能,并且能根据所选择的业务和所处的环境,自动调整所选的通信方式,从而方便用户使用。设备可以支持GSM(Global System for Mobile Communication,全球移动通信系统)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、CDMA2000(Code Division MultipleAccess,码分多址)、TDSCDMA(Time Division-Synchronous Code Division MultipleAccess,时分同步码分多址)、Wi-Fi(Wireless-Fidelity,无线保真)以及WiMAX(WorldwideInteroperability for Microwave Access,全球微波互联接入)等,从而适应多种制式网络,不仅支持语音业务,更支持多种无线数据业务;
(4)在功能使用上,设备更加注重人性化、个性化和多功能化。随着计算机技术的发展,设备从“以设备为中心”的模式进入“以人为中心”的模式,集成了嵌入式计算、控制技术、人工智能技术以及生物认证技术等,充分体现了以人为本的宗旨。由于软件技术的发展,设备可以根据个人需求调整设置,更加个性化。同时,设备本身集成了众多软件和硬件,功能也越来越强大。
该方法包括:
步骤S701,当接收到视频播放指令时,生成获取视频播放地址的获取请求,获取请求包括终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值;
具体而言,终端中可以安装用于播放视频的应用程序,应用程序的界面中可以展示不同视频的视频信息,比如缩略图、视频名称等,当用户点击了任一视频的视频信息,即发起了播放该视频的视频播放指令,此时终端就可以基于该视频播放指令生成获取该视频的视频播放地址的获取请求。
步骤S702,将获取请求发送至服务器,以使得服务器基于终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将视频播放地址发送至终端;
终端生成了获取请求后将获取请求发送至服务器,服务器基于获取请求生成对应的视频播放地址,具体的生成方式可参考步骤S201~步骤S203,在此就不赘述了,然后将视频播放地址发送至终端。
步骤S703,接收视频播放地址,并基于视频播放地址进行视频播放。
终端依据该视频播放地址获取目标视频,并播放目标视频。
在本发明一种优选实施例中,基于视频播放地址进行视频播放,包括:
从视频播放地址获取对应的视频数据;
当调用预设的视频相关接口成功时,对视频数据进行硬解码,得到解码后的视频数据;
播放解码后的视频数据。
具体而言,终端从视频播放地址获取对应的视频数据,然后调用预设的视频相关接口,如果调用成功,则通过视频相关接口对视频数据进行硬解码,得到解码后的视频数据并播放;如果调用失败,则停止播放视频,并将终端的终端型号、播放分辨率以及硬解码失败发送至服务器。或者,如果调用失败,可以对视频数据进行软解码,如果解码成功,则得到解码后的视频数据并播放。
其中,调用预设的视频相关接口成功,包括:
调用预设的视频相关接口成功,或,预设的视频相关接口对视频数据进行硬解码成功;否则,判定调用预设的视频相关接口失败,并停止播放视频,以及将终端的终端型号、播放分辨率以及硬解码失败发送至服务器。
在实际应用中,在视频硬解码的过程中,存在判断视频相关接口支持硬解码,但实际调用视频相关接口的过程中发生异常的情况。如图8所示,视频相关接口在初始化以及在解码时均可能抛出异常,因此在视频相关接口初始化失败,或者采用视频相关接口对视频数据进行硬解码失败时,即可判定调用视频相关接口失败;在视频相关接口执行相关操作中监控到编码格式不支持抛出的异常,或者视频帧无法解析抛出的异常即可判定终端播放该视频失败。
在本发明一种优选实施例中,视频数据包括音频数据和图像数据,音频数据包括至少一帧音频帧,图像数据包括至少一帧图像帧;在播放解码后的视频数据的步骤之前,还包括:
获取每个音频帧的显示时间戳和每个图像帧的解码时间戳;
针对任一时间戳,检测图像帧的解码时间戳是否落后于音频帧的解码时间戳;
若是,则判定任一时间戳对应的图像帧超时;
将任一时间戳对应的图像帧丢弃,并将超时记录为一次掉帧;
将终端的终端型号、播放分辨率以及一次掉帧发送至服务器。
其中,视频数据可以包括音频数据和图像数据,音频数据包括至少一帧音频帧,图像数据包括至少一帧图像帧。通过视频相关接口对视频数据进行硬解码,即可得到包含各个音频帧的音频数据和包含各个图像帧的视频数据。
在视频播放的过程中,因为终端硬件性能的不足,视频解码过程中会出现卡顿掉帧的问题,导致视频播放卡顿。
由于CPU占有率、内存占有率、视频帧解码耗时等无法直观衡量播放性能,因此需要一种可量化评估机器播放性能的指标,以供上报服务器。
在本发明实施例中,通过统计视频画面掉帧率来评估终端的播放性能。
具体而言,基于解码音视频同步PTS(Presentation Time Stamp,显示时间戳),来检测视频解码调帧,直观的反映解码性能,进而评估终端的播放性能。
PTS用于表征播放器该在什么时候显示这一帧的数据,而DTS(Decoding TimeStamp,解码时间戳)用于表征播放器该在什么时候解码这一帧的数据。
如图9所示,视频在播放的过程中,视频相关接口会开启两个线程:音频解码线程与图像解码线程。正常情况下,图像帧的解码时间戳应该要比音频帧的解码时间戳早,视频帧解码完毕后会等待音频帧解码完成,以保证该视频帧和音频帧能够正常播放。如果视频帧的解码时间戳落后于音频帧的解码时间戳,就可以判定该视频帧是超时的,从而被丢弃无法展示,而用户直观的感受就是视频卡顿、掉帧。此时,终端会将本次超时记录为一次掉帧,并将终端的终端型号、播放分辨率以及一次掉帧发送至服务器。
在本发明实施例中,当终端接收到视频播放指令时,生成获取视频播放地址的获取请求,获取请求包括终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后将获取请求发送至服务器,以使得服务器基于终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将视频播放地址发送至终端,当接收到视频播放地址时,基于视频播放地址进行视频播放。由于获取请求包括终端信息和视频标识,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
进一步,终端在播放视频的过程中,可以上报终端信息和播放指标,使得服务器获取到各个终端上报的终端信息和播放视频时的播放指标后,计算出不同的终端的软硬解码能力以及对不同播放分辨率的支持能力,并自动生成解码能力模型,以使得服务器基于解码能力模型确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力;同时,终端可以持续上报的终端信息和播放指标,使得服务器对解码能力模型自动进行更新,从而不需要对解码能力模型进行人为的维护,大大减少了人力成本和时间成本。
而且,由于能够精准地检测出终端是否具有硬解码能力,而硬编码格式的视频的体积较小,所以能够提高硬编码格式视频的下发占比,从而节省带宽。
图10为本申请又一实施例提供的一种视频处理装置的结构示意图,如图10所示,本实施例的装置可以应用于服务器,该装置可以包括:
第一接收模块1001,用于接收终端发送的针对视频播放地址的获取请求;
提取模块1002,用于提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值;
确定模块1003,用于根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频;
匹配模块1004,用于结合网络状态,从各个版本的视频中确定出与终端相匹配的目标视频;
第一生成模块1005,用于基于目标视频生成视频播放地址;
第一发送模块1006,用于将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。
在本发明一种优选实施例中,终端信息还包括终端的终端型号;视频的版本包括视频的编码格式、分辨率以及码率;
匹配模块包括:
目标编码格式确定子模块,用于基于解码能力值确定出终端支持的目标编码格式;
目标分辨率确定子模块,用于基于预设的解码能力模型确定出与终端型号对应的目标分辨率;其中,解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率;
目标视频确定子模块,用于从各个版本中匹配出具有目标编码格式和目标分辨率的视频的集合;视频集合中的各个视频具有相同的目标编码格式和目标分辨率,且互不相同的码率;并将视频集合中符合所述网络状态的码率、且不超过码率阈值的视频确定为目标视频。
在本发明一种优选实施例中,编码格式包括第一编码格式和第二编码格式;
目标编码格式确定子模块具体用于:
若解码能力值大于预设的能力阈值,确定终端支持的编码格式为第一编码格式;
若解码能力值不大于预设的能力阈值,确定终端支持的编码格式为第二编码格式。
在本发明一种优选实施例中,目标分辨率确定子模块包括:
查询单元,用于依据终端型号查询解码能力模型中是否存在匹配项;
处理单元,用于获取终端型号对应的视频播放的至少两个播放分辨率,并将至少两个播放分辨率中最大的分辨率作为目标分辨率;或,将目标编码格式对应的默认分辨率作为目标分辨率。
在本发明一种优选实施例中,解码能力模型还包括针对每种视频的播放分辨率的播放指标,播放指标包括播放是否硬解码成功以及掉帧率;
解码能力模型通过如下方式生成:
针对已播放任一视频的各个终端,获取各个终端在播放任一视频时的终端型号、是否硬解码成功、播放分辨率,以及掉帧次数,得到每个终端型号对应的至少一种播放分辨率,以及各种播放分辨率对应的播放总次数、硬解码失败总次数和掉帧总次数;
针对每个终端型号,基于播放总次数、硬解码失败总次数和掉帧总次数计算出各种播放分辨率对应的硬解码失败率和掉帧率;
基于每个终端型号对应的各种播放分辨率对应的硬解码失败率和掉帧率生成解码能力模型。
在本发明一种优选实施例中,码率阈值通过如下方式生成:
每隔预设时间段获取各个终端各自上传的网络速度;
依据所有的网络速度计算出平均网络速度;
确定出与平均网络速度对应的码率,并将码率作为码率阈值。
在本发明一种优选实施例中,获取请求还包括终端的当前网络速度;
匹配模块还用于:
基于终端信息和当前网络速度从各个版本的视频中确定出与终端相匹配的目标视频。
在本发明一种优选实施例中,目标视频确定子模块还用于:
当目标编码格式为第一编码格式时,将各个版本中具有第一编码格式和目标分辨率的视频,以及具有第二编码格式和目标分辨率的视频同时作为目标视频。
本实施例的视频处理装置可执行本申请第一个实施例、第二个实施例所示的视频处理方法,其实现原理相类似,此处不再赘述。
在本发明实施例中,当服务器接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值,然后根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频,再结合所述网络状态,从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址,即可将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。这样,当用户请求视频播放地址时,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
进一步,服务器获取各个终端上报的终端信息和播放视频时的播放指标,从而计算出不同的终端的软硬解码能力以及对不同播放分辨率的支持能力,并自动生成解码能力模型,以使得服务器基于解码能力模型确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力;同时,服务器可以持续获取终端上报的终端信息和播放指标,然后对解码能力模型自动进行更新,从而不需要对解码能力模型进行人为的维护,大大减少了人力成本和时间成本。
而且,由于能够精准地检测出终端是否具有硬解码能力,而硬编码格式的视频的体积较小,所以能够提高硬编码格式视频的下发占比,从而节省带宽。
图11为本申请又一实施例提供的一种视频处理装置的结构示意图,如图11所示,本实施例的装置可以应用于服务器,该装置可以包括:
第二接收模块1101,用于接收视频播放指令;
第二生成模块1102,用于生成获取视频播放地址的获取请求,获取请求包括终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值;
第二发送模块1103,用于将获取请求发送至服务器,以使得服务器基于终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将视频播放地址发送至终端;
第二接收模块,还用于接收视频播放地址;
播放模块1104,用于基于视频播放地址进行视频播放。
在本发明一种优选实施例中,播放模块包括:
视频数据获取子模块,用于从视频播放地址获取对应的视频数据;
调用子模块,用于当调用预设的视频相关接口成功时,对视频数据进行硬解码,得到解码后的视频数据;
播放子模块,用于播放解码后的视频数据。
在本发明一种优选实施例中,调用预设的视频相关接口成功,包括:
调用预设的视频相关接口成功,或,预设的视频相关接口对视频数据进行硬解码成功;否则,判定调用预设的视频相关接口失败,并停止播放视频,以及将终端的终端型号、播放分辨率以及硬解码失败发送至服务器。
在本发明一种优选实施例中,视频数据包括音频数据和图像数据,音频数据包括至少一帧音频帧,图像数据包括至少一帧图像帧;
播放模块还包括:
在播放解码后的视频数据的步骤之前,获取每个音频帧的显示时间戳和每个图像帧的解码时间戳;
解码时间戳获取子模块,用于针对任一时间戳,检测图像帧的解码时间戳是否落后于音频帧的解码时间戳;
判定子模块,用于判定任一时间戳对应的图像帧超时;
丢弃子模块,用于将任一时间戳对应的图像帧丢弃,并将超时记录为一次掉帧;
发送子模块,用于将终端的终端型号、播放分辨率以及一次掉帧发送至服务器。
本实施例的视频处理装置可执行本申请第三个实施例所示的视频处理方法,其实现原理相类似,此处不再赘述。
在本发明实施例中,当终端接收到视频播放指令时,生成获取视频播放地址的获取请求,获取请求包括终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后将获取请求发送至服务器,以使得服务器基于终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将视频播放地址发送至终端,当接收到视频播放地址时,基于视频播放地址进行视频播放。由于获取请求包括终端信息和视频标识,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
进一步,终端在播放视频的过程中,可以上报终端信息和播放指标,使得服务器获取到各个终端上报的终端信息和播放视频时的播放指标后,计算出不同的终端的软硬解码能力以及对不同播放分辨率的支持能力,并自动生成解码能力模型,以使得服务器基于解码能力模型确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力;同时,终端可以持续上报的终端信息和播放指标,使得服务器对解码能力模型自动进行更新,从而不需要对解码能力模型进行人为的维护,大大减少了人力成本和时间成本。
而且,由于能够精准地检测出终端是否具有硬解码能力,而硬编码格式的视频的体积较小,所以能够提高硬编码格式视频的下发占比,从而节省带宽。
本申请的又一实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:当服务器接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频,再结合网络状态,从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址,即可将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。这样,当用户请求视频播放地址时,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
在一个可选实施例中提供了一种电子设备,如图12所示,图12所示的电子设备12000包括:处理器12001和存储器12003。其中,处理器12001和存储器12003相连,如通过总线12002相连。可选地,电子设备12000还可以包括收发器12004。需要说明的是,实际应用中收发器12004不限于一个,该电子设备12000的结构并不构成对本申请实施例的限定。
处理器12001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器12001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线12002可包括一通路,在上述组件之间传送信息。总线12002可以是PCI总线或EISA总线等。总线12002可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器12003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器12003用于存储执行本申请方案的应用程序代码,并由处理器12001来控制执行。处理器12001用于执行存储器12003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,当服务器接收到终端发送的针对视频播放地址的获取请求时,提取获取请求中的终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后根据终端设备的解码能力值并基于预设的解码能力模型,确定出视频标识对应的各个版本的视频,再结合网络状态从各个版本的视频中确定出与终端相匹配的目标视频,并基于目标视频生成视频播放地址,即可将视频播放地址发送至终端,以使得终端基于视频播放地址进行视频播放。这样,当用户请求视频播放地址时,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
本申请的又一实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:当终端接收到视频播放指令时,生成获取视频播放地址的获取请求,获取请求包括终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后将获取请求发送至服务器,以使得服务器基于终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将视频播放地址发送至终端,当接收到视频播放地址时,基于视频播放地址进行视频播放。由于获取请求包括终端信息和视频标识,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
在一个可选实施例中提供了一种电子设备,如图13所示,图13所示的电子设备13000包括:处理器13001和存储器13003。其中,处理器13001和存储器13003相连,如通过总线13002相连。可选地,电子设备13000还可以包括收发器13004。需要说明的是,实际应用中收发器13004不限于一个,该电子设备13000的结构并不构成对本申请实施例的限定。
处理器13001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器13001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线13002可包括一通路,在上述组件之间传送信息。总线13002可以是PCI总线或EISA总线等。总线13002可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器13003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器13003用于存储执行本申请方案的应用程序代码,并由处理器13001来控制执行。处理器13001用于执行存储器13003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,当终端接收到视频播放指令时,生成获取视频播放地址的获取请求,获取请求包括终端信息和视频标识,终端信息至少包括网络状态以及终端设备的解码能力值,然后将获取请求发送至服务器,以使得服务器基于终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将视频播放地址发送至终端,当接收到视频播放地址时,基于视频播放地址进行视频播放。由于获取请求包括终端信息和视频标识,服务器可以根据请求中的终端信息确定出该终端的软硬解能力以及对不同播放分辨率、编码格式的支持能力,并结合当前的网络状态,最终自动的、动态的确定出一个终端能够正常播放且高清晰度的目标视频并基于该目标视频生成视频播放地址,以使得终端基于该视频播放地址播放该目标视频,不仅提高了视频播放的成功率,也提升了视频播放的清晰度,提升了用户的观看体验。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种视频处理方法,其特征在于,应用于服务器,包括:
当接收到终端发送的针对视频播放地址的获取请求时,提取所述获取请求中的终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出所述视频标识对应的各个版本的视频;所述解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率,以及针对每种视频的播放分辨率的播放指标,所述播放指标包括播放是否硬解码成功以及掉帧率;每个终端型号针对每种视频的播放分辨率是否解码成功以及掉帧率是基于所述终端型号的终端在播放所述视频时对应的播放总次数、硬解码失败总次数和掉帧总次数确定的;
结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频,并基于所述目标视频生成视频播放地址;
将所述视频播放地址发送至所述终端,以使得所述终端基于所述视频播放地址进行视频播放。
2.根据权利要求1所述的视频处理方法,其特征在于,所述终端信息还包括所述终端的终端型号;视频的版本包括视频的编码格式、分辨率以及码率;
所述结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频的步骤,包括:
基于所述解码能力值确定出所述终端支持的目标编码格式;
基于预设的解码能力模型确定出与所述终端型号对应的目标分辨率;其中;
从各个版本中匹配出具有所述目标编码格式和所述目标分辨率的视频的集合;所述视频集合中的各个视频具有相同的所述目标编码格式和所述目标分辨率,且互不相同的码率;
将视频集合中符合所述网络状态的码率、且不超过码率阈值的视频确定为目标视频。
3.根据权利要求2所述的视频处理方法,其特征在于,所述编码格式包括第一编码格式和第二编码格式;
所述基于所述解码能力值确定出所述终端支持的目标编码格式的步骤,包括:
若所述解码能力值大于预设的能力阈值,确定所述终端支持的编码格式为第一编码格式;
若所述解码能力值不大于预设的能力阈值,确定所述终端支持的编码格式为第二编码格式。
4.根据权利要求2所述的视频处理方法,其特征在于,所述基于预设的解码能力模型确定出与所述终端型号对应的目标分辨率的步骤,包括:
依据所述终端型号查询所述解码能力模型中是否存在匹配项;
若是,则获取所述终端型号对应的视频播放的所有播放分辨率,并将所述所有播放分辨率中最大的分辨率作为目标分辨率;
若否,则将所述目标编码格式对应的默认分辨率作为目标分辨率。
5.根据权利要求2所述的视频处理方法,其特征在于,所述解码能力模型通过如下方式生成:
针对已播放任一视频的各个终端,获取各个终端在播放所述任一视频时的终端型号、是否硬解码成功、播放分辨率,以及掉帧次数,得到每个终端型号对应的至少一种播放分辨率,以及各种播放分辨率对应的播放总次数、硬解码失败总次数和掉帧总次数;
针对每个终端型号,基于所述播放总次数、硬解码失败总次数和掉帧总次数计算出各种播放分辨率对应的硬解码失败率和掉帧率;
基于每个终端型号对应的各种播放分辨率对应的硬解码失败率和掉帧率生成解码能力模型。
6.根据权利要求2所述的视频处理方法,其特征在于,所述码率阈值通过如下方式生成:
每隔预设时间段获取各个终端各自上传的网络速度;
依据所有的网络速度计算出平均网络速度;
确定出与所述平均网络速度对应的码率,并将所述码率作为码率阈值。
7.根据权利要求1-5任一所述的视频处理方法,其特征在于,所述获取请求还包括所述终端的当前网络速度;
所述基于所述终端信息从各个版本的视频中确定出与所述终端相匹配的目标视频的步骤,还包括:
基于所述终端信息和所述当前网络速度从各个版本的视频中确定出与所述终端相匹配的目标视频。
8.根据权利要求3所述的视频处理方法,其特征在于,当目标编码格式为第一编码格式时,基于各个版本中具有所述目标编码格式和所述目标分辨率的视频作为目标视频,包括:
将各个版本中具有所述第一编码格式和所述目标分辨率的视频,以及具有所述第二编码格式和所述目标分辨率的视频同时作为目标视频。
9.一种视频处理方法,其特征在于,应用于终端,包括:
当接收到视频播放指令时,生成获取视频播放地址的获取请求,所述获取请求包括终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
将所述获取请求发送至服务器,以使得所述服务器基于所述终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将所述视频播放地址发送至所述终端;所述解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率,以及针对每种视频的播放分辨率的播放指标,所述播放指标包括播放是否硬解码成功以及掉帧率;每个终端型号针对每种视频的播放分辨率是否解码成功以及掉帧率是基于所述终端型号的终端在播放所述视频时对应的播放总次数、硬解码失败总次数和掉帧总次数确定的;
接收所述视频播放地址,并基于所述视频播放地址进行视频播放。
10.根据权利要求9所述的视频处理方法,其特征在于,基于所述视频播放地址进行视频播放,包括:
从所述视频播放地址获取对应的视频数据;
当调用预设的视频相关接口成功时,对所述视频数据进行硬解码,得到解码后的视频数据;
播放所述解码后的视频数据。
11.根据权利要求10所述的视频处理方法,其特征在于,调用预设的视频相关接口成功,包括:
调用预设的视频相关接口成功,或,预设的视频相关接口对所述视频数据进行硬解码成功;否则,判定调用预设的视频相关接口失败,并停止播放所述视频,以及将所述终端的终端型号、播放分辨率以及硬解码失败发送至所述服务器。
12.根据权利要求10所述的视频处理方法,其特征在于,所述视频数据包括音频数据和图像数据,所述音频数据包括至少一帧音频帧,所述图像数据包括至少一帧图像帧;
在播放所述解码后的视频数据的步骤之前,还包括:
获取每个音频帧的显示时间戳和每个图像帧的解码时间戳;
针对任一时间戳,检测图像帧的解码时间戳是否落后于音频帧的解码时间戳;
若是,则判定所述任一时间戳对应的图像帧超时;
将所述任一时间戳对应的图像帧丢弃,并将所述超时记录为一次掉帧;
将所述终端的终端型号、播放分辨率以及所述一次掉帧发送至所述服务器。
13.一种视频处理装置,其特征在于,应用于服务器,包括:
第一接收模块,用于接收终端发送的针对视频播放地址的获取请求;
提取模块,用于提取所述获取请求中的终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
确定模块,用于根据所述终端设备的解码能力值并基于预设的解码能力模型,确定出所述视频标识对应的各个版本的视频;所述解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率,以及针对每种视频的播放分辨率的播放指标,所述播放指标包括播放是否硬解码成功以及掉帧率;每个终端型号针对每种视频的播放分辨率是否解码成功以及掉帧率是基于所述终端型号的终端在播放所述视频时对应的播放总次数、硬解码失败总次数和掉帧总次数确定的;
匹配模块,用于结合所述网络状态,从各个版本的视频中确定出与所述终端相匹配的目标视频;
第一生成模块,用于基于所述目标视频生成视频播放地址;
第一发送模块,用于将所述视频播放地址发送至所述终端,以使得所述终端基于所述视频播放地址进行视频播放。
14.一种视频处理装置,其特征在于,应用于终端,包括:
第二接收模块,用于接收视频播放指令;
第二生成模块,用于生成获取视频播放地址的获取请求,所述获取请求包括终端信息和视频标识,所述终端信息至少包括网络状态以及终端设备的解码能力值;
第二发送模块,用于将所述获取请求发送至服务器,以使得所述服务器基于所述终端设备的解码能力值、基于预设的解码能力模型以及网络状态,生成对应的视频播放地址,并将所述视频播放地址发送至所述终端;所述解码能力模型包括至少一个终端型号,每个终端型号对应至少一种视频的播放分辨率,以及针对每种视频的播放分辨率的播放指标,所述播放指标包括播放是否硬解码成功以及掉帧率;每个终端型号针对每种视频的播放分辨率是否解码成功以及掉帧率是基于所述终端型号的终端在播放所述视频时对应的播放总次数、硬解码失败总次数和掉帧总次数确定的;
所述第二接收模块,还用于接收所述视频播放地址;
播放模块,用于基于所述视频播放地址进行视频播放。
15.一种电子设备,其特征在于,其包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述权利要求1-12中任一项所述的视频处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010317630.7A CN113542795B (zh) | 2020-04-21 | 2020-04-21 | 视频处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010317630.7A CN113542795B (zh) | 2020-04-21 | 2020-04-21 | 视频处理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542795A CN113542795A (zh) | 2021-10-22 |
CN113542795B true CN113542795B (zh) | 2023-04-18 |
Family
ID=78093911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010317630.7A Active CN113542795B (zh) | 2020-04-21 | 2020-04-21 | 视频处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542795B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529491B (zh) * | 2022-01-10 | 2023-06-06 | 荣耀终端有限公司 | 一种音视频解码的方法、音视频解码的装置以及终端设备 |
CN114827668B (zh) * | 2022-03-23 | 2024-02-13 | 百果园技术(新加坡)有限公司 | 基于解码能力的视频档位选择方法、装置及设备 |
CN115379261B (zh) * | 2022-08-10 | 2024-03-12 | 微梦创科网络科技(中国)有限公司 | 视频的发送方法、装置、电子设备及存储介质 |
CN115550690B (zh) * | 2022-12-02 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 帧率调整方法、装置、设备及存储介质 |
CN116600090B (zh) * | 2023-07-17 | 2023-09-19 | 微网优联科技(成都)有限公司 | 一种用于ipc网络摄像头的运维管控方法及系统 |
CN116781951B (zh) * | 2023-08-24 | 2023-12-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种清晰度调节方法、装置和服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754370A (zh) * | 2013-12-31 | 2015-07-01 | 广州金山网络科技有限公司 | 跨终端的多媒体数据传输方法、装置、客户端和系统 |
CN105917658A (zh) * | 2014-01-23 | 2016-08-31 | 索尼公司 | 解码设备、解码方法、编码设备和编码方法 |
CN107396125A (zh) * | 2017-05-27 | 2017-11-24 | 联发科技(新加坡)私人有限公司 | 解码器资源分配方法及装置 |
CN107431921A (zh) * | 2015-03-17 | 2017-12-01 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
CN109217980A (zh) * | 2017-07-03 | 2019-01-15 | 腾讯科技(深圳)有限公司 | 一种编解码能力配置方法、设备和计算机存储介质 |
WO2019237821A1 (zh) * | 2018-06-15 | 2019-12-19 | 腾讯科技(深圳)有限公司 | 虚拟场景的场景图像传输方法、装置、计算机设备及计算机可读存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266311B2 (en) * | 2004-07-29 | 2012-09-11 | Microsoft Corporation | Strategies for transmitting in-band control information |
US8897371B2 (en) * | 2006-04-04 | 2014-11-25 | Qualcomm Incorporated | Video decoding in a receiver |
CN100515068C (zh) * | 2006-05-23 | 2009-07-15 | 中国科学院声学研究所 | 视频播放中的静态丢帧方法 |
CN101207468B (zh) * | 2006-12-19 | 2010-07-21 | 华为技术有限公司 | 丢帧隐藏方法、系统和装置 |
CN101951517B (zh) * | 2010-09-27 | 2014-02-26 | 深圳市融创天下科技股份有限公司 | 一种视频解码和播放的方法、系统、终端设备 |
CN102761736A (zh) * | 2011-04-29 | 2012-10-31 | 腾讯科技(深圳)有限公司 | 视频解码方法和装置 |
CN103024441B (zh) * | 2011-09-27 | 2017-10-31 | 海尔集团公司 | 一种移动终端播放电视节目的方法 |
CN103179438B (zh) * | 2011-12-20 | 2015-12-16 | 中国移动通信集团上海有限公司 | 视频播放首次接入码率的确定方法及装置 |
CN103139609B (zh) * | 2013-02-01 | 2016-07-06 | 深圳市深信服电子科技有限公司 | 对远程应用视频播放进行优化的方法和装置 |
CN104113777B (zh) * | 2014-08-01 | 2018-06-05 | 广州猎豹网络科技有限公司 | 一种音频流解码方法及装置 |
CN108093197B (zh) * | 2016-11-21 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 用于信息分享的方法、系统及机器可读介质 |
CN106603543B (zh) * | 2016-12-22 | 2019-08-09 | 努比亚技术有限公司 | 校正流媒体音视频同步的方法及装置 |
CN107948740B (zh) * | 2017-10-30 | 2020-08-28 | 广州虎牙信息科技有限公司 | 视频播放控制方法、装置及终端 |
CN110677727B (zh) * | 2019-09-10 | 2022-05-10 | 北京奇艺世纪科技有限公司 | 音视频播放方法、装置、电子设备及存储介质 |
-
2020
- 2020-04-21 CN CN202010317630.7A patent/CN113542795B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754370A (zh) * | 2013-12-31 | 2015-07-01 | 广州金山网络科技有限公司 | 跨终端的多媒体数据传输方法、装置、客户端和系统 |
CN105917658A (zh) * | 2014-01-23 | 2016-08-31 | 索尼公司 | 解码设备、解码方法、编码设备和编码方法 |
CN107431921A (zh) * | 2015-03-17 | 2017-12-01 | 索尼公司 | 信息处理设备、信息处理方法和程序 |
CN107396125A (zh) * | 2017-05-27 | 2017-11-24 | 联发科技(新加坡)私人有限公司 | 解码器资源分配方法及装置 |
CN109217980A (zh) * | 2017-07-03 | 2019-01-15 | 腾讯科技(深圳)有限公司 | 一种编解码能力配置方法、设备和计算机存储介质 |
WO2019237821A1 (zh) * | 2018-06-15 | 2019-12-19 | 腾讯科技(深圳)有限公司 | 虚拟场景的场景图像传输方法、装置、计算机设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113542795A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113542795B (zh) | 视频处理方法、装置、电子设备及计算机可读存储介质 | |
CN112135140B (zh) | 视频清晰度识别方法、电子设备及存储介质 | |
RU2624641C2 (ru) | Способ и устройство для регулировки качества видео на основе сетевой среды | |
CN108337127B (zh) | 应用性能监控方法、系统、终端及计算机可读存储介质 | |
CN110662017B (zh) | 一种视频播放质量检测方法和装置 | |
CN104639951A (zh) | 视频码流的抽帧处理方法及装置 | |
CN113225538A (zh) | 监控视频播放方法、装置及服务设备 | |
CN111614954A (zh) | 流媒体的指标采集处理方法、装置、计算机及存储介质 | |
CN114189700A (zh) | 直播卡顿提示方法、装置、计算机设备和存储介质 | |
CN115454637A (zh) | 图像渲染方法、装置、设备和介质 | |
US20160267624A1 (en) | Information terminal and image display system | |
CN111741247B (zh) | 一种录像回放的方法、装置及计算机设备 | |
CN102428701A (zh) | 捕捉数字图像的方法和图像捕捉装置 | |
CN112040090A (zh) | 视频流处理方法、装置、电子设备和存储介质 | |
CN114257572A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN111093091A (zh) | 视频处理方法、服务器及系统 | |
CN112911390B (zh) | 一种视频数据的播放方法及终端设备 | |
CN107734278B (zh) | 一种视频回放方法及相关装置 | |
CN103974087B (zh) | 视频图像文件压缩系统、客户端及方法 | |
CN116980662A (zh) | 流媒体播放方法、装置、电子设备、存储介质及程序产品 | |
WO2022193141A1 (zh) | 多媒体文件的播放方法及相关装置 | |
CN108024121B (zh) | 语音弹幕同步方法和系统 | |
CN112118473B (zh) | 视频弹幕显示方法、装置、计算机设备及可读存储介质 | |
CN112954374A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
CN117294690B (zh) | 一种评估QoE的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40053995 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |