CN112218165B - 视频播放的控制方法、装置、电子设备及存储介质 - Google Patents
视频播放的控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112218165B CN112218165B CN202011085221.5A CN202011085221A CN112218165B CN 112218165 B CN112218165 B CN 112218165B CN 202011085221 A CN202011085221 A CN 202011085221A CN 112218165 B CN112218165 B CN 112218165B
- Authority
- CN
- China
- Prior art keywords
- video
- playing
- terminal
- index file
- target index
- 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 84
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000004891 communication Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 39
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000197200 Gallinago media Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- 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)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供了一种视频播放的控制方法、装置、电子设备及存储介质,涉及视频播放技术领域。其中,该视频播放的控制方法应用于服务器端,该视频播放的控制方法包括:接收控制指令,控制指令是终端在视频播放过程中发送的;确定控制指令的类型;根据控制指令的类型,对目标索引文件进行相应处理,以使终端在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。本申请实施例中服务器端基于HLS协议为终端提供索引+管理的视频云存储服务,解决了现有技术中视频从暂停播放恢复至播放时视频时间跳变的问题。
Description
技术领域
本申请涉及视频播放技术领域,具体而言,本申请涉及一种视频播放的控制方法、装置、电子设备及存储介质。
背景技术
随着视频播放技术的发展,用户可借助终端中运行的各种客户端,例如,媒体播放器、浏览器等等,随心所欲地观看直播/点播视频,甚至进行视频回看。
应当理解,对于用户而言,当选择将暂停播放的视频恢复播放时,往往希望能够从暂停播放时间处开始继续观看视频。然而,由于终端中存储器资源等客观条件的限制,用户所需观看的视频不可能完全存储于终端本地,仍需要从服务器端下载,而在终端与服务器端之间进行视频传输时,无论采用HTTP-FLV协议,还是基于时间戳(current time),都可能出现视频时间跳变,而导致在视频从暂停播放恢复至播放时,用户观看到的视频不连续,例如,用户可能重复观看了一段曾经播放过的视频片段,或者,漏看了一段未曾播放过的视频片段。
由上可知,在视频播放过程中,尤其是视频从暂停播放恢复至播放时,尚存在视频时间跳变的缺陷。
发明内容
本申请实施例提供了一种视频播放的控制方法、装置、电子设备及存储介质,可以解决相关技术中存在的视频从暂停播放恢复至播放时视频时间跳变的问题。所述技术方案如下:
根据本申请实施例的一个方面,一种视频播放的控制方法,应用于服务器端,所述方法包括:接收控制指令,控制指令是终端在视频播放过程中发送的;确定控制指令的类型;根据控制指令的类型,对目标索引文件进行相应处理,以使终端在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
根据本申请实施例的一个方面,一种视频播放的控制方法,应用于终端,所述方法包括:在视频播放过程中,向服务器端发送控制指令;接收服务器端根据控制指令的类型返回的目标索引文件;在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
根据本申请实施例的一个方面,一种视频播放的控制装置,应用于服务器端,所述装置包括:指令接收模块,用于接收控制指令,控制指令是终端在视频播放过程中发送的;指令类型确定模块,用于确定控制指令的类型;文件处理模块,用于根据控制指令的类型,对目标索引文件进行相应处理,以使终端在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
根据本申请实施例的一个方面,一种视频播放的控制装置,应用于终端,所述装置包括:指令发送模块,用于在视频播放过程中,向服务器端发送控制指令;文件接收模块,用于接收服务器端根据控制指令的类型返回的目标索引文件;播放控制模块,用于在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
根据本申请实施例的一个方面,一种电子设备,包括:至少一个处理器、至少一个存储器、以及至少一条通信总线,其中,存储器上存储有计算机可读指令,处理器通过通信总线读取存储器中的计算机可读指令;计算机可读指令被处理器执行时实现如上所述的视频播放的控制方法。
根据本申请实施例的一个方面,一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的视频播放的控制方法。
本申请提供的技术方案带来的有益效果是:
在上述技术方案中,在视频播放过程中,终端向服务器端发送控制指令,对于服务器端而言,在接收到终端发送的控制指令,便能够进一步地确定控制指令的类型,并根据控制指令的类型对目标索引文件进行相应处理,使得终端在暂停播放视频时,能够根据目标索引文件停止向服务器端请求相应的媒体文件,也就是说,在视频暂停播放的过程中,终端不再从服务器端下载视频,而当用户选择将暂停播放的视频恢复播放时,终端将相应地恢复视频的下载,使得用户能够从暂停播放时间处开始继续观看视频,以此实现终端对视频暂停播放/恢复播放的精准控制,从而避免视频从暂停播放恢复至播放时视频时间跳变的问题,进而充分地保证用户所观看视频的连续性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1是根据本申请所涉及的实施环境的示意图。
图2是根据一示例性实施例示出的一种视频播放的控制方法的流程图。
图3为图2对应实施例所涉及的视频播放的用户界面的示意图。
图4是根据一示例性实施例示出的另一种视频播放的控制方法的流程图。
图5是图2对应实施例中步骤205在一个实施例的流程图。
图6是图5对应实施例中步骤2051在一个实施例的流程图。
图7是根据一示例性实施例示出的另一种视频播放的控制方法的流程图。
图8是一应用场景中一种视频播放的控制方法的具体实现示意图。
图9是根据一示例性实施例示出的一种视频播放的控制装置的结构示意图。
图10是根据一示例性实施例示出的一种视频播放的控制装置的结构示意图。
图11是根据一示例性实施例示出的一种服务器端的结构示意图。
图12是根据一示例性实施例示出的一种终端的结构示意图。
图13是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面是对本申请涉及的几个名词进行的介绍和解释:
HLS(HTTP Live Streaming):是一个由苹果公司提出的基于HTTP的流媒体网络传输协议,适用于各种主流的客户端(例如媒体播放器、浏览器)。该协议的传输内容包括两部分,一部分是TS媒体文件,另一部分是M3U8索引文件。
TS:媒体文件,也可以称为传输流文件,该媒体文件中封装了可用于播放的音视频数据。例如,对于某一个视频来说,可划分为若干个视频片段,进而被封装为若干个媒体文件。
M3U8:索引文件,也可以称为描述文件,该索引文件是Unicode版本的M3U,用UTF-8编码,用于描述音视频数据的相关属性,该属性可以包括统一资源定位符(UniformResource Locator,URL)、时长、数据格式等等。举例来说,通过索引文件中的URL,可以进行音视频数据的定位,在此,索引文件也可以理解为是用于定位媒体文件。
HTTP-FLV:将音视频数据封装为FLV格式,然后通过HTTP协议传输给客户端。
NVR(Network Video Recorder):网络硬盘录像机,NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流,并进行存储、管理。
RTSP(Real Time Streaming Protocol):实时流传输协议,该协议是TCP/IP协议体系中的一个应用层协议,也可理解为是音视频数据的一种数据格式。
RTMP(Real Time Messaging Protocol):实时消息传输协议,该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种协议,也可理解为是音视频数据的一种数据格式。
视频卡顿:因为传输视频的网络质量差,或者存储视频的设备硬件/软件性能达到瓶颈,或者播放视频的设备硬件/软件性能达到瓶颈,导致视频频繁缓冲或者丢帧,进而导致用户观看视频不流畅。
目前,基于在服务器端存储的视频,终端中视频从暂停播放恢复至播放,终端主要采用两种方案实现播放控制:第一种方案采用HTTP-FLV协议,第二种方案基于时间戳(current time)。
具体而言,第一种方案,用户选择暂停播放视频之后,终端基于HTTP-FLV协议,仍然继续从服务器端下载视频缓存,以便于用户选择将暂停播放的视频恢复播放时,终端能够直接从本地的缓存视频中获取视频片段进行播放。
第二种方案,在视频开始播放时获取***时间,在视频暂停播放时获取视频播放的持续时长,例如,由H5播放器video标签中的时间戳提供,以此确定视频恢复播放时需要从哪个时间(即暂停播放时间)处开始继续播放。例如,视频开始播放的***时间是T1,用户暂停播放视频时,视频播放的持续时长是L1,则在视频恢复播放时,暂停播放时间=T1+L1,此时,终端向服务器端请求下载从该暂停播放时间开始的视频进行缓存。
由上可知,第一种方案依赖于终端中缓存视频的时长N分钟,假设用户暂停时长为M分钟且M>N,因为终端中缓存视频的时长最长为N分钟,但用户暂停时长为M分钟且M>N,有M-N分钟的视频片段无法缓存,只能丢弃,因此,在用户恢复播放视频时,会发现视频时间向前跳过了M-N分钟,导致用户漏看了M-N分钟未曾播放过的视频片段。
而第二种方案,当出现视频卡顿时,获取到的视频播放的持续时长往往不够准确。假设获取到的视频播放的持续时长是L1,由于视频卡顿,视频中实际显示的时长是L2(即L2=暂停播放时的显示时间-开始播放时的显示时间),L2可能比L1大,也可能比L1小,还可能与L1相等。在用户恢复播放视频时,如果L2>L1,用户会发现视频时间回跳了L2-L1分钟,即重复观看了L2-L1分钟曾经播放过的视频片段;如果L2<L1,用户则会发现视频时间向前跳过了L1-L2分钟,即漏看了L1-L2分钟未曾播放过的视频片段;仅当L1=L2时,用户才能感受到视频从暂停播放恢复至播放时是从暂停播放时间处开始继续播放的。
也就是说,在视频播放过程中,尤其是视频从暂停播放恢复至播放时,尚存在视频时间跳变的缺陷。
为此,本申请提供的视频播放的控制方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为一种视频播放的控制方法所涉及的实施环境的示意图。该实施环境包括终端100、服务器端200和视频源300。
具体地,终端100可供提供视频播放功能的客户端运行,可以是台式电脑、笔记本电脑、平板电脑、智能手机等等电子设备,在此不进行限定。
其中,客户端,提供视频播放功能,例如,媒体播放器、浏览器等,可以是应用程序形式,也可以是网页形式,相应地,客户端进行播放视频的用户界面则可以是程序窗口形式,还可以是网页页面形式的,此处也并未加以限定。
服务器端200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。例如,本实施环境中,服务器端200为终端100提供音视频数据的云存储服务。
视频源300区别于服务器端200,更倾向于提供音视频数据的本地存储服务。该视频源300也可以是独立的物理服务器,或者是由多个物理服务器构成的服务器集群或者分布式***。在一个应用场景中,视频源300是部署在物业本地的NVR***,通过物业本地部署的视频检测设备,而存储有海量的对象检测视频数据。
服务器端200分别与终端100、视频源300之间建立通信连接,并通过该通信连接分别实现其与终端100以及视频源300之间的数据传输。例如,传输的数据可以是来自于视频源300的音视频数据,还可以是发送至终端100的媒体文件和索引文件。
随着服务器端200与视频源300的交互,服务器端200从视频源300获取得到音视频数据,并封装为至少一个媒体文件进行存储。
在视频播放过程中,服务器端200会接收到终端100发送的控制指令,进而根据控制指令的类型对索引文件进行相应处理,并将该索引文件返回至终端100。
对于终端100而言,在暂停播放视频时,便能够根据服务器端200返回的索引文件停止向服务器端200请求相应的媒体文件,以此实现对视频暂停播放/恢复播放的精准控制。
当然,根据实际营运的需要,服务器端200和视频源300也可以整合在同一个服务器集群或者分布式***,以使视频播放的控制由该同一个服务器集群或者分布式***完成。
请参阅图2,本申请实施例提供了一种视频播放的控制方法,该方法适用于图1所示实施环境的服务器端200。
在下述方法实施例中,为了便于描述,以各步骤的执行主体为服务器端加以说明,但是并不对此构成限定。
如图2所示,该方法可以包括以下步骤:
步骤201,接收控制指令。
其中,控制指令是终端在视频播放过程中发送的,用于指示终端对视频所进行的播放控制类型。
可选地,播放控制类型包括播放、暂停播放、停止播放。
可选地,播放控制类型中,播放进一步地包括启动播放、恢复播放。在此需要说明的是,启动播放指的是用户选择播放时间从0s开始播放一个未曾播放过的视频,或者播放时间从中间若干秒(例如4s)开始播放一个未曾播放过的视频;恢复播放则是指用户选择将暂停播放的视频恢复播放。
对于终端而言,在视频播放的用户界面中,会为用户提供对应于播放控制类型的控制入口,使得用户可以通过该控制入口触发相应的播放控制操作,进而使得终端能够根据用户触发的播放控制操作进行视频的播放控制。
以暂停播放视频为例进行说明,如图3所示,在视频播放的用户界面301中,当用户希望暂停播放正在播放的视频,便可点击“暂停”图标302。其中,“暂停”图标302即是视频播放的用户界面301中对应于暂停播放的控制入口,而点击操作即是用户通过该控制入口触发的暂停控制操作。
此时,终端将检测到用户触发的暂停控制操作,进而控制正在播放的视频暂停播放,并生成相应的控制指令发送至服务器端,由此,就服务器端来说,便能够接收到该控制指令,进而获知终端对视频进行了暂停播放的控制。
需要说明的是,根据终端所配置输入组件(例如显示屏幕上铺盖的触摸层、鼠标、键盘等)的不同,用户在控制入口触发的控制操作的具体行为也可以各不相同。例如,借由触摸层输入的智能手机而言,控制操作可以是点击、滑动等手势操作,而对于配置鼠标的笔记本电脑而言,控制操作则可以是拖拽、单击、双击等机械操作,在此不进行具体限定。
步骤203,确定控制指令的类型。
如前所述,播放控制类型可以包括播放、暂停播放、停止播放,其中,播放还可以进一步包括启动播放、恢复播放。相应地,控制指令的类型可以包括播放指令、暂停播放指令、停止播放指令,同时,播放指令可以进一步划分为启动播放指令、恢复播放指令。
仍以前述暂停播放视频为例进行说明,在视频播放的用户界面中对应于暂停播放的控制入口,当终端检测到用户触发的暂停控制操作,便生成暂停播放指令发送至服务器端,相应地,服务器端接收到该暂停播放指令,由此确定出该暂停播放指令属于控制指令的哪种类型。
在一种可能的实施方式中,控制指令的类型通过字母、数字、字符等等一种或者几种组合唯一地表示。例如,播放指令表示为1,暂停播放指令表示为2,停止播放指令表示为3。
步骤205,根据控制指令的类型,对目标索引文件进行相应处理。
如前所述,基于终端与服务器端之间进行的视频传输,无论是采用HTTP-FLV协议,还是基于时间戳,都可能在视频从暂停播放恢复至播放时出现视频时间跳变,因此,本实施例中,将基于HLS协议实现终端对视频暂停播放/恢复播放的精准控制。
首先说明的是,HLS协议中涉及的媒体文件和索引文件的生成过程。
请参阅图4,本申请实施例中提供了一种可能的实现方式,该方法还可以包括以下步骤:
步骤401,从视频源获取音视频数据。
音视频数据可以是音乐数据、影视数据、对象检测视频数据等等,本实施例并未对音视频数据的类型作具体限定。相应地,由于音视频数据的不同类型可对应于不同的应用场景,例如,音乐数据可对应用户点播歌曲场景,影视数据可对应用户观看影视节目场景,对象检测视频数据则对应于物业检测场景。因此,本实施例提供的视频播放的控制方法可根据音视频数据的不同类型而适用于不同的应用场景。
以用户观看影视节目场景为例,视频源存储有海量可供用户观看的影视数据,可由节目发布方主动上传至视频源进行存储,以便于在用户选择观看影视节目时,服务器端能够从视频源处获得影视数据。
步骤403,将音视频数据封装为至少一个媒体文件,并存储。
封装,指的是按照设定数据格式将音视频数据转换为至少一个媒体文件。可选地,设定数据格式包括但不限于FLV格式、RTSP格式、RTMP格式、TS格式等等。也可以理解为,媒体文件符合设定数据格式所对应的传输协议,以便于该媒体文件遵循该传输协议在终端与服务器端之间传输。例如,RTMP格式的媒体文件符合RTMP实时消息传输协议。
在进行媒体文件存储时,服务器端便相应地为存储的该媒体文件生成对应的索引,进而形成索引文件,以便于后续终端能够根据该索引文件在服务器端中定位到相应的媒体文件。
由此,基于HLS协议,实现了服务器端面向海量终端提供音视频数据的云存储服务。
在此补充说明的是,由于服务器端是面向海量终端提供音视频数据的云存储服务,不同终端响应于用户的不同需求,其向服务器端请求的媒体文件将有所差异,也可以理解为不同终端向服务器端请求相应媒体文件所依赖的索引文件有所区别,故而,本发明各实施例中,目标索引文件指的是对应于终端的索引文件,例如,对于终端A,服务器端提供目标索引文件a,对于终端B,服务器端提供目标索引文件b,下文不再重复赘述。
其次对终端基于HLS协议进行视频播放的过程加以说明。
具体地,首先,终端欲播放某一个视频,则向服务器端发起关于该视频的视频下载请求,服务器端便可根据该视频下载请求确定终端请求下载的该视频的媒体文件,进而将用于定位该媒体文件的目标索引文件,发送至终端。
然后,终端根据接收到的目标索引文件向服务器端请求相应的媒体文件,并根据服务器端返回的媒体文件进行视频播放。
由此可见,终端是否向服务器端请求媒体文件取决于目标索引文件,即如果目标索引文件与终端本地的目标索引文件内容一致,表示服务器端中存储的关于该视频的媒体文件未更新,此时,终端不向服务器端请求相应的媒体文件,反之,如果目标索引文件与终端本地的目标索引文件内容不一致,表示服务器端中存储的关于该视频的媒体文件已更新,此时,终端会向服务器端请求相应的媒体文件。
可以理解,在视频从暂停播放恢复至播放时,无论是用户可能重复观看了一段曾经播放过的视频片段,还是漏看了一段未曾播放过的视频片段,均是由于终端继续播放的视频并非从暂停播放时间处开始。在此,发明人意识到,如果是基于HLS协议控制视频播放,在视频暂停播放的过程中,随着服务器端进行了媒体文件的更新,终端也将相应地进行媒体文件的更新,即继续从服务器端下载视频缓存,那么,仍然可能存在终端缓存视频的重复或者遗漏,进而导致视频恢复播放时继续播放的视频并非从暂停播放时间处开始。
基于此,本实施例中,服务器端会根据控制指令的类型,对目标索引文件进行相应处理,以此确保在视频从暂停播放恢复至播放时,终端根据目标索引文件从服务器端请求到的相应媒体文件,其中封装的视频片段是从暂停播放时间处开始的。
如前所述,控制指令的类型可以包括播放指令、暂停播放指令、停止播放指令。相应地,服务器端关于目标索引文件的处理方式可以包括更新目标索引文件、暂停更新目标索引文件、删除目标索引文件。
也就是说,在一个可能的实施方式中,如图5所示,步骤205可以进一步地包括以下步骤:
步骤2051,如果控制指令的类型为播放指令,则更新目标索引文件。
步骤2052,将更新的目标索引文件返回至终端。
对于终端而言,接收到的目标索引文件与本地存储的目标索引文件内容不一致,即该目标索引文件已更新,表示服务器端中存储的关于视频的媒体文件也已更新,进而获知使用该媒体文件进行播放的视频是用户未曾观看过的。
由此,终端便可根据更新的目标索引文件向服务器端请求相应的媒体文件,以根据请求到的媒体文件控制视频进行播放,以便于用户观看其未曾观看过的视频。
在一个可能的实施方式中,如图5所示,步骤205可以进一步地包括以下步骤:
步骤2053,如果控制指令的类型为暂停播放指令,则存储暂停播放时间对应的目标索引文件。
如前所述,现有的基于HLS协议控制视频播放,在视频暂停播放的过程中,如果服务器端进行了媒体文件的更新,终端也将相应地进行媒体文件的更新,即继续从服务器端下载视频缓存,那么,仍然可能存在终端缓存视频的重复或者遗漏,进而导致视频恢复播放时继续播放的视频并非从暂停播放时间处开始。
为此,本实施例中,为了“欺骗”终端服务器端未更新媒体文件,使终端不在视频暂停播放的过程中继续从服务器端下载视频缓存,服务器端对暂停播放时间对应的目标索引文件进行存储,使得在视频暂停播放的过程中,服务器端始终发送的是存储的目标索引文件,即暂停播放时间对应的目标索引文件。
其中,暂停播放时间对应的目标索引文件,是指终端暂停播放视频之前,服务器端最后一次返回至终端的目标索引文件,也可以理解为,在视频暂停播放之前,终端最后一次接收到的目标索引文件。
举例来说,视频在播放到40分钟时,终端暂停播放该视频,则暂停播放时间为40分钟。
假设终端每隔5秒向服务器端请求相应的媒体文件,相应地,服务器端每隔5秒返回目标索引文件至终端。那么,服务器端将分别定时在视频播放到1秒、6秒、……、39分钟46秒、39分钟51秒、39分钟56秒、40分钟1秒、……等时刻返回目标索引文件至终端。
由于视频在播放到40分钟时暂停播放,对于服务器端而言,39分钟56秒已返回目标索引文件至终端,而40分钟1秒尚未返回目标索引文件至终端。
因此,暂停播放时间对应的目标索引文件为视频播放到39分钟56秒返回至终端的目标索引文件,假设为M。也就是说,在视频暂停播放的过程中,服务器端返回终端的目标索引文件始终为M,相应地,终端接收并进行本地存储的目标索引文件始终为M。
步骤2054,将存储的目标索引文件返回至终端。
对于终端而言,接收到的该目标索引文件与终端本地存储的目标索引文件内容始终保持一致,表示该目标索引文件未更新,那么,终端始终认为服务器端中存储的媒体文件也未更新,进而获知使用该媒体文件进行播放的视频都是用户曾经观看过的,便停止向服务器端请求相应的媒体文件。
由此,无论服务器端是否更新了媒体文件,终端在暂停播放视频时,根据目标索引文件都会停止向服务器端请求相应的媒体文件,进而避免视频因持续下载导致恢复播放时出现重复或者遗漏,从而有利于视频在恢复播放时能够从暂停播放时间处开始,以此实现终端对视频恢复播放的精准控制。
在一个可能的实施方式中,如图5所示,步骤205可以进一步地包括以下步骤:
步骤2055,如果控制指令的类型为停止播放指令,则删除目标索引文件。
此时,对于终端来说,在视频停止播放时,由于服务器端删除了目标索引文件,则不会再接收到该目标索引文件以及相应的媒体文件。
通过上述的过程,终端在暂停播放视频时,能够根据目标索引文件停止向服务器端请求相应的媒体文件,一方面,终端在视频暂停播放的过程中不再进行视频缓存,使得暂停播放时间不再受终端中缓存视频时长的限制,还节省了终端中存储器资源。另一方面,基于HLS协议,暂停播放时间不再依赖于时间戳,使得终端控制视频恢复播放不再受视频卡顿的影响,从而有效地解决了视频从暂停播放恢复至播放时视频时间跳变的问题,以此充分保证了用户观看视频的连续性。
请参阅图6(a),本申请实施例中提供了一种可能的实现方式,步骤2051可以包括以下步骤:
步骤2051a,确定更新的媒体文件。
步骤2051c,根据更新的媒体文件生成对应的索引。
步骤2051e,将索引添加至目标索引文件,形成更新的目标索引文件。
另一种可能的实现方式,如图6(b)所示,步骤2051可以包括以下步骤:
步骤2051b,确定存储于服务器端中关于视频的媒体文件。
步骤2051d,根据确定的媒体文件生成对应的索引。
步骤2051f,根据索引生成更新的目标索引文件。
另一种可能的实现方式,步骤2051可以包括以下步骤:
获取源索引文件,将所述目标索引文件替换为所述源索引文件。
其中,源索引文件是指对应于服务器端的索引文件,区别于目标索引文件。
也就是说,关于目标索引文件的更新处理,包括直接更新和间接更新两种方式。
具体而言,直接更新可以存在两种实施方式,一种实施方式是,基于更新的媒体文件在现有的目标索引文件中添加对应的索引,即部分更新;另一种实施方式则是,基于视频的所有媒体文件,包括旧媒体文件和更新的媒体文件,重新生成一个目标索引文件替代现有的目标索引文件,即全部更新。
间接更新则是指,服务器端基于存储的媒体文件,在服务器端本地生成相应的源索引文件,并在媒体文件持续更新的过程中,首先对源索引文件进行相应地更新,即无论终端视频是否暂停播放,源索引文件持续更新,然后在终端视频由暂停播放恢复至播放时,根据源索引文件进行目标索引文件的更新,即使用源索引文件替换现有的目标索引文件,使得服务器端在面向海量终端提供音视频数据的云存储服务时,避免重复多次的更新,能够有效地提高更新效率,同时减轻服务器端的任务处理压力。其中,源索引文件的更新包含部分更新和全部更新两种实施方式,类似于目标索引文件的直接更新方式,此处不再重复赘述。
在上述实施例的作用下,实现了目标索引文件的更新处理,即服务器端在视频播放时对目标索引文件更新、以及在视频暂停播放时对目标索引文件不更新,使得在终端暂停播放视频的过程中,即使服务器端仍然从视频源处获取到更新的视频,并且依然保持与终端之间的通信连接,但是通过未更新的目标索引文件“欺骗”终端,使其认为服务器端中并不存在更新的视频,进而不再向服务器端请求相应的媒体文件,充分保证了暂停播放的视频恢复播放时是从暂停播放时间处开始的。
请参阅图7,本申请实施例提供了一种视频播放的控制方法,该方法适用于图1所示实施环境的终端100。
在下述方法实施例中,为了便于描述,以各步骤的执行主体为终端加以说明,但是并不对此构成限定。
如图7所示,该方法可以包括以下步骤:
步骤701,在视频播放过程中,向服务器端发送控制指令。
步骤703,接收服务器端根据控制指令的类型返回的目标索引文件。
步骤705,在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
由此,在视频暂停播放的过程中,终端不再从服务器端下载视频,节省了终端的存储器资源,而当用户选择将暂停播放的视频恢复播放时,终端将相应地恢复视频的下载,使得用户能够从暂停播放时间处开始继续观看视频,以此实现终端对视频暂停播放/恢复播放的精准控制,从而避免视频从暂停播放恢复至播放时视频时间跳变的问题,进而充分地保证用户观看视频的连续性。
图8一应用场景中一种视频播放的控制方法的具体实现示意图。该应用场景中,物业检测***800包括:部署在物业本地的若干个视频检测设备(图8未示出)、作为视频源而部署在物业本地的NVR***801、流媒体服务器802、供客户端运行的终端803。
该物业检测***800适用于楼宇、社区、办公园区等物业检测环境。通过部署在物业本地的若干个视频检测设备实时上传物业检测环境相关的对象检测视频数据至NVR***801,以便于日后取证回看使用,以此实现物业检测的目的。
由于对象检测成本和网络带宽等客观条件的限制,NVR***801中存储的海量对象检测视频数据不可能完全存储至流媒体服务器802,因此,工作人员如果需要进行对象检测视频回看时,便会从NVR***801选取设定历史时间段的对象检测视频数据上传至流媒体服务器802,进而通过该流媒体服务器802与终端803之间的通信连接,实现终端803中的对象检测视频播放。
上述过程中,对于终端803而言,在对象检测视频回看过程中,如果工作人员希望进一步确认对象检测视频的细节,便会暂停播放对象检测视频。
此时,由于视频检测设备仍然继续对物业检测环境进行对象检测,也就会有更新的对象检测视频数据上传至NVR***801,相应地,就流媒体服务器802来说,依然会继续从NVR***801中获取到更新的对象检测视频数据,并封装为更新的媒体文件进行存储。
那么,在终端803暂停播放对象检测视频的过程中,流媒体服务器802中存储的媒体文件实际上是持续进行更新的,但是由于流媒体服务器802不会更新目标索引文件,使得终端803认为流媒体服务器802并不存在更新的媒体文件,因而不会向流媒体服务器802请求更新的媒体文件,不仅大大节省了终端803的存储器资源,而且使得终端803始终保持在视频暂停播放的状态,即缓存的对象检测视频保持不更新,避免了视频时间跳变,从而能够在对象检测视频恢复至播放时从暂停播放时间处开始继续播放对象检测视频。
具体过程如下:
视频源801:
对于NVR***801,对象检测视频数据按照RTSP格式进行存储,并将该对象检测视频数据转换成RTMP格式推送到流媒体服务器802。
推流地址格式如下:
rtmp://ip:port/live/26905_4d654bcabf?txSecret=75655090c51688a249d7e253f4cda54f&txTime=5BD339FF。
其中,ip:port表示流媒体服务器803的IP地址;
26905_4d654bcabf作为视频标识,唯一地表示视频;
txTime&txSecret作为加密方式,用于保证视频传输的安全性。
流媒体服务器802:
流媒体服务器802在接收到视频源801推送的RTMP格式对象检测视频数据之后,进一步将其转换成媒体文件,并存储。值得一提的是,对于同一个视频而言,该视频的所有媒体文件都存储在视频标识对应的文件目录中。
同时,当媒体文件存储时,流媒体服务器802将生成对应的索引,添加至目标索引文件,用于媒体文件的定位。应当说明的是,目标索引文件包括若干个索引,每一个索引定位一个媒体文件。
在终端803播放视频过程中,流媒体服务器802响应如下几种控制指令:
A:播放指令(启动播放指令/恢复播放指令):流媒体服务器802更新当前的目标索引文件,且按序填充未播放的媒体文件列表,使得终端能够根据目标索引文件中的索引定位到未播放的媒体文件列表中的媒体文件,以此保证视频播放时不会出现视频时间跳变。
B:暂停播放指令:流媒体服务器802不更新目标索引文件,使得终端803暂停向流媒体服务器802请求相应的媒体文件,以使终端803控制视频保持在暂停播放的状态。
C:停止播放指令:流媒体服务器802删除目标索引文件,使得终端803控制视频保持在停止播放的状态。
终端803:
对于终端803而言,则通过http协议根据目标索引文件从流媒体服务器802上请求媒体文件。
流地址格式如下:
http://ip:port/live/26905_4d654bcabf.M3U8&cmd=[play|pause|resume|stop]&txSecret=75655090c51688a249d7e253f4cda54f&txTime=5BD339FF。
其中,ip:port表示流媒体服务器802的IP地址;
26905_4d654bcabf作为视频标识,唯一地表示视频;
26905_4d654bcabf_xxxx.M3U8作为索引,唯一地定位一个媒体文件;
cmd:流媒体服务器802需要响应的控制指令,包括启动播放指令(play:从当前时刻开始观看)、暂停播放指令(pause)、恢复播放指令(resume:从暂停处开始播放)、停止播放指令(stop);
txSecret&txTime作为加密方式,用于保证视频传输的安全性。
在本应用场景中,用户在终端观看对象检测视频时,既可以回看历史时间段的对象检测视频片段,也可以观看实时的对象检测视频片段,且对象检测视频从暂停播放恢复至播放时不会因为视频卡顿或缓存视频时长等原因,导致用户观看到的对象检测视频不连续,使得用户能够在终端享受到与本地播放器一致的对象检测视频回看暂停播放/恢复播放的流畅体验。
下述为本申请装置实施例,可以用于执行本申请所涉及的视频播放的控制方法。对于本申请装置实施例中未披露的细节,请参照本申请所涉及的视频播放的控制方法的方法实施例。
请参阅图9本申请实施例中提供了一种视频播放的控制装置900,包括但不限于:指令接收模块901、指令类型确定模块903和文件处理模块905。
其中,指令接收模块901,用于接收控制指令,控制指令是终端在视频播放过程中发送的。
指令类型确定模块903,用于确定控制指令的类型。
文件处理模块905,用于根据控制指令的类型,对目标索引文件进行相应处理,以使终端在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
本申请实施例中提供了一种可能的实现装置,文件处理模块905包括但不限于:暂停控制单元。
其中,暂停控制单元,用于如果控制指令的类型为暂停播放指令,则将当前的目标索引文件返回至终端,以使终端停止向服务器端请求相应的媒体文件。
本申请实施例中提供了一种可能的实现装置,文件处理模块905包括但不限于:文件更新单元和播放控制单元。
其中,文件更新单元,用于如果控制指令的类型为播放指令,则更新当前的目标索引文件。
播放控制单元,用于将更新的目标索引文件返回至终端,以使终端根据更新的目标索引文件向服务器端请求相应的媒体文件。
本申请实施例中提供了一种可能的实现装置,文件更新单元包括但不限于:文件更新子单元、第一索引生成子单元和索引添加子单元。
其中,文件更新子单元,用于确定更新的媒体文件。
第一索引生成子单元,用于根据更新的媒体文件生成对应的索引。
索引添加子单元,用于将索引添加至当前的目标索引文件,形成更新的目标索引文件。
本申请实施例中提供了一种可能的实现装置,文件更新单元包括但不限于:文件确定单元、第二索引生成子单元和文件生成单元。
其中,文件确定单元,用于确定存储于服务器端中关于视频的媒体文件。
第二索引生成子单元,用于根据确定的媒体文件生成对应的索引。
文件生成单元,用于根据索引生成更新的目标索引文件。
本申请实施例中提供了一种可能的实现装置,文件处理模块905包括但不限于:停止控制单元。
其中,停止控制单元,用于如果控制指令的类型为停止播放指令,则删除目标索引文件。
本申请实施例中提供了一种可能的实现装置,视频播放的控制装置900还包括但不限于:数据获取模块和数据封装模块。
其中,数据获取模块,用于从视频源获取音视频数据。
数据封装模块,用于将音视频数据封装为至少一个媒体文件,并存储。
请参阅图10本申请实施例中提供了一种视频播放的控制装置1000,包括但不限于:指令发送模块1001、文件接收模块1003和播放控制模块1005。
其中,指令发送模块1001,用于在视频播放过程中,向服务器端发送控制指令。
文件接收模块1003,用于接收服务器端根据控制指令的类型返回的目标索引文件。
播放控制模块1005,用于在暂停播放视频时,根据目标索引文件停止向服务器端请求相应的媒体文件。
需要说明的是,上述实施例所提供的视频播放的控制装置在进行视频播放的控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即视频播放的控制装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的视频播放的控制装置与视频播放的控制方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
在此,终端在暂停播放视频时,能够根据目标索引文件停止向服务器端请求相应的媒体文件,一方面,终端在视频暂停播放的过程中不再进行视频缓存,使得暂停播放时间不再受终端中缓存视频时长的限制,还节省了终端中存储器资源。另一方面,暂停播放时间取决于终端是否向服务器端请求媒体文件,而不再依赖于时间戳,使得终端控制视频恢复播放不再受视频卡顿的影响,从而有效地解决了视频从暂停播放恢复至播放时视频时间跳变的问题,以此充分保证了用户观看视频的连续性。
图11根据一示例性实施例示出的一种服务器的结构示意。该服务器适用于图1所示出实施环境的服务器端200。
需要说明的是,该服务器只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该服务器也不能解释为需要依赖于或者必须具有图11示出的示例性的服务器2000中的一个或者多个组件。
服务器2000的硬件结构可因配置或者性能的不同而产生较大的差异,如图11所示,服务器2000包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。
具体地,电源210用于为服务器200上的各硬件设备提供工作电压。
接口230包括至少一有线或无线网络接口,用于与外部设备交互。例如,进行图1所示出实施环境中控制节点110与计算节点130之间的交互。
当然,在其余本申请适配的示例中,接口230还可以进一步包括至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,如图2所示,在此并非对此构成具体限定。
存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。
其中,操作***251用于管理与控制服务器200上的各硬件设备以及应用程序253,以实现中央处理器270对存储器250中海量数据255的运算与处理,其可以是WindowsServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。
应用程序253是基于操作***251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图11未示出),每个模块都可以分别包含有对服务器200的一系列计算机可读指令。例如,资源分配装置可视为部署于控制节点的应用程序253。
数据255可以是存储于磁盘中的照片、图片等,还可以是键值对等,存储于存储器250中。
中央处理器270可以包括一个或多个以上的处理器,并设置为通过至少一通信总线与存储器250通信,以读取存储器250中存储的计算机可读指令,进而实现对存储器250中海量数据255的运算与处理。例如,通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来完成视频播放的控制方法。
此外,通过硬件电路或者硬件电路结合软件也能同样实现本申请,因此,实现本申请并不限于任何特定硬件电路、软件以及两者的组合。
请参阅图12,图12是根据一示例性实施例示出的一种终端的结构示意图。该终端适用于图1所示出实施环境中的终端100。
需要说明的是,该终端只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该终端也不能解释为需要依赖于或者必须具有图12中示出的示例性的终端1100中的一个或者多个组件。
如图12所示,终端1100包括存储器101、存储控制器103、一个或多个(图12中仅示出一个)处理器105、外设接口107、射频模块109、定位模块111、摄像模块113、音频模块115、触控屏幕117以及按键模块119。这些组件通过一条或多条通讯总线/信号线121相互通讯。
其中,存储器101可用于存储计算机程序以及模块,如本申请示例性实施例中的视频播放的控制方法及装置对应的计算机可读指令及模块,处理器105通过运行存储在存储器101内的计算机可读指令,从而执行各种功能以及数据处理,即完成视频播放的控制方法。
存储器101作为资源存储的载体,可以是随机存储器、例如高速随机存储器、非易失性存储器,如一个或多个磁性存储装置、闪存、或者其它固态存储器。存储方式可以是短暂存储或者永久存储。
外设接口107可以包括至少一有线或无线网络接口、至少一串并联转换接口、至少一输入输出接口以及至少一USB接口等,用于将外部各种输入/输出装置耦合至存储器101以及处理器105,以实现与外部各种输入/输出装置的通信。
射频模块109用于收发电磁波,实现电磁波与电信号的相互转换,从而通过通讯网络与其他设备进行通讯。通信网络包括蜂窝式电话网、无线局域网或者城域网,上述通信网络可以使用各种通信标准、协议及技术。
定位模块111用于获取终端1100的当前所在的地理位置。定位模块111的实例包括但不限于全球卫星定位***(GPS)、基于无线局域网或者移动通信网的定位技术。
摄像模块113隶属于摄像头,用于拍摄图片或者视频。拍摄的图片或者视频可以存储至存储器101内,还可以通过射频模块109发送至上位机。
音频模块115向用户提供音频接口,其可包括一个或多个麦克风接口、一个或多个扬声器接口以及一个或多个耳机接口。通过音频接口与其它设备进行音频数据的交互。音频数据可以存储至存储器101内,还可以通过射频模块109发送。
触控屏幕117在终端1100与用户之间提供一个输入输出界面。具体地,用户可通过触控屏幕117进行输入操作,例如点击、触摸、滑动等手势操作,以使终端1100对该输入操作进行响应。终端1100则将文字、图片或者视频任意一种形式或者组合所形成的输出内容通过触控屏幕117向用户显示输出。
按键模块119包括至少一个按键,用以提供用户向终端1100进行输入的接口,用户可以通过按下不同的按键使终端1100执行不同的功能。例如,声音调节按键可供用户实现对终端1100播放的声音音量的调节。
可以理解,图12所示的结构仅为示意,终端1100还可包括比图12中所示更多或更少的组件,或者具有与图12所示不同的组件。图12中所示的各组件可以采用硬件、软件或者其组合来实现。
请参阅图13,本申请实施例中提供了一种电子设备400,包括至少一个处理器4001、至少一条通信总线4002以及至少一个存储器4003。
其中,处理器4001和存储器4003相连,如通过通信总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
通信总线4002可包括一通路,在上述组件之间传送信息。通信总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003上存储有计算机可读指令,处理器4001通过通信总线4002读取存储器4003中存储的计算机可读指令。
该计算机可读指令被处理器4001执行时实现上述各实施例中的视频播放的控制方法。
其中,电子设备包括但不限于:台式电脑、笔记本电脑、平板电脑、智能手机等等。
本申请实施例中提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的视频播放的控制方法。
与现有技术相比,终端在暂停播放视频时,能够根据目标索引文件停止向服务器端请求相应的媒体文件,一方面,终端在视频暂停播放的过程中不再进行视频缓存,使得暂停播放时间不再受终端中缓存视频时长的限制,还节省了终端中存储器资源。另一方面,暂停播放时间取决于终端是否向服务器端请求媒体文件,而不再依赖于时间戳,使得终端控制视频恢复播放不再受视频卡顿的影响,从而有效地解决了视频从暂停播放恢复至播放时视频时间跳变的问题,以此充分保证了用户观看视频的连续性。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种视频播放的控制方法,其特征在于,应用于服务器端,所述方法包括:
接收控制指令,所述控制指令是终端在视频播放过程中发送的;
确定所述控制指令的类型;
根据所述控制指令的类型,对目标索引文件进行相应处理;
其中,如果所述控制指令的类型为暂停播放指令,对目标索引文件进行相应处理,以使所述终端在暂停播放所述视频时,根据所述目标索引文件停止向所述服务器端请求相应的媒体文件。
2.如权利要求1所述的方法,其特征在于,所述根据所述控制指令的类型,对目标索引文件进行相应处理,包括:
如果所述控制指令的类型为暂停播放指令,则存储暂停播放时间对应的所述目标索引文件;
将存储的所述目标索引文件返回至所述终端,以使所述终端停止向所述服务器端请求相应的所述媒体文件。
3.如权利要求1所述的方法,其特征在于,所述根据所述控制指令的类型,对目标索引文件进行相应处理,包括:
如果所述控制指令的类型为播放指令,则更新所述目标索引文件;
将更新的所述目标索引文件返回至所述终端,以使所述终端根据更新的所述目标索引文件向所述服务器端请求相应的所述媒体文件。
4.如权利要求3所述的方法,其特征在于,所述更新所述目标索引文件,包括:
获取源索引文件,将所述目标索引文件替换为所述源索引文件。
5.如权利要求3所述的方法,其特征在于,所述更新所述目标索引文件,包括:
确定更新的所述媒体文件;
根据更新的所述媒体文件生成对应的索引;
将所述索引添加至所述目标索引文件,形成更新的所述目标索引文件;或者,
确定存储于所述服务器端中关于所述视频的所述媒体文件;
根据确定的所述媒体文件生成对应的索引;
根据所述索引生成更新的所述目标索引文件。
6.一种视频播放的控制方法,其特征在于,应用于终端,所述方法包括:
在视频播放过程中,向服务器端发送控制指令;
接收所述服务器端根据所述控制指令的类型返回的目标索引文件;
如果所述控制指令的类型为暂停播放指令,在暂停播放所述视频时,根据所述目标索引文件停止向所述服务器端请求相应的媒体文件。
7.一种视频播放的控制装置,其特征在于,应用于服务器端,所述装置包括:
指令接收模块,用于接收控制指令,所述控制指令是终端在视频播放过程中发送的;
指令类型确定模块,用于确定所述控制指令的类型;
文件处理模块,用于根据所述控制指令的类型,对目标索引文件进行相应处理;
其中,如果所述控制指令的类型为暂停播放指令,所述文件处理模块用于对目标索引文件进行相应处理,以使所述终端在暂停播放所述视频时,根据所述目标索引文件停止向所述服务器端请求相应的媒体文件。
8.一种视频播放的控制装置,其特征在于,应用于终端,所述装置包括:
指令发送模块,用于在视频播放过程中,向服务器端发送控制指令;
文件接收模块,用于接收所述服务器端根据所述控制指令的类型返回的目标索引文件;
播放控制模块,用于如果所述控制指令的类型为暂停播放指令,在暂停播放所述视频时,根据所述目标索引文件停止向所述服务器端请求相应的媒体文件。
9.一种电子设备,其特征在于,包括:至少一个处理器、至少一个存储器、以及至少一条通信总线,其中,
所述存储器上存储有计算机可读指令,所述处理器通过所述通信总线读取所述存储器中的所述计算机可读指令;
所述计算机可读指令被所述处理器执行时实现如权利要求1至6中任一项所述的视频播放的控制方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的视频播放的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011085221.5A CN112218165B (zh) | 2020-10-12 | 2020-10-12 | 视频播放的控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011085221.5A CN112218165B (zh) | 2020-10-12 | 2020-10-12 | 视频播放的控制方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112218165A CN112218165A (zh) | 2021-01-12 |
CN112218165B true CN112218165B (zh) | 2023-07-14 |
Family
ID=74053536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011085221.5A Active CN112218165B (zh) | 2020-10-12 | 2020-10-12 | 视频播放的控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112218165B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114173195B (zh) * | 2021-12-10 | 2024-04-12 | 聚好看科技股份有限公司 | 一种显示设备及统计媒资有效播放时长的方法 |
CN114339277A (zh) * | 2021-12-22 | 2022-04-12 | 武汉斗鱼鱼乐网络科技有限公司 | 一种直播间声音屏蔽方法及相关设备 |
CN114339103B (zh) * | 2021-12-31 | 2024-06-18 | 广东泓胜科技股份有限公司 | 查验监管视频管理***实时触发执法记录仪的方法及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219557A (zh) * | 2013-05-31 | 2014-12-17 | 腾讯科技(北京)有限公司 | 一种视频文件播放方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9538142B2 (en) * | 2009-02-04 | 2017-01-03 | Google Inc. | Server-side support for seamless rewind and playback of video streaming |
CN106851326B (zh) * | 2015-12-07 | 2020-12-22 | 北京奇虎科技有限公司 | 一种播放方法和装置 |
-
2020
- 2020-10-12 CN CN202011085221.5A patent/CN112218165B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219557A (zh) * | 2013-05-31 | 2014-12-17 | 腾讯科技(北京)有限公司 | 一种视频文件播放方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112218165A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112218165B (zh) | 视频播放的控制方法、装置、电子设备及存储介质 | |
AU2018202004B2 (en) | Enhanced streaming media playback | |
US10560726B2 (en) | System and method for delivery and caching of personalized media streaming content | |
US10798440B2 (en) | Methods and systems for synchronizing data streams across multiple client devices | |
TWI470983B (zh) | 用以更新超文件傳輸協定內容描述之方法及裝置 | |
EP3456059A1 (en) | System for video playback using a server generated manifest | |
US8817983B2 (en) | Streaming video to cellular phones | |
KR101743228B1 (ko) | 스트리밍 장치 및 그 방법, 이를 이용한 스트리밍 서비스 시스템 및 컴퓨터로 판독 가능한 기록매체 | |
WO2018134660A1 (en) | Content streaming system and method | |
CN113767608B (zh) | 接收会话的媒体数据的方法、装置和非易失性计算机可读介质 | |
US20210021655A1 (en) | System and method for streaming music on mobile devices | |
CN107690093B (zh) | 一种视频播放方法及装置 | |
JP2020072461A (ja) | 送信装置、サーバ装置、送信方法およびプログラム | |
US10171545B2 (en) | System for transferring real-time audio/video stream | |
CN111800649A (zh) | 存储视频的方法和装置以及生成视频的方法和装置 | |
CN101540756A (zh) | 顺序流式传输的随机播放和数据发送方法、***及装置 | |
JP7526414B1 (ja) | サーバ、方法及びコンピュータプログラム | |
CN113225583B (zh) | 云游戏进度处理方法、装置和电子设备 | |
KR102432376B1 (ko) | 콘텐츠 재생 방법 및 시스템 | |
CN117319692A (zh) | 时移播放方法和装置、计算设备、存储介质 | |
CN115022693A (zh) | 一种视频投屏方法、装置、设备及存储介质 | |
CN115460471A (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 |