CN111031385A - 视频播放的方法及装置 - Google Patents
视频播放的方法及装置 Download PDFInfo
- Publication number
- CN111031385A CN111031385A CN201911329170.3A CN201911329170A CN111031385A CN 111031385 A CN111031385 A CN 111031385A CN 201911329170 A CN201911329170 A CN 201911329170A CN 111031385 A CN111031385 A CN 111031385A
- Authority
- CN
- China
- Prior art keywords
- video
- playing
- data
- video data
- time
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 64
- 230000001172 regenerating effect Effects 0.000 claims abstract description 10
- 238000001514 detection method Methods 0.000 claims description 63
- 238000004891 communication Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 18
- 238000012937 correction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 9
- 101100122750 Caenorhabditis elegans gop-2 gene Proteins 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 101000946275 Homo sapiens Protein CLEC16A Proteins 0.000 description 4
- 102100034718 Protein CLEC16A Human genes 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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/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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® 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/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/44008—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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/4402—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 reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种视频播放的方法及装置,属于视频播放技术领域。该方法中,OTT客户端可以获取待播放的视频数据,视频数据包含多个图像组;判断视频数据包含的各图像组的播放时间是否连续;如果各图像组中,存在相邻的两个图像组的播放时间不连续,则对相邻的两个图像组的播放时间进行时间校准处理,时间校准处理用于将两个图像组的播放时间修改为连续的时间;根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据,并根据切片数据重新生成M3U8文件;基于本地的媒体播放器和M3U8文件对切片数据进行播放。采用本发明,可以避免无法播放视频或播放卡顿的问题,改善了视频播放的效果。
Description
技术领域
本发明涉及视频播放技术领域,特别是涉及一种视频播放的方法及装置。
背景技术
目前,越来越多的用户开始通过安卓TV客户端来观看视频。用户可以在安卓TV客户端观看视频时,可以选择需要观看的视频,安卓TV客户端则会根据预设的该视频的URL,向后台服务器发送视频请求。服务器接收到视频请求后,将该视频的视频数据发送给该安卓TV客户端,安卓TV客户端则可以通过MediaPlayer(媒体播放器)对接收到的视频数据进行播放。
然而,由于安卓TV客户端接收到的视频数据可能不满足播放条件,比如由于网络波动原因导致视频数据丢失,或接收到的数据的格式不满足预设的播放格式,此时,MediaPlayer将无法播放该视频或播放卡顿,导致视频播放的效果较差。
发明内容
本发明实施例的目的在于提供一种视频播放的方法及装置,以避免无法播放视频或播放卡顿的问题,改善视频播放的效果。具体技术方案如下:
第一方面,提供了一种视频播放的方法,所述方法应用于OTT客户端,所述方法包括:
获取待播放的视频数据,所述视频数据包含多个图像组;
判断所述视频数据包含的各图像组的播放时间是否连续;
如果所述各图像组中,存在相邻的两个图像组的播放时间不连续,则对所述相邻的两个图像组的播放时间进行时间校准处理,所述时间校准处理用于将所述两个图像组的播放时间修改为连续的时间;
根据预设的视频播放规则,对所述时间校准处理后的视频数据进行切片,得到切片数据,并根据所述切片数据重新生成M3U8文件;
基于本地的媒体播放器和所述M3U8文件对所述切片数据进行播放。
可选的,所述对所述相邻的两个图像组的播放时间进行时间校准处理,包括:
在所述相邻的两个图像组中,确定播放顺序在前的第一图像组中最后一个视频帧的播放时间戳与预设帧间隔的和值,得到目标播放时间戳;
将所述目标播放时间戳作为所述相邻的两个图像组中播放顺序在后的第二图像组中第一个视频帧的播放时间戳,并根据所述目标播放时间戳更新所述第一个视频帧之后的其他视频帧的播放时间戳。
可选的,所述获取待播放的视频数据,包括:
接收服务器发送的第一视频流的视频数据;
判断所述视频数据是否满足预设的有效性检测条件;
如果所述视频数据满足所述有效性检测条件,则将所述视频数据作为待播放的视频数据;
如果所述视频数据不满足所述有效性检测条件,则基于数据修正规则,对所述视频数据进行修正处理,得到满足所述有效性检测条件的视频数据。
可选的,所述有效性检测条件至少包括以下的一个或多个:所述视频数据的起始数据为预设视频格式的起始数据、所述视频数据包含的切片数据以预设数据包为单位、待播放的第一个切片数据中的起始数据为关键帧。
可选的,所述判断所述视频数据是否满足预设的有效性检测条件之前,还包括:
判断所述视频数据的格式是否为预设视频格式;
如果所述视频数据的格式不为预设视频格式,则将所述视频数据转换为所述预设视频格式的视频数据。
可选的,所述方法还包括:
获取当前所述媒体播放器播放的视频帧的第一时间信息、以及已向所述媒体播放器发送的目标切片数据的第二时间信息,所述目标切片数据为发送时间与当前时间最接近的切片数据;
计算所述第一时间信息与所述第二时间信息的时间间隔,作为可播时长;
如果所述可播时长大于或等于预设时长阈值,则停止缓存待播放的视频数据。
可选的,所述获取待播放的视频数据,包括:
在播放第二视频流的过程中,如果检测到视频流切换指令,则从服务器中下载待切换的第三视频流的视频数据、以及所述第三视频流的编解码信息;
所述判断所述视频数据包含的各图像组的播放时间是否连续,包括:
根据已存储的所述第二视频流的编解码信息和所述第三视频流的编解码信息进行平滑检测;
如果检测结果为能够进行平滑切换,则判断当前缓存的所述第二视频流的图像组与所述第三视频流的图像组的播放时间是否连续。
可选的,所述方法还包括:
当接收到音频切换指令时,从服务器中下载待使用的目标音频数据;
丢弃所述视频数据中的音频数据,并根据预先存储的各图像组对应的播放时间戳、以及所述目标音频数据对应播放时间,确定各图像组对应的音频数据,并整合成新的视频数据;
所述判断所述视频数据包含的各图像组的播放时间是否连续,包括:
判断所述新的视频数据包含的各图像组的播放时间是否连续。
第二方面,提供了一种视频播放的装置,所述装置应用于OTT客户端,所述装置包括:
第一获取模块,用于获取待播放的视频数据,所述视频数据包含多个图像组;
第一判断模块,用于判断所述视频数据包含的各图像组的播放时间是否连续;
处理模块,用于如果所述各图像组中,存在相邻的两个图像组的播放时间不连续,则对所述相邻的两个图像组的播放时间进行时间校准处理,所述时间校准处理用于将所述两个图像组的播放时间修改为连续的时间;
切片模块,用于根据预设的视频播放规则,对所述时间校准处理后的视频数据进行切片,得到切片数据,并根据所述切片数据重新生成M3U8文件;
播放模块,用于基于本地的媒体播放器和所述M3U8文件对所述切片数据进行播放。
可选的,所述处理模块,具体用于:
在所述相邻的两个图像组中,确定播放顺序在前的第一图像组中最后一个视频帧的播放时间戳与预设帧间隔的和值,得到目标播放时间戳;
将所述目标播放时间戳作为所述相邻的两个图像组中播放顺序在后的第二图像组中第一个视频帧的播放时间戳,并根据所述目标播放时间戳更新所述第一个视频帧之后的其他视频帧的播放时间戳。
可选的,所述第一获取模块,具体用于:
接收服务器发送的第一视频流的视频数据;
判断所述视频数据是否满足预设的有效性检测条件;
如果所述视频数据满足所述有效性检测条件,则将所述视频数据作为待播放的视频数据;
如果所述视频数据不满足所述有效性检测条件,则基于数据修正规则,对所述视频数据进行修正处理,得到满足所述有效性检测条件的视频数据。
可选的,所述有效性检测条件至少包括以下的一个或多个:所述视频数据的起始数据为预设视频格式的起始数据、所述视频数据包含的切片数据以预设数据包为单位、待播放的第一个切片数据中的起始数据为关键帧。
可选的,所述装置还包括:
第二判断模块,用于判断所述视频数据的格式是否为预设视频格式;
转换模块,用于如果所述视频数据的格式不为预设视频格式,则将所述视频数据转换为所述预设视频格式的视频数据。
可选的,所述装置还包括:
第二获取模块,用于获取当前所述媒体播放器播放的视频帧的第一时间信息、以及已向所述媒体播放器发送的目标切片数据的第二时间信息,所述目标切片数据为发送时间与当前时间最接近的切片数据;
计算模块,用于计算所述第一时间信息与所述第二时间信息的时间间隔,作为可播时长;
停止模块,用于如果所述可播时长大于或等于预设时长阈值,则停止缓存待播放的视频数据。
可选的,所述第一获取模块,具体用于:
在播放第二视频流的过程中,如果检测到视频流切换指令,则从服务器中下载待切换的第三视频流的视频数据、以及所述第三视频流的编解码信息;
所述第一判断模块,具体用于:
根据已存储的所述第二视频流的编解码信息和所述第三视频流的编解码信息进行平滑检测;
如果检测结果为能够进行平滑切换,则判断当前缓存的所述第二视频流的图像组与所述第三视频流的图像组的播放时间是否连续。
可选的,所述装置还包括:
下载模块,用于当接收到音频切换指令时,从服务器中下载待使用的目标音频数据;
整合模块,用于丢弃所述视频数据中的音频数据,并根据预先存储的各图像组对应的播放时间戳、以及所述目标音频数据对应播放时间,确定各图像组对应的音频数据,并整合成新的视频数据;
所述第一判断模块,具体用于:
判断所述新的视频数据包含的各图像组的播放时间是否连续。
第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-/9任一所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的视频播放的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频播放的方法。
本发明实施例提供了一种视频播放的方法及装置,可以应用于OTT客户端,OTT客户端可以获取待播放的视频数据,视频数据包含多个图像组;判断视频数据包含的各图像组的播放时间是否连续;如果各图像组中,存在相邻的两个图像组的播放时间不连续,则对相邻的两个图像组的播放时间进行时间校准处理,时间校准处理用于将这两个图像组的播放时间修改为连续的时间;根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据,并根据切片数据重新生成M3U8文件;基于本地的媒体播放器和M3U8文件对切片数据进行播放。通过本方案可以实现对图像组的播放时间进行校准,并且依据视频播放规则重新进行切片,从而得到符合播放条件的视频数据,避免无法播放视频或播放卡顿的问题,改善了视频播放的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种视频播放的方法流程图;
图2为本发明实施例提供的一种有效性检测的方法流程图;
图3为本发明实施例提供的一种数据缓存控制的方法流程图;
图4为本发明实施例提供的一种视频播放的方法示例的流程图;
图5为本发明实施例提供的另一种视频播放的方法示例的流程图;
图6为本发明实施例提供的一种代理模块的结构示意图;
图7为本发明实施例提供的一种视频播放的装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供了一种视频播放的方法,该方法可以应用于具有视频播放功能的OTT客户端。如图1所示,该方法的具体包括以下步骤。
步骤101,获取待播放的视频数据。
本发明实施例中,当用户需要播放视频时,用户可以启动OTT客户端,然后选择需要播放的视频,OTT客户端则可以根据该视频对应的下载地址,从服务器中下载该视频的视频数据,得到待播放的视频数据。其中,该地址可以为URL(uniform resource locator,统一资源定位符)。服务器中的视频数据可以以GOP(图像组)的形式进行存储,每个GOP由一个关键帧和多个非关键帧构成,并且,每个图像帧对应有播放时间戳,该播放时间戳即表示该图像帧在视频中的播放时间。例如,图像帧1对应的播放时间戳为1s,图像帧2对应的播放时间戳为2s,则图像帧1在第1s播放,图像帧2在第2s播放。
步骤102,判断视频数据包含的各图像组的播放时间是否连续。
本发明实施例中,由于每个图像帧具有播放时间戳,基于此,可以确定每个图像组对应的播放时间。例如,GOP1包含5个图像帧,其中,第1个图像帧的播放时间戳为1s,第5个图像帧的播放时间戳为5s,则GOP1对应的播放时间为1s~5s。可以理解,图像组的播放时间即图像组的起止时间。
在正常情况下,OTT客户端从服务器中获取到的图像组是按照播放顺序排列的,并且各图像组的播放时时间是连续的。然而,由于网络波动或数据丢失等问题,会导致部分图像组缺失,OTT客户端接收到的各图像组的播放时间可能不是连续的,在播放时造成视频卡顿现象。因此,OTT客户端在获取到视频数据后,可以判断该视频数据包含的各图像组的播放时间是否连续。
具体的,针对任意相邻的两个图像组,可以将前一个图像组中的最后一个视频帧的播放时间戳,与后一个图像组中的第一个视频帧的播放时间戳进行比较,如果这两个时间戳连续,则可以确定这两个图像组的播放时间连续,否则,确定这两个图像组的播放时间不连续。
如果各图像组的播放时间均连续,则不对该视频数据进行处理,如果各图像组中,存在相邻的两个图像组的播放时间不连续,则可以执行步骤103。
步骤103,如果各图像组中,存在相邻的两个图像组的播放时间不连续,则对相邻的两个图像组的播放时间进行时间校准处理。
本发明实施例中,如果各图像组中,存在相邻的两个图像组的播放时间不连续,则OTT客户端可以对相邻的两个图像组的播放时间进行时间校准处理,即,将这两个图像组的播放时间修改为连续的时间。例如,GOP1的播放时间为1s~5s,GOP2的播放时间为8s~14s,则可以将GOP2的播放时间修改为6s~12s。
步骤104,根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据,并根据切片数据重新生成M3U8文件。
本发明实施例中,OTT客户端可以包含MediaPlayer(媒体播放器),MediaPlayer可以提供播放接口及回调接口,从而实现视频播放功能。MediaPlayer可以播放按照预设播放规则生成的切片数据,因此,OTT客户端可以按照预设的视频播放规则,对时间校准处理后的视频数据重新进行切片处理,得到满足预设播放规则的切片数据(也可称为TS(Transport Stream,传输流)切片文件),并且,还根据该可以生成该TS切片文件对应的M3U8文件。这样,即使OTT客户端接收到的视频数据存在问题(比如封装格式错误或切片方式错误等),由于OTT客户端根据预设的视频播放规则,对视频数据重新进行切片,并重新生成M3U8文件,也可以得到满足MediaPlayer播放要求的切片数据(即完全符合HLS(HTTPLive Streaming,动态码率自适应技术)标准的M3U8文件和TS文件),提高了视频播放的成功率。
在一个示例中,在直播场景下,OTT客户端可以根据HLS直播规则对视频数据进行切片,比如按照GOP对视频数据进行切片,或者按照预设时间间隔对视频数据进行切片,得到多个切片数据(可称为TS切片文件),并为各TS切片文件分配文件标识。然后,可以根据生成的TS切片文件生成M3U8文件,其中,M3U8文件包含各TS切片文件的文件标识。
步骤105,基于本地的媒体播放器和M3U8文件对切片数据进行播放。
本发明实施例中,OTT客户端得到切片数据后,可以基于M3U8文件对切片数据进行播放,从而提供视频播放服务。具体的,MediaPlayer可以向OTT客户端发送M3U8文件的获取请求,OTT客户端则可以向媒体播放器发送M3U8文件,M3U8文件包含各切片数据的切片标识。MediaPlayer获取到各切片数据的切片标识(比如索引值)后,可以确定需要播放的切片数据的切片标识(可称为目标切片标识),然后向OTT客户端发送媒体播放器发送的数据请求。OTT客户端接收到数据请求后,向媒体播放器发送目标切片标识对应的切片数据。
可选的,时间校准处理的具体处理过程可以为:在相邻的两个图像组中,确定播放顺序在前的第一图像组中最后一个视频帧的播放时间戳与预设帧间隔的和值,得到目标播放时间戳;将目标播放时间戳作为相邻的两个图像组中播放顺序在后的第二图像组中第一个视频帧的播放时间戳,并根据目标播放时间戳更新第一个视频帧之后的其他视频帧的播放时间戳。
本发明实施例中,如果OTT客户端确定某两个相邻的图像组的播放时间不连续,则可以在这两个图像组中,确定播放顺序在前的图像组(可称为第一图像组)中最后一个视频帧的播放时间戳,计算该播放时间戳与预设帧间隔的和值,得到目标播放时间戳。然后,OTT客户端将目标播放时间戳作为这两个图像组中播放顺序在后的图像组(可称为第二图像组)中第一个视频帧的播放时间戳,并根据目标播放时间戳更新第一个视频帧之后的其他视频帧的播放时间戳。其中,可以只校准第二图像组包含的各视频帧的播放时间戳,或者,也可以对第一个视频帧之后的全部视频帧的播放时间戳进行校准。
例如,GOP1的播放时间为1s~5s,GOP2的播放时间为8s~13s,预设帧间隔为1s,则可以将GOP2中第一个视频帧的播放时间戳修改5s+1s=6s,GOP2中第二个视频帧的播放时间戳修改6s+1s=7s,GOP2中第三个视频帧的播放时间戳修改7s+1s=8s,依此类推,更新后的GOP2的播放时间修改为6s~11s。
可选的,如图2所示,OTT客户端还可以对下载的数据进行有效性检测,相应的,步骤101的具体处理过程可以包括:
步骤201,接收服务器发送的第一视频流的视频数据。
本发明实施例中,OTT客户端可以根据用户的播放指令,向服务器发送视频数据请求。响应于该视频数据请求,服务器可以将第一视频流的视频数据发送给OTT客户端。OTT客户端则可以接收并存储该视频数据。
步骤202,判断视频数据是否满足预设的有效性检测条件。
本发明实施例中,OTT客户端中可以预先存储有有效性检测条件。其中,针对不同格式的视频数据,有效性检测条件可以是不相同的。在一种实现方式中,有效性检测条件至少包括以下的一个或多个:视频数据的起始数据为预设视频格式的起始数据、视频数据包含的切片数据以预设数据包为单位、待播放的第一个切片数据中的起始数据为关键帧。有效性检测条件可以由技术人员根据需要进行设置,本发明实施例不做限定。
以视频格式MPEG(Moving Picture Experts Groups,电影专家组)-TS为例,MPEG-TS是目前比较常见的音视频封装格式,主要适用于HLS场景。在MPEG-TS格式中,视频数据会被切割成多个切片数据,并且根据切片数据生成M3U8文件,可以广泛适用于直播或点播场景。MPEG-TS格式对应的有效性检测条件包括:视频数据以0x47开始、切片数据以Packet为单位、起播第一个切片数据中视频数据以关键帧开始。
如果视频数据满足全部的有效性检测条件,则执行步骤203。如果视频数据不满足上述有效性检测条件中的任意一个,则执行步骤204。
步骤203,将视频数据作为待播放的视频数据。
步骤204,基于数据修正规则,对视频数据进行修正处理,得到满足有效性检测条件的视频数据。
本发明实施例中,如果视频数据不满足有效性检测条件,则OTT客户端可以根据预设的数据修正规则,对视频数据进行修正处理,以得到满足有效性检测条件的视频数据。在一个示例中,如果起播第一个切片数据中视频数据不是以关键帧开始,则OTT客户端可以在该切片数据中确定第一个关键帧,丢弃该切片数据中第一个关键帧之前的数据,以避免播放时终端出现起播花屏、失败等状况。可选的,具体的数据修正规则可以由技术人员根据实际需求进行设定,本发明实施例不做限定。如果OTT客户端对视频数据进行修正处理后,视频数据仍然不满足有效性检测条件,或者该视频数据无法进行修正处理,则OTT客户端可以显示播放错误的提示信息。
可选的,OTT客户端还可以对视频数据进行格式转换,相应的,步骤202之前,还可以包括以下步骤:判断视频数据的格式是否为预设视频格式;如果视频数据的格式不为预设视频格式,则将视频数据转换为预设视频格式的视频数据。
本发明实施例中,由于MediaPlayer支持播放特定格式的视频数据,比如MPEG-TS格式,因此,OTT客户端接收到视频数据后,可以先判断视频数据的格式是否为预设视频格式(即MediaPlayer支持的格式)。如果视频数据的格式不为预设视频格式,则将视频数据转换为预设视频格式的视频数据,然后再进行有效性检测,以使最终传递MediaPlayer的视频数据的格式为MediaPlayer所支持的格式,提高播放的成功率。
可选的,OTT客户端还可以实现对MediaPlayer的数据缓存控制,如图3所示,具体包括以下步骤:
步骤301,获取当前媒体播放器播放的视频帧的第一时间信息、以及已向媒体播放器发送的目标切片数据的第二时间信息。
其中,目标切片数据为发送时间与当前时间最接近的切片数据。
本发明实施例中,切片数据可以包含一个或多个视频帧,切片数据的第二时间信息可以是切片数据包含的播放时间最晚的视频帧的时间信息。
步骤302,计算第一时间信息与第二时间信息的时间间隔,作为可播时长。
步骤303,判断可播时长是否大于或等于预设时长阈值。
如果是,则执行步骤304;否则,则执行步骤305。
步骤304,停止缓存待播放的视频数据。
可选的,在另一种实现方式中,也可以将当前需要向媒体播放器发送的切片数据的时间信息,作为第二时间信息,然后执行步骤302~304。
本发明实施例中,OTT客户端下载待播放的视频数据后,可以将待播放数据存储到预设存储区域中,在播放视频的过程中,OTT客户端可以从预设存储区域中获取视频数据,存储到MediaPlayer对应的缓存空间中,作为待播放的视频数据。如果OTT客户端确定可播时长大于或等于预设时长阈值,则可以停止缓存待播放的视频数据,以避免MediaPlayer的缓存空间中存储的数据过多,导致缓存丢失的情况。
步骤305,继续缓存待播放的视频数据。
本发明实施例中,如果OTT客户端确定可播时长小于预设时长阈值,则可以继续缓存待播放的视频数据,以保证视频的流畅播放。
可选的,OTT客户端除了可以从服务器中获取视频数据,还可以获取该视频数据的媒体信息,该媒体信息包含视频的索引信息,该索引信息包括视频中全部GOP的索引值、以及每个GOP对应的播放时间。OTT客户端可以对该索引信息进行存储,以便根据该索引信息实现快退快进功能、视频流切换功能或广告播放功能等。
本发明实施例还提供了该方法应用于ABS(adaptive bitrate streaming,自适应串流)场景切换时的具体处理过程,如图4所示,具体包括以下步骤。
步骤401,在播放第二视频流的过程中,如果检测到视频流切换指令,则从服务器中下载待切换的第三视频流的视频数据、以及第三视频流的编解码信息。
本发明实施例中,OTT客户端在播放视频的过程中,会存在需要切换视频流的情况。例如,OTT客户端可以根据网络情况切换不同清晰度的视频流,比如在网络较差时,将1080P的视频流切换为720的视频流。又如,可以在视频播放过程中插播广告,此时,OTT客户端可以将该视频的视频流切换为广告的视频流。
OTT客户端在播放某一视频流(即第二视频流)的过程中,如果确定需要切换视频流,则可以确定当前视频流(即第二视频流)的播放截止时间,并可以从服务器中下载待切换的视频流(即第三视频流)的视频数据,其中,第二视频流的播放截止时间即第二视频流与第三视频流的切换时间。这样,OTT客户端可以从服务器中下载该切换时间之后的第三视频流的视频数据。
另外,OTT客户端还可以从服务器中获取视频流的视频数据时,还可以从服务器中获取该视频流的编解码信息。其中,编解码信息可以包括编解码模式、抽样频率等信息。
步骤402,根据已存储的第二视频流的编解码信息和第三视频流的编解码信息进行平滑检测。
本发明实施例中,OTT客户端可以从服务器中获取第二视频流的编解码信息、以及第三视频流的编解码信息,然后可以根据第二视频流的编解码信息和第三视频流的编解码信息进行平滑检测。在一个示例中,编解码信息可以至少包括音视频编码类型、音频抽样率、音视频时间戳和相邻两帧的帧间隔中的一种或多种。OTT客户端可以判断第二视频流的编解码信息和第三视频流的编解码信息是否相同。如果全相同,则确定能够进行平滑切换;如果存在不相同的编解码信息,则不能进行平滑切换。
如果检测结果为能够进行平滑切换,则执行步骤403,如果检测结果为不能够进行平滑切换,则执行步骤407。
步骤403,判断当前缓存的第二视频流的视频数据包含的各图像组、以及下载的第三视频流的视频数据包含的图像组的播放时间是否连续。
本发明实施例中,OTT客户端可以判断当前缓存的第二视频流的各图像组、以及下载的第三视频流的图像组的播放时间是否连续。在一种实现方式中,可以判断第二视频流的各图像组的播放时间是否连续、第二视频流的最后一个图像组的播放时间与第三视频流的第一个图像组的播放时间是否连续、以及第三视频流的图像组的播放时间是否连续,具体的判断过程可以参照步骤102的相关说明,此次不再赘述。
如果上述各图像组中,存在相邻的两个图像组的播放时间不连续,则执行步骤404,如果各图像组中,各图像组的播放时间均连续,则执行步骤405。
步骤404,对相邻的两个图像组的播放时间进行时间校准处理。
本步骤的处理过程可以参照步骤103的相关说明,此处不再赘述。
步骤405,根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据。
本步骤的处理过程可以参照步骤104的相关说明,此处不再赘述。
步骤406,通过媒体播放器对切片数据进行播放。
本步骤的处理过程可以参照步骤105的相关说明,此处不再赘述。
步骤407,在达到第二视频流的播放截止时间后,播放第三视频流的视频数据。
本发明实施例中,如果不能进行平滑切换,则OTT客户端可以向MediaPlayer推送针对第二视频流的推送数据完毕的通知消息,同时记录当前缓存的第二视频流的时间戳,将该播放时间戳作为第二视频流的截止播放时间,可记为t-end。当播放到t-end以后,重启MediaPlayer,然后推送第三视频流的视频数据。
通过本发明实施例,可以实现不同视频流之间的平滑切换,从而实现无黑屏广、清晰度平滑切换等效果,提高了用户的观影体验。
本发明实施例还提供了该方法应用于音频切换场景时的具体处理过程,如图5所示,具体包括以下步骤。
步骤501,当接收到音频切换指令时,从服务器中下载待使用的目标音频数据。
本发明实施例中,在播放视频的过程中,用户可以对音频进行切换。例如,用户在观看一个英文电影时,原始视频文件中的音频为英文音频,则用户可以将英文音频切换成中文视频。相应的,OTT客户端在接收到音频切换指令时,可以根据该音频切换指令从服务器中下载待使用的目标音频数据。
步骤502,丢弃视频数据中的音频数据,并根据预先存储的各图像组对应的播放时间戳、以及目标音频数据对应播放时间,确定各图像组对应的音频数据,并整合成新的视频数据。
本发明实施例中,OTT客户端从服务器中下载的视频数据通常以TS切片文件的形式存在,每个TS切片文件中包含至少一个图像组、以及由多个音频帧构成的音频数据。OTT客户端在解析完一个TS切片文件中的音视频数据之后,可以丢弃该TS切片文件中的音频数据,然后根据下载的目标音频数据对应播放时间、以及该TS切片文件中的图像组的播放时间,确定与该TS切片文件中的图像组的播放时间相同的目标音频数据,进而将该TS切片文件中的图像组、以及确定出的目标音频数据封装成新的TS文件,从而得到新的视频数据。
步骤503,判断新的视频数据包含的各图像组的播放时间是否连续。
如果是,则执行步骤504,否则,则执行步骤505。
本步骤的处理过程可以参照步骤102的相关说明,此处不再赘述。
步骤504,对相邻的两个图像组的播放时间进行时间校准处理。
本步骤的处理过程可以参照步骤103的相关说明,此处不再赘述。
步骤505,根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据。
本步骤的处理过程可以参照步骤104的相关说明,此处不再赘述。
步骤506,通过媒体播放器对切片数据进行播放。
本步骤的处理过程可以参照步骤105的相关说明,此处不再赘述。
本发明实施例的另一个示例中,视频播放的方法具体可以应用于OTT客户端中的代理模块。如图6所示,该代理模块具体可以包括状态管理子模块、数据交互子模块、解封装子模块、信息统计子模块和播放子模块。其中,数据交互子模块是代理模块中接口集,对外可以接收待播放的视频数据、对内可以输出解封装子模块处理后的数据。解封装子模块可以用于对数据的进行解封装、重新封装等处理,还可以进行数据有效性检测、PTS拼接校正、音视频数据跟独立音轨数据的合流操作等。信息统计子模块用于记录每一个GOP索引值以及每一个GOP的起止时间,以实现快进快退功能,还可以用于统计可播时长,便于进行缓存控制处理。播放子模块可以包含MediaPlayer和本地服务器单元,本地服务器单元用于通过状态管理子模块管理MediaPlayer对外接口,还用于对数据进行标准化切片,并将切片数据发送给MediaPlayer子模块进行播放,状态管理子模块可以用于统一管理***播放器状态,保证各类终端不一致的状态回调统一成对外一致的状态,屏蔽掉无用的、错误的状态回调。
具体的,OTT客户端下载待播放的视频数据后,可以通过状态管理模块和数据交互模块,将视频数据发送给解封装子模块,然后解封装子模块需要对视频数据进行解封装,对解封装后的数据进行有效性检测、PTS拼接校正、音视频数据跟独立音轨数据的合流操作等处理,然后对处理后的数据重新进行封装,进而将封装后的数据通过数据交互模块和信息统计模块发送给播放模块,以使播放模块进行播放。另外,解封装子模块还可以通过解析视频数据,得到视频流的编解码信息,然后将编解码信息发送给信息统计子模块,进而由信息统计子模块进行平滑检测,并将检测结果发送给数据交互模块,数据交互模块将检测结果发送给解封装子模块,以使解封装子模块根据检测结果确定是否进行时间校准处理。在实现数据缓存控制时,状态管理子模块会获取当前向所述媒体播放器发送的切片数据的第二时间信息,并发送给播放子模块,播放子模块根据媒体播放器当前播放的视频帧的时间信息和第二时间信息计算可播时长,并将可播时长发送送给状态管理子模块,状态管理子模块确定可播时长长大于或等于预设时长阈值,则停止接收OTT客户端推入的视频数据,以停止缓存待播放的视频数据。否则,继续缓存待播放的视频数据。
上述仅为代理模块中包含的子模块划分方式的一种示例,子模块的划分方式、以及各子模块的具体功能可以根据实际需求自行定义,本发明实施例不做限定。
本发明实施例中,OTT客户端可以获取待播放的视频数据,视频数据包含多个图像组;判断视频数据包含的各图像组的播放时间是否连续;如果各图像组中,存在相邻的两个图像组的播放时间不连续,则对相邻的两个图像组的播放时间进行时间校准处理,时间校准处理用于将这两个图像组的播放时间修改为连续的时间;根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据,并根据切片数据重新生成M3U8文件;基于本地的媒体播放器和M3U8文件对切片数据进行播放。通过本方案可以实现对图像组的播放时间进行校准,并且依据视频播放规则重新进行切片,从而得到符合播放条件的视频数据,避免无法播放视频或播放卡顿的问题,改善了视频播放的效果。
并且,本方案还可以对视频数据的进行有效性检测,进一步提高了视频播放的成功率,并且在检测失败时,能够准确定位播放失败的原因。另外,还可以实现音视频转封装操作、不同类型的音视频无缝拼接、音视频跟独立音频的合流操作等功能。
本申请实施例还提供了一种视频播放的装置,该装置应用于OTT客户端,如图7所示,所述装置包括:
第一获取模块710,用于获取待播放的视频数据,所述视频数据包含多个图像组;
第一判断模块720,用于判断所述视频数据包含的各图像组的播放时间是否连续;
处理模块730,用于如果所述各图像组中,存在相邻的两个图像组的播放时间不连续,则对所述相邻的两个图像组的播放时间进行时间校准处理,所述时间校准处理用于将所述两个图像组的播放时间修改为连续的时间;
切片模块740,用于根据预设的视频播放规则,对所述时间校准处理后的视频数据进行切片,得到切片数据,并根据所述切片数据重新生成M3U8文件;
播放模块750,用于基于本地的媒体播放器和所述M3U8文件对所述切片数据进行播放。
可选的,所述处理模块730,具体用于:
在所述相邻的两个图像组中,确定播放顺序在前的第一图像组中最后一个视频帧的播放时间戳与预设帧间隔的和值,得到目标播放时间戳;
将所述目标播放时间戳作为所述相邻的两个图像组中播放顺序在后的第二图像组中第一个视频帧的播放时间戳,并根据所述目标播放时间戳更新所述第一个视频帧之后的其他视频帧的播放时间戳。
可选的,所述第一获取模块710,具体用于:
接收服务器发送的第一视频流的视频数据;
判断所述视频数据是否满足预设的有效性检测条件;
如果所述视频数据满足所述有效性检测条件,则将所述视频数据作为待播放的视频数据;
如果所述视频数据不满足所述有效性检测条件,则基于数据修正规则,对所述视频数据进行修正处理,得到满足所述有效性检测条件的视频数据。
可选的,所述有效性检测条件至少包括以下的一个或多个:所述视频数据的起始数据为预设视频格式的起始数据、所述视频数据包含的切片数据以预设数据包为单位、待播放的第一个切片数据中的起始数据为关键帧。
可选的,所述装置还包括:
第二判断模块,用于判断所述视频数据的格式是否为预设视频格式;
转换模块,用于如果所述视频数据的格式不为预设视频格式,则将所述视频数据转换为所述预设视频格式的视频数据。
可选的,所述装置还包括:
第二获取模块,用于获取当前所述媒体播放器播放的视频帧的第一时间信息、以及已向所述媒体播放器发送的目标切片数据的第二时间信息,所述目标切片数据为发送时间与当前时间最接近的切片数据;
计算模块,用于计算所述第一时间信息与所述第二时间信息的时间间隔,作为可播时长;
停止模块,用于如果所述可播时长大于或等于预设时长阈值,则停止缓存待播放的视频数据。
可选的,所述第一获取模块710,具体用于:
在播放第二视频流的过程中,如果检测到视频流切换指令,则从服务器中下载待切换的第三视频流的视频数据、以及所述第三视频流的编解码信息;
所述第一判断模块720,具体用于:
根据已存储的所述第二视频流的编解码信息和所述第三视频流的编解码信息进行平滑检测;
如果检测结果为能够进行平滑切换,则判断当前缓存的所述第二视频流的图像组与所述第三视频流的图像组的播放时间是否连续。
可选的,所述装置还包括:
下载模块,用于当接收到音频切换指令时,从服务器中下载待使用的目标音频数据;
整合模块,用于丢弃所述视频数据中的音频数据,并根据预先存储的各图像组对应的播放时间戳、以及所述目标音频数据对应播放时间,确定各图像组对应的音频数据,并整合成新的视频数据;
所述第一判断模块720,具体用于:
判断所述新的视频数据包含的各图像组的播放时间是否连续。
本发明实施例中,OTT客户端可以获取待播放的视频数据,视频数据包含多个图像组;判断视频数据包含的各图像组的播放时间是否连续;如果各图像组中,存在相邻的两个图像组的播放时间不连续,则对相邻的两个图像组的播放时间进行时间校准处理,时间校准处理用于将这两个图像组的播放时间修改为连续的时间;根据预设的视频播放规则,对时间校准处理后的视频数据进行切片,得到切片数据,并根据切片数据重新生成M3U8文件;基于本地的媒体播放器和M3U8文件对切片数据进行播放。通过本方案可以实现对图像组的播放时间进行校准,并且依据视频播放规则重新进行切片,从而得到符合播放条件的视频数据,避免无法播放视频或播放卡顿的问题,改善了视频播放的效果。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
获取待播放的视频数据,所述视频数据包含多个图像组;
判断所述视频数据包含的各图像组的播放时间是否连续;
如果所述各图像组中,存在相邻的两个图像组的播放时间不连续,则对所述相邻的两个图像组的播放时间进行时间校准处理,所述时间校准处理用于将所述两个图像组的播放时间修改为连续的时间;
根据预设的视频播放规则,对所述时间校准处理后的视频数据进行切片,得到切片数据,并根据所述切片数据重新生成M3U8文件;
基于本地的媒体播放器和所述M3U8文件对所述切片数据进行播放。
可选的,所述对所述相邻的两个图像组的播放时间进行时间校准处理,包括:
在所述相邻的两个图像组中,确定播放顺序在前的第一图像组中最后一个视频帧的播放时间戳与预设帧间隔的和值,得到目标播放时间戳;
将所述目标播放时间戳作为所述相邻的两个图像组中播放顺序在后的第二图像组中第一个视频帧的播放时间戳,并根据所述目标播放时间戳更新所述第一个视频帧之后的其他视频帧的播放时间戳。
可选的,所述获取待播放的视频数据,包括:
接收服务器发送的第一视频流的视频数据;
判断所述视频数据是否满足预设的有效性检测条件;
如果所述视频数据满足所述有效性检测条件,则将所述视频数据作为待播放的视频数据;
如果所述视频数据不满足所述有效性检测条件,则基于数据修正规则,对所述视频数据进行修正处理,得到满足所述有效性检测条件的视频数据。
可选的,所述有效性检测条件至少包括以下的一个或多个:所述视频数据的起始数据为预设视频格式的起始数据、所述视频数据包含的切片数据以预设数据包为单位、待播放的第一个切片数据中的起始数据为关键帧。
可选的,所述判断所述视频数据是否满足预设的有效性检测条件之前,还包括:
判断所述视频数据的格式是否为预设视频格式;
如果所述视频数据的格式不为预设视频格式,则将所述视频数据转换为所述预设视频格式的视频数据。
可选的,所述方法还包括:
获取当前所述媒体播放器播放的视频帧的第一时间信息、以及已向所述媒体播放器发送的目标切片数据的第二时间信息,所述目标切片数据为发送时间与当前时间最接近的切片数据;
计算所述第一时间信息与所述第二时间信息的时间间隔,作为可播时长;
如果所述可播时长大于或等于预设时长阈值,则停止缓存待播放的视频数据。
可选的,所述获取待播放的视频数据,包括:
在播放第二视频流的过程中,如果检测到视频流切换指令,则从服务器中下载待切换的第三视频流的视频数据、以及所述第三视频流的编解码信息;
所述判断所述视频数据包含的各图像组的播放时间是否连续,包括:
根据已存储的所述第二视频流的编解码信息和所述第三视频流的编解码信息进行平滑检测;
如果检测结果为能够进行平滑切换,则判断当前缓存的所述第二视频流的图像组与所述第三视频流的图像组的播放时间是否连续。
可选的,所述方法还包括:
当接收到音频切换指令时,从服务器中下载待使用的目标音频数据;
丢弃所述视频数据中的音频数据,并根据预先存储的各图像组对应的播放时间戳、以及所述目标音频数据对应播放时间,确定各图像组对应的音频数据,并整合成新的视频数据;
所述判断所述视频数据包含的各图像组的播放时间是否连续,包括:
判断所述新的视频数据包含的各图像组的播放时间是否连续。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频播放的方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频播放的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种视频播放的方法,其特征在于,所述方法应用于OTT客户端,所述方法包括:
获取待播放的视频数据,所述视频数据包含多个图像组;
判断所述视频数据包含的各图像组的播放时间是否连续;
如果所述各图像组中,存在相邻的两个图像组的播放时间不连续,则对所述相邻的两个图像组的播放时间进行时间校准处理,所述时间校准处理用于将所述两个图像组的播放时间修改为连续的时间;
根据预设的视频播放规则,对所述时间校准处理后的视频数据进行切片,得到切片数据,并根据所述切片数据重新生成M3U8文件;
基于本地的媒体播放器和所述M3U8文件对所述切片数据进行播放。
2.根据权利要求1所述的方法,其特征在于,所述对所述相邻的两个图像组的播放时间进行时间校准处理,包括:
在所述相邻的两个图像组中,确定播放顺序在前的第一图像组中最后一个视频帧的播放时间戳与预设帧间隔的和值,得到目标播放时间戳;
将所述目标播放时间戳作为所述相邻的两个图像组中播放顺序在后的第二图像组中第一个视频帧的播放时间戳,并根据所述目标播放时间戳更新所述第一个视频帧之后的其他视频帧的播放时间戳。
3.根据权利要求1所述的方法,其特征在于,所述获取待播放的视频数据,包括:
接收服务器发送的第一视频流的视频数据;
判断所述视频数据是否满足预设的有效性检测条件;
如果所述视频数据满足所述有效性检测条件,则将所述视频数据作为待播放的视频数据;
如果所述视频数据不满足所述有效性检测条件,则基于数据修正规则,对所述视频数据进行修正处理,得到满足所述有效性检测条件的视频数据。
4.根据权利要求3所述的方法,其特征在于,所述判断所述视频数据是否满足预设的有效性检测条件之前,还包括:
判断所述视频数据的格式是否为预设视频格式;
如果所述视频数据的格式不为预设视频格式,则将所述视频数据转换为所述预设视频格式的视频数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取当前所述媒体播放器播放的视频帧的第一时间信息、以及已向所述媒体播放器发送的目标切片数据的第二时间信息,所述目标切片数据为发送时间与当前时间最接近的切片数据;
计算所述第一时间信息与所述第二时间信息的时间间隔,作为可播时长;
如果所述可播时长大于或等于预设时长阈值,则停止缓存待播放的视频数据。
6.根据权利要求1所述的方法,其特征在于,所述获取待播放的视频数据,包括:
在播放第二视频流的过程中,如果检测到视频流切换指令,则从服务器中下载待切换的第三视频流的视频数据、以及所述第三视频流的编解码信息;
所述判断所述视频数据包含的各图像组的播放时间是否连续,包括:
根据已存储的所述第二视频流的编解码信息和所述第三视频流的编解码信息进行平滑检测;
如果检测结果为能够进行平滑切换,则判断当前缓存的所述第二视频流的图像组与所述第三视频流的图像组的播放时间是否连续。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到音频切换指令时,从服务器中下载待使用的目标音频数据;
丢弃所述视频数据中的音频数据,并根据预先存储的各图像组对应的播放时间戳、以及所述目标音频数据对应播放时间,确定各图像组对应的音频数据,并整合成新的视频数据;
所述判断所述视频数据包含的各图像组的播放时间是否连续,包括:
判断所述新的视频数据包含的各图像组的播放时间是否连续。
8.一种视频播放的装置,其特征在于,所述装置应用于OTT客户端,所述装置包括:
第一获取模块,用于获取待播放的视频数据,所述视频数据包含多个图像组;
第一判断模块,用于判断所述视频数据包含的各图像组的播放时间是否连续;
处理模块,用于如果所述各图像组中,存在相邻的两个图像组的播放时间不连续,则对所述相邻的两个图像组的播放时间进行时间校准处理,所述时间校准处理用于将所述两个图像组的播放时间修改为连续的时间;
切片模块,用于根据预设的视频播放规则,对所述时间校准处理后的视频数据进行切片,得到切片数据,并根据所述切片数据重新生成M3U8文件;
播放模块,用于基于本地的媒体播放器和所述M3U8文件对所述切片数据进行播放。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911329170.3A CN111031385B (zh) | 2019-12-20 | 2019-12-20 | 视频播放的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911329170.3A CN111031385B (zh) | 2019-12-20 | 2019-12-20 | 视频播放的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111031385A true CN111031385A (zh) | 2020-04-17 |
CN111031385B CN111031385B (zh) | 2022-03-08 |
Family
ID=70211270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911329170.3A Active CN111031385B (zh) | 2019-12-20 | 2019-12-20 | 视频播放的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111031385B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113329267A (zh) * | 2021-05-27 | 2021-08-31 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及存储介质 |
CN113573123A (zh) * | 2021-07-23 | 2021-10-29 | 北京奇艺世纪科技有限公司 | 多媒体资源处理方法、装置、设备及存储介质 |
CN113923495A (zh) * | 2021-09-08 | 2022-01-11 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、***、电子设备及存储介质 |
CN115086708A (zh) * | 2022-06-06 | 2022-09-20 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN115119009A (zh) * | 2022-06-29 | 2022-09-27 | 北京奇艺世纪科技有限公司 | 视频对齐方法、视频编码方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139636A (zh) * | 2011-12-05 | 2013-06-05 | 优视科技有限公司 | 流媒体数据处理方法及装置、流媒体数据再现设备 |
CN104822087A (zh) * | 2015-04-30 | 2015-08-05 | 无锡天脉聚源传媒科技有限公司 | 一种视频段的处理方法及装置 |
CN105657520A (zh) * | 2014-11-18 | 2016-06-08 | 乐视网信息技术(北京)股份有限公司 | 一种视频清晰度切换方法和视频播放器 |
CN105847977A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 流媒体文件处理方法及装置 |
CN106412677A (zh) * | 2016-10-28 | 2017-02-15 | 北京奇虎科技有限公司 | 一种回放视频文件的生成方法和装置 |
CN107147919A (zh) * | 2017-06-19 | 2017-09-08 | 网宿科技股份有限公司 | 直播快速启播方法及*** |
CN107426629A (zh) * | 2017-06-19 | 2017-12-01 | 网宿科技股份有限公司 | 一种流媒体文件处理方法及直播*** |
CN107770599A (zh) * | 2017-10-27 | 2018-03-06 | 海信电子科技(深圳)有限公司 | 一种录制的音视频的播放方法、装置及存储介质 |
US20190014363A1 (en) * | 2016-02-16 | 2019-01-10 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Efficient Adaptive Streaming |
CN110392269A (zh) * | 2018-04-17 | 2019-10-29 | 腾讯科技(深圳)有限公司 | 媒体数据处理方法和装置、媒体数据播放方法和装置 |
-
2019
- 2019-12-20 CN CN201911329170.3A patent/CN111031385B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139636A (zh) * | 2011-12-05 | 2013-06-05 | 优视科技有限公司 | 流媒体数据处理方法及装置、流媒体数据再现设备 |
CN105657520A (zh) * | 2014-11-18 | 2016-06-08 | 乐视网信息技术(北京)股份有限公司 | 一种视频清晰度切换方法和视频播放器 |
CN104822087A (zh) * | 2015-04-30 | 2015-08-05 | 无锡天脉聚源传媒科技有限公司 | 一种视频段的处理方法及装置 |
US20190014363A1 (en) * | 2016-02-16 | 2019-01-10 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Efficient Adaptive Streaming |
CN105847977A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 流媒体文件处理方法及装置 |
CN106412677A (zh) * | 2016-10-28 | 2017-02-15 | 北京奇虎科技有限公司 | 一种回放视频文件的生成方法和装置 |
CN107147919A (zh) * | 2017-06-19 | 2017-09-08 | 网宿科技股份有限公司 | 直播快速启播方法及*** |
CN107426629A (zh) * | 2017-06-19 | 2017-12-01 | 网宿科技股份有限公司 | 一种流媒体文件处理方法及直播*** |
CN107770599A (zh) * | 2017-10-27 | 2018-03-06 | 海信电子科技(深圳)有限公司 | 一种录制的音视频的播放方法、装置及存储介质 |
CN110392269A (zh) * | 2018-04-17 | 2019-10-29 | 腾讯科技(深圳)有限公司 | 媒体数据处理方法和装置、媒体数据播放方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113329267A (zh) * | 2021-05-27 | 2021-08-31 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及存储介质 |
CN113329267B (zh) * | 2021-05-27 | 2023-03-24 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及存储介质 |
CN113573123A (zh) * | 2021-07-23 | 2021-10-29 | 北京奇艺世纪科技有限公司 | 多媒体资源处理方法、装置、设备及存储介质 |
CN113923495A (zh) * | 2021-09-08 | 2022-01-11 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、***、电子设备及存储介质 |
CN113923495B (zh) * | 2021-09-08 | 2024-01-12 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、***、电子设备及存储介质 |
CN115086708A (zh) * | 2022-06-06 | 2022-09-20 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN115086708B (zh) * | 2022-06-06 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN115119009A (zh) * | 2022-06-29 | 2022-09-27 | 北京奇艺世纪科技有限公司 | 视频对齐方法、视频编码方法、装置及存储介质 |
CN115119009B (zh) * | 2022-06-29 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 视频对齐方法、视频编码方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111031385B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031385B (zh) | 视频播放的方法及装置 | |
CN109089130B (zh) | 一种调整直播视频的时间戳的方法和装置 | |
US9706158B2 (en) | Receiver and method for reporting the usage of advanced television services | |
CN110933449B (zh) | 一种外部数据与视频画面的同步方法、***及装置 | |
RU2753576C2 (ru) | Способ изменения канала и соответствующее устройство | |
US20140341307A1 (en) | Overcoming lost ip packets in streaming video in ip networks | |
US12022169B2 (en) | Real-time ad tracking proxy | |
CN115119009B (zh) | 视频对齐方法、视频编码方法、装置及存储介质 | |
US11831944B2 (en) | Method for managing the broadcasting of multimedia content, and device for carrying out said method | |
CN114245153B (zh) | 切片方法、装置、设备及可读存储介质 | |
CN111866526B (zh) | 一种直播业务处理方法和装置 | |
US20120116855A1 (en) | Receiving and Recording of Content and of Timing Information | |
US20180206004A1 (en) | Enhanced restart tv | |
US8887225B2 (en) | Method and apparatus for reproducing broadcast content, and method and apparatus for providing broadcast content | |
US11716503B2 (en) | Method for managing multimedia content, and device for carrying out said method | |
CN110072123B (zh) | 一种视频的恢复播放方法、视频播放终端及服务器 | |
WO2016110324A1 (en) | An improved method and apparatus for trick-play in abr streaming | |
CN110798713B (zh) | 时移电视点播方法、终端、服务器及*** | |
US9813775B2 (en) | Hybrid storage of program recordings in a service provider network | |
KR102640666B1 (ko) | 방송 신호 수신 방법 및 방송 신호 수신 장치 | |
KR102600762B1 (ko) | Atsc 3.0 기반의 방송 콘텐츠 전송 장치 및 방법과, 방송 콘텐츠 수신 장치 및 방법 |
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 |