一种云存视频播放方法和播放器与流程
未命名
10-18
阅读:99
评论:0
1.本发明涉及云存视频技术领域,具体涉及一种云存视频播放方法和播放器。
背景技术:
2.云存储是一种网上在线存储的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上。托管公司运营大型的数据中心,需要数据存储托管的人,则通过向其购买或租赁存储空间的方式,来满足数据存储的需求。数据中心营运商根据客户的需求,在后端准备存储虚拟化的资源,并将其以存储资源池的方式提供,客户便可自行使用此存储资源池来存放文件或对象。
3.m3u8文件是指utf-8编码格式的m3u8文件,m3u8是一种索引文件,通常一个音视频文件会被分割成若干小文件,然后通过m3u8记录每个文件的地址与播放顺序。在实际播放网页视频的时候,实际上是通过它来解析放在服务器上的各分块音视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为它可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。m3u8是一种常见的流媒体格式,主要以文件列表的形式存在,既支持直播又支持点播,尤其在android(安卓)、ios(移动操作系统)等平台最为常用。
4.现有技术大多依赖第三方m3u8播放器框架,完成支持m3u8格式播放后,通过请求后端接口获取云存视频数据,返回的数据里解析出某片段的m3u8地址,并且把播放地址设置到m3u8播放器,完成云存视频的播放。在同一时间内之只能加载单个m3u8地址,在播放时并不能定位到播放点进行播放相关的视频数据。
技术实现要素:
5.本发明针对现有技术中的上述不足,提供了一种云存视频播放方法和播放器,以解决上述技术问题中的至少一个。
6.具体的,一种云存视频播放方法,包括以下步骤:
7.(ⅰ)通过app触发云存播放
8.(ⅱ)通过所述app向sdk请求创建播放器;
9.(ⅲ)通过所述播放器将从向后端请求到的云存视频数据中解析出m3u8地址;
10.(ⅳ)通过所述播放器根据所述m3u8地址下载ts文件;
11.(
ⅴ
)通过所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;
12.(ⅵ)当可设置ts文件状态接口为可设置时,正常播放。
13.上述技术方案中,优选的,所述播放文件接口设置到ts文件缓冲队列后,将向上层开放三个状态接口,所述状态接口包括:所述可设置ts文件状态接口、加载状态接口以及播放状态接口。
14.上述技术方案中,优选的,当所述可设置ts文件状态接口为可设置时,在线程中读
取上层的所述播放缓冲队列的ts文件,设置到底层播放中,所述底层播放根据所述ts文件缓冲队列进行正常播放。
15.上述技术方案中,优选的,在所述正常播放状态下,播放状态接口返回当前播放数据,所述播放数据包括播放时间戳。
16.上述技术方案中,优选的,当所述ts文件缓冲队列没有数据,则会在所述加载状态接口返回正在加载的状态值。
17.上述技术方案中,优选的,所述根据所述m3u8地址下载ts文件包括以下步骤:
18.(s1)根据所述m3u8地址请求到流媒体数据;
19.(s2)根据所述流媒体数据中的ts文件下载地址下载所述ts文件。
20.上述技术方案中,优选的,所述ts文件下载到本设备的磁盘中,当所述ts文件视频时长超过2小时的时候,所述播放器将删除最先下载的ts文件。
21.上述技术方案中,优选的,所述播放器设置有本地录制视频功能和截图功能,所述截图功能包括读取所述云存视频帧数据并保存到设备磁盘。
22.所述云存视频数据设置有视频数据接口,所述视频接口用于开放原始视频数据。
23.本发明还提供了一种云存视频播放器,包括:
24.触发模块,用于通过app触发云存播放
25.请求模块,用于通过所述app向sdk请求创建播放器;
26.解析模块,用于通过所述播放器将从向后端请求到的云存视频数据中解析出m3u8地址;
27.下载模块,用于通过所述播放器根据所述m3u8地址下载ts文件;
28.设置模块,用于所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;
29.播放模块,用于当可设置ts文件状态接口为可设置时,正常播放。
30.本发明提供的一种云存视频播放方法和播放器主要的有益效果包括:云存视频播放方法包括以下步骤:(ⅰ)app触发云存播放;(ⅱ)所述app向sdk请求创建播放器;(ⅲ)所述播放器将从向后端请求到的云存视频数据中解析出m3u8地址;(ⅳ)所述播放器根据所述m3u8地址下载ts文件;(
ⅴ
)所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;(ⅵ)当可设置ts文件状态接口为可设置时,正常播放。
31.进一步地,播放文件接口设置到ts文件缓冲队列后,将向上层开放三个状态接口,状态接口包括:可设置ts文件状态接口、加载状态接口以及播放状态接口。当可设置ts文件状态接口为可设置时,在线程中读取上层的播放缓冲队列的ts文件,设置到底层播放中,底层播放根据ts文件缓冲队列进行正常播放。在正常播放状态下,播放状态接口返回当前播放数据,播放数据包括播放时间戳。
32.本发明支持同时加载多个m3u8视频地址,并且支持精准定位播放到某个m3u8视频某个时间点,同时支持了本地录制视频和截图功能。当ts文件视频时长超过2小时的时候,播放器将删除最先下载的ts文件,避免了缓存过大引起设备磁盘空间占满的情况。
附图说明
33.下面结合附图和实施例对本发明进一步说明。
34.图1是本发明一种云存视频播放方法的步骤图;
35.图2是本发明一种云存视频播放方法的流程图;
36.图3是本发明一种云存视频播放器的结构示意图。
具体实施方式
37.以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。
38.在下文中,将更全面地描述本发明的各种实施例。本发明可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本发明的各种实施例限于在此公开的特定实施例的意图,而是应将本发明理解为涵盖落入本发明的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。
39.在下文中,可在本发明的各种实施例中使用的术语“包括”或“可包括”指示所公开的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本发明的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
40.在本发明的各种实施例中,表述“或”或“a或/和b中的至少一个”包括同时列出的文字的任何组合或所有组合。例如,表述“a或b”或“a或/和b中的至少一个”可包括a、可包括b或可包括a和b二者。
41.在本发明的各种实施例中使用的表述(诸如“第一”、“第二”等)可修饰在各种实施例中的各种组成元件,不过可不限制相应组成元件。例如,以上表述并不限制所述元件的顺序和/或重要性。以上表述仅用于将一个元件与其它元件区别开的目的。例如,第一用户装置和第二用户装置指示不同用户装置,尽管二者都是用户装置。例如,在不脱离本发明的各种实施例的范围的情况下,第一元件可被称为第二元件,同样地,第二元件也可被称为第一元件。
42.应注意到:在本发明中,除非另有明确的规定和定义,“安装”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接、也可以是可拆卸连接、或者一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也是可以通过中间媒介间接相连;可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
43.在本发明中,本领域的普通技术人员需要理解的是,文中指示方位或者位置关系的术语为基于附图所示的方位或者位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或者元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
44.在本发明的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本发明的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清
楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
45.具体的,一种云存视频播放方法,如图1所示,包括以下步骤:
46.步骤101、通过app触发云存播放
47.步骤102、通过app向sdk请求创建播放器;
48.步骤103、通过播放器将从向后端请求到的云存视频数据中解析出m3u8地址;
49.步骤104、通过播放器根据m3u8地址下载ts文件;
50.步骤105、通过播放器将ts文件设置到播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;
51.步骤106、当可设置ts文件状态接口为可设置时,正常播放。
52.优选的,app(application)指手机或平板电脑等移动终端上的应用,sdk(software development kit)指软件开发工具包。ts(transport stream)指传输流,ts实际是面向数字化分配媒介(有线、卫星、地面网)的传输层接口。
53.上述技术方案中,优选的,播放文件接口设置到ts文件缓冲队列后,将向上层开放三个状态接口,状态接口包括:可设置ts文件状态接口、加载状态接口以及播放状态接口。当可设置ts文件状态接口为可设置时,在线程中读取上层的播放缓冲队列的ts文件,设置到底层播放中,底层播放根据ts文件缓冲队列进行正常播放。在正常播放状态下,播放状态接口返回当前播放数据,播放数据包括播放时间戳。当ts文件缓冲队列没有数据,则会在加载状态接口返回正在加载的状态值,提供上层实现相关播放业务逻辑。
54.优选的,根据m3u8地址下载ts文件包括以下步骤:
55.(s1)根据m3u8地址请求到流媒体数据;
56.(s2)根据流媒体数据中的ts文件下载地址下载ts文件。
57.优选的,ts文件下载到移动终端的磁盘中,当ts文件视频时长超过2小时的时候,播放器将删除最先下载的ts文件,能够确保移动终端磁盘不会因为ts文件引起磁盘空间占用问题。
58.优选的,播放器设置有本地录制视频功能和截图功能,截图功能包括读取云存视频帧数据并转换成jpg格式保存到设备磁盘,云存视频数据设置有视频数据接口,视频接口用于开放原始视频数据。
59.如图2所示,本发明的一种云存视频播放方法具体原理如下:首先用户在移动终端的app上触发云存视频播放;app向sdk请求创建视频播放器;创建视频播放器成功后,播放器向后端请求云存视频数据,再根据向后端请求到的云存视频数据中解析出m3u8地址;播放器首先根据m3u8地址请求到流媒体数据,再根据流媒体数据中的ts文件下载地址,将ts文件下载到移动终端的磁盘中;当ts文件视频时长超过2小时的时候,播放器将删除最先下载的ts文件,能够确保移动终端磁盘不会因为ts文件引起磁盘空间占用问题;然后播放器将ts文件设置到播放器的播放缓冲队列中,同时启动线程进行轮询机制检测播放文件接口状态;将播放文件接口设置到ts文件缓冲队列后,将向上层开发三个状态接口,状态接口包
括:可设置ts文件状态接口、加载状态接口以及播放状态接口;当可设置ts文件状态接口为可设置时,在线程中读取上层的播放缓冲队列的ts文件,设置到底层播放中,底层播放根据ts文件缓冲队列进行正常播放;在正常播放状态下,播放状态接口返回当前播放数据,播放数据包括播放时间戳;当ts文件缓冲队列没有数据,则会在加载状态接口返回正在加载的状态值,提供上层实现相关播放业务逻辑。
60.本发明支持同时加载多个m3u8视频地址,并且支持精准定位播放到某个m3u8视频某个时间点,同时支持了本地录制视频和截图功能。当ts文件视频时长超过2小时的时候,播放器将删除最先下载的ts文件,避免了缓存过大引起设备磁盘空间占满的情况。
61.本发明实施例还提供了一种云存视频播放器,如图3所示,包括:
62.触发模块201,用于通过app触发云存播放
63.请求模块202,用于通过所述app向sdk请求创建播放器;
64.解析模块203,用于通过所述播放器将从向后端请求到的云存视频数据中解析出m3u8地址;
65.下载模块204,用于通过所述播放器根据所述m3u8地址下载ts文件;
66.设置模块205,用于所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;
67.播放模块206,用于当可设置ts文件状态接口为可设置时,正常播放。
68.以上是对本发明的较佳实施进行了具体说明,但本实用新型创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
技术特征:
1.一种云存视频播放方法,其特征在于,包括以下步骤:(ⅰ)通过app触发云存播放(ⅱ)通过所述app向sdk请求创建播放器;(ⅲ)通过所述播放器将从向后端请求到的云存视频数据中解析出m3u8地址;(ⅳ)通过所述播放器根据所述m3u8地址下载ts文件;(
ⅴ
)通过所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;(ⅵ)当可设置ts文件状态接口为可设置时,正常播放。2.根据权利要求1所述的一种云存视频播放方法,其特征在于,所述播放文件接口设置到ts文件缓冲队列后,将向上层开放三个状态接口,所述状态接口包括:所述可设置ts文件状态接口、加载状态接口以及播放状态接口。3.根据权利要求2所述的一种云存视频播放方法,其特征在于,当所述可设置ts文件状态接口为可设置时,在线程中读取上层的所述播放缓冲队列的ts文件,设置到底层播放中,所述底层播放根据所述ts文件缓冲队列进行正常播放。4.根据权利要求3所述的一种云存视频播放方法,其特征在于,在所述正常播放状态下,所述播放状态接口返回当前播放数据,所述播放数据包括播放时间戳。5.根据权利要求3所述的一种云存视频播放方法,其特征在于,当所述ts文件缓冲队列没有数据,则会在所述加载状态接口返回正在加载的状态值。6.根据权利要求1所述的一种云存视频播放方法,其特征在于,所述根据所述m3u8地址下载ts文件包括以下步骤:(s1)根据所述m3u8地址请求到流媒体数据;(s2)根据所述流媒体数据中的ts文件下载地址下载所述ts文件。7.根据权利要求1所述的一种云存视频播放方法,其特征在于,所述ts文件下载到本设备的磁盘中,当所述ts文件视频时长超过2小时的时候,所述播放器将删除最先下载的ts文件。8.根据权利要求1所述的一种云存视频播放方法,其特征在于,所述播放器设置有本地录制视频功能和截图功能,所述截图功能包括读取所述云存视频帧数据并保存到设备磁盘。9.根据权利要求1所述的一种云存视频播放方法,其特征在于,所述云存视频数据设置有视频数据接口,所述视频接口用于开放原始视频数据。10.一种云存视频播放器,其特征在于,包括:触发模块,用于通过app触发云存播放请求模块,用于通过所述app向sdk请求创建播放器;解析模块,用于通过所述播放器将从向后端请求到的云存视频数据中解析出m3u8地址;下载模块,用于通过所述播放器根据所述m3u8地址下载ts文件;设置模块,用于所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;播放模块,用于当可设置ts文件状态接口为可设置时,正常播放。
技术总结
本发明提供的一种云存视频播放方法和播放器主要的有益效果包括:云存视频播放方法包括以下步骤:APP触发云存播放;所述APP向SDK请求创建播放器;所述播放器将从向后端请求到的云存视频数据中解析出M3U8地址;所述播放器根据所述M3U8地址下载ts文件;所述播放器将所述ts文件设置到所述播放器的播放缓冲队列中并启动线程进行轮询机制检测播放文件接口状态;当可设置ts文件状态接口为可设置时,正常播放。本发明播放器支持精准定位播放到某个M3U8视频某个时间点,同时支持了本地录制视频和截图功能。当ts文件视频时长超过2小时的时候,播放器将删除最先下载的ts文件,避免了缓存过大引起设备磁盘空间占满的情况。引起设备磁盘空间占满的情况。引起设备磁盘空间占满的情况。
技术研发人员:陆思廷 尹继圣 刘大照 朱正伟
受保护的技术使用者:深圳感臻智能股份有限公司
技术研发日:2023.05.29
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
