CN108156474A - 一种视频播放方法及装置 - Google Patents

一种视频播放方法及装置 Download PDF

Info

Publication number
CN108156474A
CN108156474A CN201711482713.6A CN201711482713A CN108156474A CN 108156474 A CN108156474 A CN 108156474A CN 201711482713 A CN201711482713 A CN 201711482713A CN 108156474 A CN108156474 A CN 108156474A
Authority
CN
China
Prior art keywords
video
request
server
section
foradownloaded
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.)
Pending
Application number
CN201711482713.6A
Other languages
English (en)
Inventor
孙旭让
郑晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201711482713.6A priority Critical patent/CN108156474A/zh
Publication of CN108156474A publication Critical patent/CN108156474A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-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/47202End-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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4882Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

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

本发明实施例中公开了一种视频播放方法及装置,解析视频播放请求,获得请求播放的视频的统一资源定位符URL;根据URL判断本地缓存中是否缓存有完整的请求播放的视频;如果是,则直接播放本地缓存中缓存的完整的请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。基于上述方法及装置,能够在iOS平台上实现成本低且高效稳定的视频播放。

Description

一种视频播放方法及装置
技术领域
本发明涉及网络技术领域,具体涉及一种视频播放方法及装置。
背景技术
随着网络技术的发展,人们越来越依赖于从网络获取信息,比如观看视频。相比传统的视频观看方式,在移动设备上观看视频为人们提供了更多的便捷。由于视频的清晰度的提高,视频文件的大小也随之增大,如果采用传统先下载再播放模式则会增加用户的等待时间,降低产品的体验。因此,要想达到较好的效果,就需要实现对视频文件的流媒体播放。
在iOS平台上,现有视频的播放方式通常有以下三种:
第一种,iOS系统提供了AVFoundation框架来处理音视频,AVFoundation提供了AVPlayer与AVAsset等类来实现本地或者在线视频的播放。其中AVAsset需要通过待播放视频的URL(Uniform Resource Locator,统一资源定位符)初始化一个播放资源AVPlayerItem,然后将AVPlayerItem传给AVPlayer,AVPlayer基于AVPlayerItem播放视频。但是,这种方式是通过iOS系统的接口来实现,整个视频数据的下载过程都由iOS系统自动完成,开发者无法获取下载的数据,因此没办法对视频进行缓存,可控性较差,不利于扩展。
第二种,根据待播放视频的URL将视频下载到本地,再由播放器播放本地视频。但是这种方式,当视频较大,或者网络状况较差的时候,下载视频需要耗费的时间过长,严重影响用户的体验,造成用户流失。
第三种,创建一个本地代理服务器或者使用第三方库HTTP Sever作为本地代理服务器,然后在iOS系统开启Local Server服务,接着使用播放控件请求本地代理服务,本地代理服务器通过不断请求视频地址获取视频流,同时在请求的过程中把下载到的视频数据缓存到本地。最后将本地的缓存的数据拼接成数据流,交给播放控件,播放控件即可正常播放视频。但是这种方式,开发成本高,且,如果缓存多个视频并互相切换,本地代理服务器提供的数据很不稳定,崩溃概率非常大。
因此,如何在iOS平台上实现成本低且高效稳定的视频播放,成为本领域亟待解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种视频播放方法及装置,能够在iOS平台上实现成本低且高效稳定的视频播放。
为实现上述目的,本发明实施例提供如下技术方案:
一种视频播放方法,包括:
接收视频播放请求;
解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;
如果是,则直接播放本地缓存中缓存的完整的所述请求播放的视频;
如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
可选的,所述判断所述服务器返回的至少一个已下载视频是否是完整的所述请求播放的视频,包括:
在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
可选的,所述停止播放指令包括:
与所述服务器之间的连接中断后重新连接。
可选的,所述方法还包括:
在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
可选的,所述视频下载请求中包括偏移量信息,则在向所述服务器发送视频下载请求之前,所述方法还包括:
判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则调整所述下载请求中的包括的偏移量信息,使调整后的偏移量信息指示的偏移量大于本地缓存的偏移量。
一种视频播放装置,包括:
播放器模块,用于接收视频播放请求;
请求解析模块,用于解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
数据缓存模块,用于根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则控制所述播放器模块直接播放本地缓存中缓存的完整的所述请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
可选的,所述数据缓存模块具体用于:
在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
可选的,所述停止播放指令包括:
与所述服务器之间的连接中断后重新连接。
可选的,所述播放器模块还用于:
在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
可选的,所述视频下载请求中包括偏移量信息,则所述数据下载模块还用于:
在向所述服务器发送视频下载请求之前,判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则调整所述下载请求中的包括的偏移量信息,使调整后的偏移量信息指示的偏移量大于本地缓存的偏移量。
基于上述技术方案,本发明实施例中公开了一种视频播放方法及装置,接收视频播放请求;解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则直接播放本地缓存中缓存的完整的所述请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。基于上述方法及装置,能够在iOS平台上实现成本低且高效稳定的视频播放。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种视频播放方法的流程示意图;
图2为本发明实施例提供的又一种视频播放方法的流程示意图;
图3为本发明实施例提供的再一种视频播放方法的流程示意图;
图4为本发明实施例公开的一种视频播放装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在iOS平台上,现有视频的播放方式通常有以下三种:
第一种,iOS系统提供了AVFoundation框架来处理音视频,AVFoundation提供了AVPlayer与AVAsset等类来实现本地或者在线视频的播放。其中AVAsset需要通过待播放视频的URL(Uniform Resource Locator,统一资源定位符)初始化一个播放资源AVPlayerItem,然后将AVPlayerItem传给AVPlayer,AVPlayer基于AVPlayerItem播放视频。但是,这种方式是通过iOS系统的接口来实现,整个视频数据的下载过程都由iOS系统自动完成,开发者无法获取下载的数据,因此没办法对视频进行缓存,可控性较差,不利于扩展。
第二种,根据待播放视频的URL将视频下载到本地,再由播放器播放本地视频。但是这种方式,当视频较大,或者网络状况较差的时候,下载视频需要耗费的时间过长,严重影响用户的体验,造成用户流失。
第三种,创建一个本地代理服务器或者使用第三方库HTTP Sever作为本地代理服务器,然后在iOS系统开启Local Server服务,接着使用播放控件请求本地代理服务,本地代理服务器通过不断请求视频地址获取视频流,同时在请求的过程中把下载到的视频数据缓存到本地。最后将本地的缓存的数据拼接成数据流,交给播放控件,播放控件即可正常播放视频。但是这种方式,开发成本高,且,如果缓存多个视频并互相切换,本地代理服务器提供的数据很不稳定,崩溃概率非常大。
因此,本发明实施例提供一种视频播放方法及装置,能够在iOS平台上实现成本低且高效稳定的视频播放。下面将通过以下实施例详细说明。
请参阅附图1,图1为本发明实施例提供的一种视频播放方法的流程示意图,该方法具体包括如下步骤:
步骤S100,接收视频播放请求;
步骤S110,解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
步骤S120,根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则执行步骤S130,如果否,则执行步骤S140至步骤S160。
步骤S130,直接播放本地缓存中缓存的完整的所述请求播放的视频;
步骤S140,确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;
步骤S150,将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;
步骤S160,判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
具体的,当所述请求播放的视频包含多个视频段时,先向所述服务器发送第一个视频下载请求,所述第一个视频下载请求用于指示向所述服务器请求下载所述请求播放的视频的第一个视频段,接收所述服务器返回的所述第一个视频段,并将所述第一个视频段保存在临时缓存中,播放器从所述临时缓存中获取所述第一个视频段,进行播放,当所述第一个视频段即将播放结束时,就向所述服务器发送第二个视频下载请求,所述第二个视频下载请求用于指示向所述服务器请求下载所述请求播放的视频的第二个视频段,接收所述服务器返回的所述第二个视频段,并将所述第二个视频段保存在临时缓存中与所述第一个视频段进行拼接,判断拼接完成的视频是否是所述请求播放的视频的完整视频,如果是,就将拼接完成的视频转移到本地缓存,如果不是,就继续向所述服务器发送视频下载请求,直至所述请求播放的视频的完整视频全部下载完毕并在所述本地缓存中拼接完成为止。
可选的,所述判断所述服务器返回的至少一个已下载视频是否是完整的所述请求播放的视频,包括:在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
可选的,所述停止播放指令包括:与所述服务器之间的连接中断后重新连接。
本实施例中公开了一种视频播放方法,接收视频播放请求;解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则直接播放本地缓存中缓存的完整的所述请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。基于上述方法,能够在iOS平台上实现成本低且高效稳定的视频播放。
请参阅附图2,图2为本发明实施例提供的又一种视频播放方法的流程示意图,该方法具体包括如下步骤:
步骤S200,接收视频播放请求;
步骤S210,解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
步骤S220,根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则执行步骤S230,如果否,则执行步骤S240至步骤S270。
步骤S230,直接播放本地缓存中缓存的完整的所述请求播放的视频;
步骤S240,确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;
步骤S250,将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;
步骤S260,在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
步骤S270,判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
可选的,所述判断所述服务器返回的至少一个已下载视频是否是完整的所述请求播放的视频,包括:在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
可选的,所述停止播放指令包括:与所述服务器之间的连接中断后重新连接。
本实施例中,在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。能够提升用户体验。
请参阅附图3,图3为本发明实施例提供的再一种视频播放方法的流程示意图,该方法具体包括如下步骤:
步骤S300,接收视频播放请求;
步骤S310,解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
步骤S320,根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则执行步骤S330,如果否,则执行步骤S340至步骤S380。
步骤S330,直接播放本地缓存中缓存的完整的所述请求播放的视频;
步骤S340,确定所述URL所在的服务器,生成包括偏移量信息的视频下载请求,判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则调整所述下载请求中的包括的偏移量信息,使调整后的偏移量信息指示的偏移量大于本地缓存的偏移量。
步骤S350,向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;
步骤S360,将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;
步骤S370,在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
步骤S380,判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
可选的,所述判断所述服务器返回的至少一个已下载视频是否是完整的所述请求播放的视频,包括:在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
可选的,所述停止播放指令包括:与所述服务器之间的连接中断后重新连接。
本实施例中,所述视频下载请求中包括偏移量信息,则在向所述服务器发送视频下载请求之前,所述方法还包括:判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。基于此,能够保证视频下载请求的有效性,从而能够进一步保证在iOS平台上实现成本低且高效稳定的视频播放。
请参阅附图4,图4为本发明实施例公开的一种视频播放装置的结构示意图,该装置包括:
播放器模块100,用于接收视频播放请求;
请求解析模块110,用于解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
数据缓存模块120,用于根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则控制所述播放器模块直接播放本地缓存中缓存的完整的所述请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
可选的,所述数据缓存模块具体用于:
在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
可选的,所述停止播放指令包括:
与所述服务器之间的连接中断后重新连接。
可选的,所述播放器模块还用于:
在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
可选的,所述视频下载请求中包括偏移量信息,则所述数据下载模块还用于:
在向所述服务器发送视频下载请求之前,判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则调整所述下载请求中的包括的偏移量信息,使调整后的偏移量信息指示的偏移量大于本地缓存的偏移量。
需要说明的是,上述各个模块的具体功能实现已在方法实施例说明,本实施例不再赘述。
综上所述:
本发明实施例中公开了一种视频播放方法及装置,接收视频播放请求;解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则直接播放本地缓存中缓存的完整的所述请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。基于上述方法及装置,能够在iOS平台上实现成本低且高效稳定的视频播放。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种视频播放方法,其特征在于,包括:
接收视频播放请求;
解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;
如果是,则直接播放本地缓存中缓存的完整的所述请求播放的视频;
如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
2.根据权利要求1所述的方法,其特征在于,所述判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,包括:
在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
3.根据权利要求2所述的方法,其特征在于,所述停止播放指令包括:
与所述服务器之间的连接中断后重新连接。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
5.根据权利要求1所述的方法,其特征在于,所述视频下载请求中包括偏移量信息,则在向所述服务器发送视频下载请求之前,所述方法还包括:
判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则调整所述下载请求中的包括的偏移量信息,使调整后的偏移量信息指示的偏移量大于本地缓存的偏移量。
6.一种视频播放装置,其特征在于,包括:
播放器模块,用于接收视频播放请求;
请求解析模块,用于解析所述视频播放请求,获得请求播放的视频的统一资源定位符URL;
数据缓存模块,用于根据所述URL判断本地缓存中是否缓存有完整的所述请求播放的视频;如果是,则控制所述播放器模块直接播放本地缓存中缓存的完整的所述请求播放的视频;如果否,则确定所述URL所在的服务器,并向所述服务器发送至少一个视频下载请求,以使所述服务器每接收到一个视频下载请求都返回一个已下载视频段;将所述服务器返回的至少一个已下载视频段进行播放并保存在临时缓存中;判断所述服务器返回的至少一个已下载视频段是否是完整的所述请求播放的视频,如果是,则将所述临时缓存中保存的所述至少一个已下载视频段缓存至本地缓存。
7.根据权利要求6所述的装置,其特征在于,所述数据缓存模块具体用于:
在播放所述至少一个已下载视频段的过程中如果收到停止播放指令,则判断所述服务器返回的所述至少一个已下载视频段不是完整的所述请求播放的视频。
8.根据权利要求7所述的装置,其特征在于,所述停止播放指令包括:
与所述服务器之间的连接中断后重新连接。
9.根据权利要求8所述的装置,其特征在于,所述播放器模块还用于:
在与所述服务器之间的连接状态正常的情况下,接收到播放进度调整指令,且所述播放进度调整指令指示的待播放视频段还未下载时,显示正在加载的提示信息。
10.根据权利要求6所述的方法,其特征在于,所述视频下载请求中包括偏移量信息,则所述数据下载模块还用于:
在向所述服务器发送视频下载请求之前,判断所述视频下载请求中包括的偏移量信息指示的偏移量是否大于本地缓存的偏移量,如果是,则向所述服务器发送所述视频下载请求,如果否,则调整所述下载请求中的包括的偏移量信息,使调整后的偏移量信息指示的偏移量大于本地缓存的偏移量。
CN201711482713.6A 2017-12-29 2017-12-29 一种视频播放方法及装置 Pending CN108156474A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711482713.6A CN108156474A (zh) 2017-12-29 2017-12-29 一种视频播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711482713.6A CN108156474A (zh) 2017-12-29 2017-12-29 一种视频播放方法及装置

Publications (1)

Publication Number Publication Date
CN108156474A true CN108156474A (zh) 2018-06-12

Family

ID=62460346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711482713.6A Pending CN108156474A (zh) 2017-12-29 2017-12-29 一种视频播放方法及装置

Country Status (1)

Country Link
CN (1) CN108156474A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965910A (zh) * 2018-08-09 2018-12-07 网宿科技股份有限公司 一种视频缓存方法及播放器
CN114051152A (zh) * 2022-01-17 2022-02-15 飞狐信息技术(天津)有限公司 视频播放方法及装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521279A (zh) * 2011-11-25 2012-06-27 Tcl集团股份有限公司 一种流媒体文件播放方法、系统及播放器
CN104581404A (zh) * 2013-10-21 2015-04-29 腾讯科技(深圳)有限公司 多媒体数据的处理方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521279A (zh) * 2011-11-25 2012-06-27 Tcl集团股份有限公司 一种流媒体文件播放方法、系统及播放器
CN104581404A (zh) * 2013-10-21 2015-04-29 腾讯科技(深圳)有限公司 多媒体数据的处理方法、装置及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965910A (zh) * 2018-08-09 2018-12-07 网宿科技股份有限公司 一种视频缓存方法及播放器
CN108965910B (zh) * 2018-08-09 2022-05-10 网宿科技股份有限公司 一种视频缓存方法及播放器
CN114051152A (zh) * 2022-01-17 2022-02-15 飞狐信息技术(天津)有限公司 视频播放方法及装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US10110507B2 (en) Push-based transmission of resources and correlated network quality estimation
US8825790B2 (en) Caching of fragmented streaming media
CN105025351B (zh) 流媒体播放器缓冲的方法及装置
CN107426629B (zh) 一种流媒体文件处理方法及直播系统
US9521214B2 (en) Application acceleration with partial file caching
CN104185996A (zh) 用于基于iso基媒体文件格式的自适应流媒体的安全异步事件通知的系统和方法
WO2011123187A1 (en) Receiver and method for reporting the usage of advanced television services
CN105451071B (zh) 一种视频流的处理方法、装置和系统
US9407723B2 (en) Smart packaging for mobile applications
CN103686198A (zh) 视频数据的处理方法、装置和系统
EP2953083A1 (en) Multiple playback local ad rotation
US11863841B2 (en) Video playing control method and system
CN106658226A (zh) 一种播放方法及装置
CN110247985A (zh) 一种资源下载方法、装置、电子设备及介质
CN103414959B (zh) 一种加快网络视频播放速度的方法和装置
US20220394360A1 (en) Real-time ad tracking proxy
CN108156474A (zh) 一种视频播放方法及装置
CN110149560A (zh) 基于hls协议的播放器优化方法及系统、存储介质及终端
CN107302727A (zh) 一种直播视频分片的下载方法、装置及系统
CN106303754A (zh) 一种音频数据播放方法及装置
CN110213671A (zh) 一种热点短视频确定方法和装置
WO2019114956A1 (en) Controlling playout of advertisement content during video-on-demand video streaming on an en-user terminal
CN104333781B (zh) 一种在cdn网络中预取直播节目信息的方法与设备
CN111510790B (zh) 视频请求方法、系统、计算机设备及计算机可读存储介质
CN106713948A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180612