CN113613044B - 视频播放方法、装置、存储介质及电子设备 - Google Patents
视频播放方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113613044B CN113613044B CN202110820877.5A CN202110820877A CN113613044B CN 113613044 B CN113613044 B CN 113613044B CN 202110820877 A CN202110820877 A CN 202110820877A CN 113613044 B CN113613044 B CN 113613044B
- Authority
- CN
- China
- Prior art keywords
- video
- function
- decryption
- browser
- copying
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006870 function Effects 0.000 claims description 186
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 238000002347 injection Methods 0.000 claims description 3
- 239000007924 injection Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/74—Browsing; Visualisation therefor
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/26606—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4408—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44213—Monitoring of end-user related data
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种视频播放方法、装置、存储介质及电子设备,涉及互联网技术领域,该方法包括:通过浏览器的外接接口打开浏览器页面;在所述浏览器页面中注入视频播放库的框架代码;通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放。本申请便捷地降低视频解密播放耗时,减少任务工作量,降低视频解密播放工作成本。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种视频播放方法、装置、存储介质及电子设备。
背景技术
随着视频播放技术的发展,在浏览器页面中播放视频的需求普遍出现在各行业中,而在视频播放过程中通常存在播放加密视频的需求,实现页面中对加密视频的有效播放十分重要。
目前,很多浏览器页面采用外接解密插件实现加密视频的解密播放,但是,很多浏览器对外接解密插件不直接支持,需要依托浏览器中插件框架在浏览器中重新实现外接解密插件,并且需要实现内容解密框架,这样存在视频解密播放耗时及任务工作量大的问题。
发明内容
本申请实施例提供一种方案,可以便捷地降低视频解密播放耗时,减少任务工作量,降低视频解密播放工作成本。
为解决上述技术问题,本申请实施例提供以下技术方案:
根据本申请的一个实施例,一种视频播放方法,其包括:通过浏览器的外接接口打开浏览器页面;在所述浏览器页面中注入视频播放库的框架代码;通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放。
在本申请的一些实施例中,所述基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放,包括:当所述解密功能函数对所述加密视频进行解密得到证书请求地址时,通过所述复写功能函数获取所述证书请求地址;获取所述浏览器页面中对所述加密视频创建的视频标签;将所述证书请求地址及所述视频标签输入所述框架代码中,以触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放。
在本申请的一些实施例中,所述获取所述浏览器页面中对所述加密视频创建的视频标签,包括:对所述浏览器页面中创建视频标签的服务类进行反射处理,得到反射函数;基于所述反射函数获取所述服务类对所述加密视频创建的视频标签。
在本申请的一些实施例中,所述将所述证书请求地址及所述视频标签输入所述框架代码中,包括:基于所述证书请求地址构建端口数据;构建所述框架代码对应的入口函数;通过所述入口函数将所述端口数据及所述视频标签输入所述框架代码中。
在本申请的一些实施例中,所述框架代码中包括解密服务代码及播放服务代码;所述触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放,包括:触发所述框架代码中的所述解密服务代码在所述浏览器上运行,以根据所述端口数据向数字版权管理系统发送证书请求,并接收所述数字版权管理系统响应所述证书请求返回的数字证书,基于所述数字证书对所述加密视频进行解密;在所述浏览器上触发所述播放服务代码的运行,以根据所述视频标签对解密得到的视频进行播放。
在本申请的一些实施例中,所述外接解密插件插件包括数字版权管理插件;所述通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数,包括:监测所述浏览器页面是否调用所述数字版权管理插件的解密功能函数对所述加密视频进行解密;当监测到对所述加密视频进行解密时,触发所述框架代码对所述解密功能函数进行复写处理,得到复写功能函数。
在本申请的一些实施例中,所述外接解密插件插件包括数字版权管理插件;所述通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数,包括:获取所述数字版权管理插件;创建所述数字版权管理插件的解密功能函数对应的接口;在所述框架代码中创建调用所述接口的调用函数,以将所述调用函数作为所述复写功能函数。
根据本申请的一个实施例,一种视频播放装置,其包括:打开模块,用于通过浏览器的外接接口打开浏览器页面;注入模块,用于在所述浏览器页面中注入视频播放库的框架代码;复写模块,用于通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;播放模块,用于基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放。
根据本申请的另一实施例,一种存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行本申请实施例所述的方法。
根据本申请的另一实施例,一种电子设备可以包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行本申请实施例所述的方法。
本申请实施例中,通过浏览器的外接接口打开浏览器页面;在浏览器页面中注入视频播放库的框架代码;通过框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;基于复写功能函数,在浏览器上通过框架代码对加密视频进行解密及播放。
以这种方式,通过浏览器的外接接口打开浏览器页面时,将视频播放库(即dash.js)的框架代码便捷地注入浏览器页面,通过浏览器支撑该框架代码的运行,在浏览器中通过该框架代码的提供能力对外接解密插件的解密功能函数进行复写处理,得到复写功能函数实现解密功能,进而不必在浏览器中重新实现外接插件,不必实现内容解密框架,便可以实现视频解密能力,最后,基于复写功能函数在浏览器源码的支撑下通过该框架代码便可以对视频进行解密及播放,将传统的通过外接插件的解密及播放流程转接到浏览器原生的解密及播放流程,基于浏览器源码,不依赖其他模块,不损失性能的基础上实现对加密格式的视频播放。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的系统的示意图。
图2示出了根据本申请的一个实施例的视频播放方法的流程图。
图3示出了根据本申请的一个实施例的视频播放装置的框图。
图4示出了根据本申请的一个实施例的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
图1示出了可以应用本申请实施例的系统100的示意图。如图1所示,系统100可以包括服务器101及终端102。终端102可以是任意的计算机设备,例如电脑、手机、智能手表以及家电设备等。服务器101可以是服务器集群或者云服务器等。一个示例中,终端102为智能电视,服务器101为云服务器。服务器101与终端102之间可以通过有线或者无线连接的方式直接或间接的连接。
终端102上可以安装浏览器,通过浏览器可以进行播放视频,播放的视频的视频资源文件可以由服务器101下发至终端102或者终端102从服务器101请求需要的视频的视频资源文件。
本示例的一种实施方式中,终端102可以通过浏览器的外接接口打开浏览器页面;在浏览器页面中注入视频播放库的框架代码;通过框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;基于复写功能函数,在浏览器上通过框架代码对加密视频进行解密及播放。
以这种方式,通过浏览器的外接接口打开浏览器页面时,将视频播放库(即dash.js)的框架代码便捷地注入浏览器页面,通过浏览器支撑该框架代码的运行,在浏览器中通过该框架代码的提供能力对外接解密插件的解密功能函数进行复写处理,得到复写功能函数实现解密功能,进而不必在浏览器中重新实现外接插件,不必实现内容解密框架,便可以实现视频解密能力,最后,基于复写功能函数在浏览器源码的支撑下通过该框架代码便可以对视频进行解密及播放,将传统的通过外接插件的解密及播放流程转接到浏览器原生的解密及播放流程,基于浏览器源码,不依赖其他模块,不损失性能的基础上实现对加密格式的视频播放。
图2示意性示出了根据本申请的一个实施例的视频播放方法的流程图。该视频播放方法的执行主体可以是任意的设备,例如图1所示的第一终端102。
如图2所示,该视频播放方法可以包括步骤S210至步骤S240。
步骤S210,通过浏览器的外接接口打开浏览器页面;
步骤S220,在浏览器页面中注入视频播放库的框架代码;
步骤S230,通过框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;
步骤S240,基于复写功能函数,在浏览器上通过框架代码对加密视频进行解密及播放。
下面描述进行视频播放时,所进行的各步骤的具体过程。
在步骤S210中,通过浏览器的外接接口打开浏览器页面。
本示例的实施方式中,终端上的应用(APP)可以通过浏览器的外接接口打开浏览器页面,该浏览器页面可以是html页面,通过打开该浏览器页面以对待播放的视频进行播放。
终端上的应用可以响应于目标视频播放命令,通过浏览器的外接接口打开浏览器页面,该目标视频播放指令可以是用户在应用中通过点击等操作触发目标视频的播放时生成的。
通常很多视频是基于数字版权管理(DRM)技术通过一定的安全算法/协议与安全管理手段实现对数字内容(电子书、视频、音频和图片等)的进行加密保护的加密视频,使加密视频在未经授权和允许的条件下不能使用、复制和分发等,可以确保数字内容在移动网内的传播,保证内容提供商的利益。
浏览器页面在播放加密视频时,需要对视频进行解密及播放。而通常原生的浏览器中的页面需要依赖外接解密插件(例如DrmAgent插件)的来实现加密视频的解密,但是,原生的浏览器并不直接支持外接解密插件(例如DrmAgent插件),需要依托浏览器插件框架重新实现该插件,并且需要实现内容解密框架,这个过程非常耗时耗力。以下基于后续步骤中的实施例,至少可以解决这些技术问题,并实现更好的视频播放效果。
在步骤S220中,在浏览器页面中注入视频播放库的框架代码。
本示例的实施方式中,视频播放库即dash.js库,视频播放库的框架代码为js代码,获取视频播放库的框架代码注入正在运行的浏览器页面中,可以使得浏览器支持视频播放库的框架代码的运行。视频播放库(即dash.js)的框架代码可以便捷地注入浏览器页面,在浏览器支撑该框架代码的运行,使得浏览器中转接该框架代码的能力。
在步骤S230中,通过框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数。
本示例的实施方式中,外接解密插件可以对加密视频进行解密处理,外接解密插件在解密时调用其对应的解密功能函数进行解密处理,解密功能函数可以对加密视频进行处理获得加密视频的证书请求地址,该证书请求地址即请求证书的地址,也就是需要发送请求证书的服务器地址。
通过触发该框架代码的复写接口,可以对该解密功能函数进行复写处理,在浏览器中生成一个复写功能函数,基于复写功能函数浏览器获得与该解密功能函数相同的能力,在解密功能函数获得证书请求地址时,浏览器基于该复写功能函数便可以获取证书请求地址。
一种实施例中,外接解密插件插件包括数字版权管理插件;步骤S230,通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数,包括:
监测浏览器页面是否调用数字版权管理插件的解密功能函数对加密视频进行解密;当监测到对加密视频进行解密时,触发框架代码对解密功能函数进行复写处理,得到复写功能函数。
外接解密插件插件包括数字版权管理插件,数字版权管理插件即DrmAgent插件,通常浏览器页面在打开加密视频时可以自动调用数字版权管理插件解密视频,数字版权管理插件会调用其解密功能函数(即sendDRMMessage函数)进行解密。
此时,当检测到调用解密功能函数对加密视频进行解密时,触发框架代码对解密功能函数进行复写处理,可以在需要时进行动态复写,通过复写处理注入浏览器页面的框架代码中会复写解密功能函数(即sendDRMMessage函数),得到复写功能函数,进而,浏览器页面就会调用到该复写功能函数的内容,进而获取到解密功能函数(即sendDRMMessage函数)获取的加密视频的解密地址信息(即message信息),该解密地址信息中包括证书请求地址。
一种实施例中,外接解密插件插件包括数字版权管理插件;步骤S230,通过框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数,包括:
获取数字版权管理插件;创建数字版权管理插件的解密功能函数对应的接口;在框架代码中创建调用接口的调用函数,以将调用函数作为复写功能函数。
通过数字版权管理插件(即DrmAgent插件),可以在其解密功能函数(即sendDRMMessage函数)实现中对接调用接口(可以是Java接口),然后,可以通过系统通道(例如android通道)调用到框架代码的接口,继而可以在框架代码中创建调用接口的调用函数,将调用函数作为间接的复写功能函数。
浏览器页面存在结构较复杂的可能性,存在不能够直接动态触发复写处理的可能,会无法获取到证书请求地址。通过该实施例可以间接进行复写处理,得到一个间件的复写功能函数,可以保证获取到证书请求地址。
在步骤S240中,基于复写功能函数,在浏览器上通过框架代码对加密视频进行解密及播放。
本示例的实施方式中,基于复写功能函数获得与该解密功能函数相同的能力,在解密功能函数获得证书请求地址时,浏览器基于该复写功能函数便可以获取证书请求地址。
进而,在浏览器可以基于复写功能函数获取证书请求地址,根据证书请求地址获取解密加密视频的证书,然后,在浏览器源码的支撑下运行框架代码对视频进行解密及播放。进而不必在浏览器中重新实现外接插件,不必实现内容解密框架,便可以实现视频解密能力,最后,基于复写功能函数在浏览器源码的支撑下通过该框架代码便可以对视频进行解密及播放,将传统的通过外接插件的解密及播放流程转接到浏览器原生的解密及播放流程,基于浏览器源码,不依赖其他模块,不损失性能的基础上实现对加密格式的视频播放。
一种实施例中,步骤S240,基于复写功能函数,在浏览器上通过框架代码对加密视频进行解密及播放,包括:
当解密功能函数对加密视频进行解密得到证书请求地址时,通过复写功能函数获取证书请求地址;获取浏览器页面中对加密视频创建的视频标签;将证书请求地址及视频标签输入框架代码中,以触发框架代码在浏览器上对加密视频进行解密及播放。
复写功能函数获得与该解密功能函数相同的能力,在解密功能函数获得证书请求地址的信息时,浏览器可以基于该复写功能函数便可以同时获取到证书请求地址。浏览器页面针对加密视频会创建对应的视频标签,视频标签用来定义播放器以对视频进行播放。
浏览器中获取到证书请求地址及视频标签后,将证书请求地址及视频标签输入框架代码中,便可以使得框架代码获得解密及播放所需信息,触发框架代码中在浏览器上对加密视频进行解密及播放。
一种实施例中,获取浏览器页面中对加密视频创建的视频标签,包括:
对浏览器页面中创建视频标签的服务类进行反射处理,得到反射函数;基于反射函数获取服务类对加密视频创建的视频标签。
浏览器页面中包含服务类用于创建视频标签,通过反射式机制对该服务类进行反射调用设置,设置一个反射函数便可以使用hook方式获取到视频标签(即video标签)创建的时机,反射函数可以反射调用到video_node,即hook到的video标签对象。
一种实施例中,将证书请求地址及视频标签输入框架代码中,包括:
基于证书请求地址构建端口数据;构建框架代码对应的入口函数;通过入口函数将端口数据及视频标签输入框架代码中。
证书请求地址例如licenseUrl,可以根据实际的请求标准构建符合请求标准的端口数据,将证书请求地址例如licenseUrl与标准的请求头信息的组合可以构建得到端口数据。
通过调用框架代码中的入口类MediaPlayerFactory,可以基于该入口类创建一个入口函数,通过入口函数将端口数据及视频标签输入框架代码中。
一种实施例中,框架代码中包括解密服务代码及播放服务代码;触发框架代码在浏览器上对加密视频进行解密及播放,包括:
触发框架代码中的解密服务代码在浏览器上运行,以根据端口数据向数字版权管理系统发送证书请求,并接收数字版权管理系统响应证书请求返回的数字证书,基于数字证书对加密视频进行解密;在浏览器上触发播放服务代码的运行,以根据视频标签对解密得到的视频进行播放。
解密服务代码即视频播放库(即dash.js)的框架代码中提供视频解密服务的加密媒体扩展(EME:Encrypted Media Extensions)模块对应代码,播放服务代码即视频播放库(即dash.js)的框架代码中提供视频播放服务的媒体源扩展(MSE:Media SourceExtensions)模块对应代码。
在浏览器源码的支撑下,可以运行该框架代码,解密服务代码在浏览器上运行,以根据端口数据向数字版权管理系统发送证书请求,并接收数字版权管理系统响应证书请求返回的数字证书,基于数字证书对加密视频进行解密,得到解密后的视频。然后,触发播放服务代码的运行,以根据视频标签对解密得到的视频进行播放。进而相关技术中视频解密播放流程转换为标准的EME解密流程,以及MSE播放流程。
以这种方式,基于步骤S210至步骤S240,通过浏览器的外接接口打开浏览器页面时,将视频播放库(即dash.js)的框架代码便捷地注入浏览器页面,通过浏览器支撑该框架代码的运行,在浏览器中通过该框架代码的提供能力对外接解密插件的解密功能函数进行复写处理,得到复写功能函数实现解密功能,进而不必在浏览器中重新实现外接插件,不必实现内容解密框架,便可以实现视频解密能力,最后,基于复写功能函数在浏览器源码的支撑下通过该框架代码便可以对视频进行解密及播放,将传统的通过外接插件的解密及播放流程转接到浏览器原生的解密及播放流程,基于浏览器源码,不依赖其他模块,不损失性能的基础上实现对加密格式的视频播放。
而相关技术中,很多页面,比如Freeview很多应用,页面是采用DrmAgent插件的形式来实现加密视频的解密过程,而很多原生的浏览器并不直接支持DrmAgent插件,而需要依托浏览器插件框架重新实现该插件,并且需要实现CDM框架,这个过程非常耗时耗力。
为便于更好的实施本申请实施例提供的视频播放方法,本申请实施例还提供一种基于上述视频播放方法的视频播放装置。其中名词的含义与上述视频播放方法中相同,具体实现细节可以参考方法实施例中的说明。图3示出了根据本申请的一个实施例的视频播放装置的框图。
如图3所示,视频播放装置300中可以包括打开模块310、注入模块320、复写模块330以及播放模块340。
打开模块310可以用于通过浏览器的外接接口打开浏览器页面;注入模块320可以用于在所述浏览器页面中注入视频播放库的框架代码;复写模块330可以用于通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;播放模块340可以用于基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放。
在本申请的一些实施例中,所述播放模块340,包括:调用监测单元,用于当所述解密功能函数对所述加密视频进行解密得到证书请求地址时,通过所述复写功能函数获取所述证书请求地址;视频标签获取单元,用于获取所述浏览器页面中对所述加密视频创建的视频标签;播放触发单元,用于将所述证书请求地址及所述视频标签输入所述框架代码中,以触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放。
在本申请的一些实施例中,所述视频标签获取单元,包括:反射处理子单元,用于对所述浏览器页面中创建视频标签的服务类进行反射处理,得到反射函数;反射获取子单元,用于基于所述反射函数获取所述服务类对所述加密视频创建的视频标签。
在本申请的一些实施例中,所述播放触发单元,包括:端口数据构建子单元,用于基于所述证书请求地址构建端口数据;入口函数构建子单元,用于构建所述框架代码对应的入口函数;入口输入子单元,用于通过所述入口函数将所述端口数据及所述视频标签输入所述框架代码中。
在本申请的一些实施例中,所述框架代码中包括解密服务代码及播放服务代码;所述播放触发单元,包括:证书解密子单元,用于触发所述框架代码中的所述解密服务代码在所述浏览器上运行,以根据所述端口数据向数字版权管理系统发送证书请求,并接收所述数字版权管理系统响应所述证书请求返回的数字证书,基于所述数字证书对所述加密视频进行解密;解密视频播放子单元,用于在所述浏览器上触发所述播放服务代码的运行,以根据所述视频标签对解密得到的视频进行播放。
在本申请的一些实施例中,所述外接解密插件插件包括数字版权管理插件;所述复写模块330,包括:解密监测单元,用于监测所述浏览器页面是否调用所述数字版权管理插件的解密功能函数对所述加密视频进行解密;复写处理单元,用于当监测到对所述加密视频进行解密时,触发所述框架代码对所述解密功能函数进行复写处理,得到复写功能函数。
在本申请的一些实施例中,所述外接解密插件插件包括数字版权管理插件;所述复写模块330,包括:插件获取单元,用于获取所述数字版权管理插件;接口创建单元,用于创建所述数字版权管理插件的解密功能函数对应的接口;调用函数创建单元,用于在所述框架代码中创建调用所述接口的调用函数,以将所述调用函数作为所述复写功能函数。
以这种方式,基于视频播放装置300,通过浏览器的外接接口打开浏览器页面时,将视频播放库(即dash.js)的框架代码便捷地注入浏览器页面,通过浏览器支撑该框架代码的运行,在浏览器中通过该框架代码的提供能力对外接解密插件的解密功能函数进行复写处理,得到复写功能函数实现解密功能,进而不必在浏览器中重新实现外接插件,不必实现内容解密框架,便可以实现视频解密能力,最后,基于复写功能函数在浏览器源码的支撑下通过该框架代码便可以对视频进行解密及播放,将传统的通过外接插件的解密及播放流程转接到浏览器原生的解密及播放流程,基于浏览器源码,不依赖其他模块,不损失性能的基础上实现对加密格式的视频播放。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图4所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能,如处理器401可以执行下述步骤:
通过浏览器的外接接口打开浏览器页面;在所述浏览器页面中注入视频播放库的框架代码;通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放。
在本申请的一些实施例中,所述基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放时,处理器401可以执行:当所述解密功能函数对所述加密视频进行解密得到证书请求地址时,通过所述复写功能函数获取所述证书请求地址;获取所述浏览器页面中对所述加密视频创建的视频标签;将所述证书请求地址及所述视频标签输入所述框架代码中,以触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放。
在本申请的一些实施例中,所述获取所述浏览器页面中对所述加密视频创建的视频标签时,处理器401可以执行:对所述浏览器页面中创建视频标签的服务类进行反射处理,得到反射函数;基于所述反射函数获取所述服务类对所述加密视频创建的视频标签。
在本申请的一些实施例中,所述将所述证书请求地址及所述视频标签输入所述框架代码中时,处理器401可以执行:基于所述证书请求地址构建端口数据;构建所述框架代码对应的入口函数;通过所述入口函数将所述端口数据及所述视频标签输入所述框架代码中。
在本申请的一些实施例中,所述框架代码中包括解密服务代码及播放服务代码;所述触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放时,处理器401可以执行:触发所述框架代码中的所述解密服务代码在所述浏览器上运行,以根据所述端口数据向数字版权管理系统发送证书请求,并接收所述数字版权管理系统响应所述证书请求返回的数字证书,基于所述数字证书对所述加密视频进行解密;在所述浏览器上触发所述播放服务代码的运行,以根据所述视频标签对解密得到的视频进行播放。
在本申请的一些实施例中,所述外接解密插件插件包括数字版权管理插件;所述通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数时,处理器401可以执行:监测所述浏览器页面是否调用所述数字版权管理插件的解密功能函数对所述加密视频进行解密;当监测到对所述加密视频进行解密时,触发所述框架代码对所述解密功能函数进行复写处理,得到复写功能函数。
在本申请的一些实施例中,所述外接解密插件插件包括数字版权管理插件;所述通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数时,处理器401可以执行:获取所述数字版权管理插件;创建所述数字版权管理插件的解密功能函数对应的接口;在所述框架代码中创建调用所述接口的调用函数,以将所述调用函数作为所述复写功能函数。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。
Claims (10)
1.一种视频播放方法,其特征在于,包括:
通过浏览器的外接接口打开浏览器页面;
在所述浏览器页面中注入视频播放库的框架代码;
通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;
基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放;其中,所述复写功能函数用于在所述解密功能函数获得证书请求地址时,所述浏览器基于所述复写功能函数获得所述解密功能函数获得的证书请求地址;所述证书请求地址用于所述框架代码获取数字证书对加密视频进行解密。
2.根据权利要求1所述的方法,其特征在于,所述基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放,包括:
当所述解密功能函数对所述加密视频进行解密得到证书请求地址时,通过所述复写功能函数获取所述证书请求地址;
获取所述浏览器页面中对所述加密视频创建的视频标签;
将所述证书请求地址及所述视频标签输入所述框架代码中,以触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放。
3.根据权利要求2所述的方法,其特征在于,所述获取所述浏览器页面中对所述加密视频创建的视频标签,包括:
对所述浏览器页面中创建视频标签的服务类进行反射处理,得到反射函数;
基于所述反射函数获取所述服务类对所述加密视频创建的视频标签。
4.根据权利要求2所述的方法,其特征在于,所述将所述证书请求地址及所述视频标签输入所述框架代码中,包括:
基于所述证书请求地址构建端口数据;
构建所述框架代码对应的入口函数;
通过所述入口函数将所述端口数据及所述视频标签输入所述框架代码中。
5.根据权利要求4所述的方法,其特征在于,所述框架代码中包括解密服务代码及播放服务代码;所述触发所述框架代码在所述浏览器上对所述加密视频进行解密及播放,包括:
触发所述框架代码中的所述解密服务代码在所述浏览器上运行,以根据所述端口数据向数字版权管理系统发送证书请求,并接收所述数字版权管理系统响应所述证书请求返回的数字证书,基于所述数字证书对所述加密视频进行解密;
在所述浏览器上触发所述播放服务代码的运行,以根据所述视频标签对解密得到的视频进行播放。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述外接解密插件插件包括数字版权管理插件;
所述通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数,包括:
监测所述浏览器页面是否调用所述数字版权管理插件的解密功能函数对所述加密视频进行解密;
当监测到对所述加密视频进行解密时,触发所述框架代码对所述解密功能函数进行复写处理,得到复写功能函数。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述外接解密插件插件包括数字版权管理插件;
所述通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数,包括:
获取所述数字版权管理插件;
创建所述数字版权管理插件的解密功能函数对应的接口;
在所述框架代码中创建调用所述接口的调用函数,以将所述调用函数作为所述复写功能函数。
8.一种视频播放装置,其特征在于,包括:
打开模块,用于通过浏览器的外接接口打开浏览器页面;
注入模块,用于在所述浏览器页面中注入视频播放库的框架代码;
复写模块,用于通过所述框架代码对外接解密插件的解密功能函数进行复写处理,得到复写功能函数;
播放模块,用于基于所述复写功能函数,在所述浏览器上通过所述框架代码对加密视频进行解密及播放;其中,所述复写功能函数用于在所述解密功能函数获得证书请求地址时,所述浏览器基于所述复写功能函数获得所述解密功能函数获得的证书请求地址;所述证书请求地址用于所述框架代码获取数字证书对加密视频进行解密。
9.一种存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110820877.5A CN113613044B (zh) | 2021-07-20 | 2021-07-20 | 视频播放方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110820877.5A CN113613044B (zh) | 2021-07-20 | 2021-07-20 | 视频播放方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113613044A CN113613044A (zh) | 2021-11-05 |
CN113613044B true CN113613044B (zh) | 2023-08-01 |
Family
ID=78304874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110820877.5A Active CN113613044B (zh) | 2021-07-20 | 2021-07-20 | 视频播放方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113613044B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278803B (zh) * | 2023-11-21 | 2024-05-17 | 深圳软牛科技有限公司 | Drm视频解密方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108076364A (zh) * | 2016-11-07 | 2018-05-25 | 韩华泰科株式会社 | 自适应媒体流传输设备和媒体服务设备 |
CN110989939A (zh) * | 2019-12-16 | 2020-04-10 | 中国银行股份有限公司 | 一种数据缓存处理方法、装置、设备及缓存组件 |
CN111757152A (zh) * | 2020-06-22 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 多媒体内容投射方法、装置、电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290057B2 (en) * | 2002-08-20 | 2007-10-30 | Microsoft Corporation | Media streaming of web content data |
CN103338384A (zh) * | 2013-05-31 | 2013-10-02 | 优视科技有限公司 | 一种视频播放方法及装置 |
CN105072488A (zh) * | 2015-07-20 | 2015-11-18 | 深圳Tcl数字技术有限公司 | 流媒体解密方法及装置 |
CN107318045A (zh) * | 2016-04-27 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 播放视频数据流的方法及装置 |
CN105939491A (zh) * | 2016-05-25 | 2016-09-14 | 乐视控股(北京)有限公司 | 视频播放方法及装置 |
CN108156521A (zh) * | 2017-12-29 | 2018-06-12 | 北京奇虎科技有限公司 | 一种浏览器上视频播放的方法和装置 |
CN111800667A (zh) * | 2020-07-28 | 2020-10-20 | 深圳Tcl数字技术有限公司 | 浏览器视频播放方法、视频播放装置及存储介质 |
-
2021
- 2021-07-20 CN CN202110820877.5A patent/CN113613044B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108076364A (zh) * | 2016-11-07 | 2018-05-25 | 韩华泰科株式会社 | 自适应媒体流传输设备和媒体服务设备 |
CN110989939A (zh) * | 2019-12-16 | 2020-04-10 | 中国银行股份有限公司 | 一种数据缓存处理方法、装置、设备及缓存组件 |
CN111757152A (zh) * | 2020-06-22 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 多媒体内容投射方法、装置、电子设备 |
Non-Patent Citations (1)
Title |
---|
同时嵌入数字许可和版权标识的版权控制方案;张蒲生, 苏运霖, 方德葵;计算机工程与应用(25);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113613044A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9946873B2 (en) | Methods and apparatuses for secure compilation | |
US9767317B1 (en) | System to provide cryptographic functions to a markup language application | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
US20080270806A1 (en) | Execution Device | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN102473171A (zh) | 将有关本地机器的信息传达给浏览器应用 | |
WO2018006241A1 (en) | Method and apparatus to detect security vulnerabilities in web application | |
CN103179166A (zh) | 在客户端中提供服务的方法和客户端 | |
CN107241298B (zh) | 一种应用管控方法、终端及系统 | |
CN105793826A (zh) | 云后缀代理及其方法 | |
CN113613044B (zh) | 视频播放方法、装置、存储介质及电子设备 | |
CN112380502A (zh) | Web应用程序的处理方法及装置、服务器、终端设备 | |
US20220092155A1 (en) | Protecting an item of software | |
CN111143879A (zh) | 一种Android平台SD卡文件保护方法、终端设备及存储介质 | |
US9369467B1 (en) | System, method, and computer program for providing generic access to web content on a mobile device | |
CN116010740A (zh) | 浏览器的数据文件更新方法、装置、电子设备及存储介质 | |
CN111931222B (zh) | 应用数据加密方法、装置、终端及存储介质 | |
CN114756833A (zh) | 代码混淆方法、装置、设备、介质以及程序产品 | |
WO2020187008A1 (zh) | 服务调用控制方法、服务调用方法、装置及终端 | |
CN117556395B (zh) | 一种系统应用水印生成方法及装置 | |
CN107544826B (zh) | Xposed模块加固的方法、介质、装置和计算设备 | |
CN114745190B (zh) | 页面处理方法及装置、存储介质、电子设备 | |
CN113934988A (zh) | 软件安全保护方法、计算机设备和存储介质 | |
KR101945687B1 (ko) | 하이브리드 클라우드를 이용한 전자 문서 관리 시스템 및 그 방법 | |
CN110851754A (zh) | 网页访问方法及系统、计算机系统和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |