[go: up one dir, main page]

CN112584231B - 视频直播方法、装置、cdn网络的边缘设备和用户终端 - Google Patents

视频直播方法、装置、cdn网络的边缘设备和用户终端 Download PDF

Info

Publication number
CN112584231B
CN112584231B CN201910952321.4A CN201910952321A CN112584231B CN 112584231 B CN112584231 B CN 112584231B CN 201910952321 A CN201910952321 A CN 201910952321A CN 112584231 B CN112584231 B CN 112584231B
Authority
CN
China
Prior art keywords
video stream
slice data
video
image group
data
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
Application number
CN201910952321.4A
Other languages
English (en)
Other versions
CN112584231A (zh
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 Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud 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 Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201910952321.4A priority Critical patent/CN112584231B/zh
Publication of CN112584231A publication Critical patent/CN112584231A/zh
Application granted granted Critical
Publication of CN112584231B publication Critical patent/CN112584231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/44Processing 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/44008Processing 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
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供了一种视频直播方法、装置、CDN网络的边缘设备和用户终端,该方法包括:接收推流客户端推送的视频流;根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器;如果接收到视频流的拉流请求,从源站服务器获取视频流;将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息;将设置后的切片数据推送至拉流请求对应的拉流客户端。该方法基于时间信息设置切片数据的唯一的索引信息,当用户终端从不同的设备获取切片数据,通过该索引信息组成完整的视频流,有利于将P2P技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。

Description

视频直播方法、装置、CDN网络的边缘设备和用户终端
技术领域
本发明涉及视频直播领域,尤其是涉及一种视频直播方法、装置、CDN网络的边缘设备和用户终端。
背景技术
相关技术中的直播方式,大多采用RTMP(Real Time Messaging Protocol,实时消息传输协议)推流和HTTP(HyperText Transfer Protocol,超文本传输协议)+FLV(FlashVideo,一种流媒体格式)拉流的播放模式,推流和拉流的过程通过CDN(Content DeliveryNetwork,内容分发网络)网络实现。当视频直播的用户数量较多时,所有的拉流客户端都从同一台服务器拉取数据,这会给网络带来较大的压力,不仅导致直播卡顿率较高,且带宽成本较高。
发明内容
有鉴于此,本发明的目的在于提供一种视频直播方法、装置、CDN网络的边缘设备和用户终端,以降低直播卡顿率,使视频直播更加顺畅,并且节约带宽。
第一方面,本发明实施例提供了一种视频直播方法,其中,该方法应用于CDN网络的边缘设备,包括:接收推流客户端推送的视频流;根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器;如果接收到视频流的拉流请求,从源站服务器获取视频流;将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息;将设置后的切片数据推送至拉流请求对应的拉流客户端。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息的步骤,包括:针对视频流中每个图像组,生成当前图像组的到达时间所对应的时间戳;将时间戳设置为当前图像组的时间信息。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,将视频流封装为切片数据的步骤,包括:根据视频流中的图像组,将视频流进行切片处理,得到切片数据。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,每个切片数据中包含一个图像组。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息的步骤,包括:针对每个切片数据,将当前切片数据中包含的图像组的时间信息,确定为当前切片数据的索引信息。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,切片数据中包括多个视频Tag;根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息的步骤之后,还包括:为切片数据中的每个视频Tag设置Tag编号;其中,Tag编号包括视频流的标识信息、切片数据的索引信息和视频Tag位于切片数据的序列号。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,将设置后的切片数据推送至拉流请求对应的拉流客户端的步骤之前,方法还包括:针对每个切片数据,通过预设的校验算法,生成当前切片数据的校验数据;将校验数据携带至当前切片数据中。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,接收推流客户端推送的视频流的步骤之后,方法还包括:针对视频流中的每个图像组,检查当前图像组对应的通信协议包是否完整;如果否,丢弃当前图像组。
结合上述第一方面的任一种实现方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,将设置后的切片数据推送至拉流请求对应的拉流客户端的步骤,包括:CDN网络的边缘设备将设置后的切片数据组合为第一视频流,推送至拉流请求对应的拉流客户端;上述方法还包括:拉流客户端如果接收到来自用户终端的、与第一视频流相对应的第二视频流,根据第一视频流和第二视频流中的切片数据的索引信息,将第二视频流中的切片数据与第一视频流中的切片数据相匹配;拉流客户端按照预设的播放策略,播放第一视频流和/或第二视频流。
第二方面,本发明实施例提供了一种视频直播方法,其中,该方法应用于用户终端,包括:向CDN网络的边缘设备发送拉流请求;接收边缘设备推送的第一视频流;第一视频流包括切片数据;切片数据由边缘设备通过下述方式生成:根据推流客户端推送的视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器;如果接收到视频流的拉流请求,从源站服务器获取视频流;将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息,得到最终的切片数据;如果接收到来自用户终端的、与第一视频流相对应的第二视频流,根据第一视频流和第二视频流中的切片数据的索引信息,将第二视频流中的切片数据与第一视频流中的切片数据相匹配;按照预设的播放策略,播放第一视频流和/或第二视频流。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,该方法还包括:如果根据播放策略,需要播放第二视频流中的指定切片数据,通过预设的校验算法,生成指定切片数据的校验数据;判断生成的校验数据与指定切片数据中携带的校验数据是否一致;如果一致,播放第二视频流中的指定切片数据。
第三方面,本发明实施例提供了一种视频直播装置,其中,装置应用于CDN网络的边缘设备,包括以下模块:第一接收模块,用于接收推流客户端推送的视频流;设置模块,用于根据所述视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;获取模块,用于如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;封装模块,用于将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息;推送模块,用于将设置后的所述切片数据推送至所述拉流请求对应的拉流客户端。
第四方面,本发明实施例提供了一种视频直播装置,其中,装置应用于用户终端,包括以下模块:拉流请求发送模块,用于向CDN网络的边缘设备发送拉流请求;第二接收模块,用于接收所述边缘设备推送的第一视频流;所述第一视频流包括切片数据;所述切片数据由所述边缘设备通过下述方式生成:根据推流客户端推送的视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息,得到最终的切片数据;匹配模块,用于如果接收到来自用户终端的、与所述第一视频流相对应的第二视频流,根据所述第一视频流和所述第二视频流中的切片数据的索引信息,将所述第二视频流中的切片数据与所述第一视频流中的切片数据相匹配;播放模块,用于按照预设的播放策略,播放所述第一视频流和/或所述第二视频流。
第五方面,本发明实施例提供了一种CDN网络的边缘设备,其中,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第二方面的视频直播方法。
第六方面,本发明实施例提供了一种用户终端,其中,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以第一方面或第二方面任一项的方法。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种视频直播方法、装置、CDN网络的边缘设备和用户终端,CDN网络的边缘设备在接收推流客户端推送的视频流后,根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,然后将设置后的视频流推送至源站服务器。如果接收到视频流的拉流请求,就从源站服务器获取视频流,并将视频流封装为切片数据。根据该切片数据中包含的图像组的时间信息,为切片数据设置索引信息,并将设置后的切片数据推送至拉流请求对应的拉流客户端。该方法基于时间信息设置切片数据的索引信息,由于时间信息具有唯一性,因而切片数据的索引信息也具有唯一性,这样切片数据在网络传输过程中就具有了唯一的身份标识,即使用户终端从不同的设备获取切片数据,也能基于唯一的身份标识组成完整的视频流,有利于后续将P2P技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频直播的硬件场景示意图;
图2为本发明实施例提供的一种视频直播方法的流程图;
图3为本发明实施例提供的另一种视频直播方法的流程图;
图4为本发明实施例提供的另一种视频直播方法的流程图;
图5为本发明实施例提供的另一种视频直播方法的流程图;
图6为本发明实施例提供的另一种视频直播方法的示意图;
图7为本发明实施例提供的一种结合P2P网络的视频直播方法的示意图;
图8为本发明实施例提供的另一种视频直播方法的流程图;
图9为本发明实施例提供的另一种视频直播方法的多方交互流程图;
图10为本发明实施例提供的一种视频直播装置的结构示意图;
图11为本发明实施例提供的另一种视频直播装置的结构示意图;
图12为本发明实施例提供的一种CDN网络的边缘设备或用户终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,首先描述一种视频直播的硬件场景。如图1所示,包括部署在用户终端的推流客户端和拉流客户端,直播推流用户通过推流客户端将录制的直播视频流上传到CDN网络,并由CDN网络的边缘设备进行接收。CDN网络设备接收到推流客户端推送来的视频流后,将其上传到源站服务器。当一个或多个直播拉流用户通过拉流客户端向CDN网络的边缘设备请求直播视频流时,边缘设备从源站服务器调取直播视频流,并发送至拉流客户端,进而完成了从推流客户端到拉流客户端的视频流传输。
在现有的直播方式中,大多采用RTMP推流和HTTP+FLV拉流的播放模式,从图1可以看出,当观看直播的用户数量较多时,大量拉流客户端同时向CDN网络的边缘设备请求直播视频流,此时CDN网络的边缘设备需要向每个拉流客户端发送直播视频流,CDN网络需要承受巨大的网络负载压力,如果流量超过网络的带宽,很容易出现直播的卡顿。
基于此,本发明提供一种视频直播方法、装置、CDN网络的边缘设备和用户终端,该技术可以应用于视频直播的场景中;该技术可以采用相关的软件或硬件实现,下面通过实施例进行描述。首先,对本发明实施例所公开的一种视频直播方法进行详细介绍。如图2所示,该方法可以应用于CDN网络的边缘设备,包括以下步骤:
步骤S202,接收推流客户端推送的视频流。
其中,推流客户端可以用于视频直播,具体可以为安装在用户终端(如手机、电脑、相机等)上的应用程序,该推流客户端也可以运行在网页浏览器上。推流客户端通常具备视频录制功能或采集视频的功能,并通过网络将录制的视频进行传输。推流客户端采集到的视频流,可以通过其内置的推流SDK(Software Development Kit,软件开发工具包)向CDN网络的边缘设备进行推送,该推送的过程可以选用RTMP协议,或其他网络传输协议。
步骤S204,根据视频流中图像组的到达时间,为视频流中的图像组(Group ofpicture,简称GOP)设置时间信息,将设置后的视频流推送至源站服务器。
推流客户端在录制视频时,通常会将视频帧按照时间序列划分为多个图像组,每个图像组包括一个或多个视频帧,然后再基于每个图像组进行编码,编码后的图像组组成视频流。该视频流中的图像组按照录制顺序发送至CDN网络的边缘设备,即先录制的图像组先到达CDN网络的边缘设备。因此,每个图像组到达该边缘设备的时间是唯一的。进而根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,可以使图像组的时间信息是唯一的;又由于时间的不可逆性,因而图像组的时间信息具有单调递增的特性,因而基于该时间信息可以确定各个图像组之间的顺序。
而相关技术中,推流客户端基于RTMP协议推送视频流时,推流客户端每次与边缘设备建立通信联系后,传输的视频流的时间戳均从零开始编号;如果在传输过程中,网络突然中断,再次连通后,会建立新的会话,视频流的时间戳依然从零开始;此时,视频流的时间戳就会存在重复,且无规律性,难以依据时间戳识别视频流中各个视频帧,并对视频帧进行排序。而本实施例上述步骤中,根据图像组到达边缘设备的到达时间来设定时间戳,即在边缘设备收到推流数据后,根据图像组到达边缘设备的到达时间,重新设置原本无序的时间戳,重新设置得到的时间信息具有唯一性,且可以标准各个图像组之间的排列顺序。
将完成时间设置的视频流推送至源站服务器,源站服务器通常为CDN网络的中心服务器,可以存储接收到的视频流。如果拉流客户端对该视频流进行拉流请求,源站服务器即可将该视频流发送至拉流客户端。
步骤S206,如果接收到视频流的拉流请求,从源站服务器获取视频流。
拉流请求通过拉流客户端发送,该拉流请求中通常包含视频流的标识信息,边缘设备基于该标识信息向源站服务器获取相应的视频流。
步骤S208,将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息。
在实际实现时,可以按照预设的协议格式为视频流进行封装,例如FLV格式,或者其它视频格式,即可得到相应格式的切片数据。封装完成的切片数据中包含有一个或多个图像组,每个图像组中包含有设置的时间信息。通过这些时间信息为每个切片数据设置索引信息,能够保证每个索引信息具有唯一性,且具有与图像组的时间信息相同的递增属性。
步骤S210,将设置后的切片数据推送至拉流请求对应的拉流客户端。
将切片数据推送至拉流客户端的过程,可选用HTTP+FLV或者其它协议。其中,拉流客户端用于视频直播的观看,具体可以为安装在用户终端上(如手机、电脑等)的应用程序,也可以为运行在网页浏览器中的Web应用。拉流客户端中设置有视频播放器,可将切片数据进行解码并进行播放,为拉流客户端的用户进行视频的观看。
需要说明的是,CDN网络中通常包含有多个边缘设备,拉流客户端通常会向较近的边缘设备发送拉流请求,因此,如果推流客户端和拉流客户端距离较远,则向源站服务器推送视频流的边缘设备,与向源站服务器获取视频流的边缘设备通常不同。
在上述视频直播方法中,在接收推流客户端推送的视频流后,根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,然后将设置后的视频流推送至源站服务器。如果接收到视频流的拉流请求,就从源站服务器获取视频流,并将视频流封装为切片数据。根据该切片数据中包含的图像组的时间信息,为切片数据设置索引信息,并将设置后的切片数据推送至拉流请求对应的拉流客户端。该方法基于时间信息设置切片数据的索引信息,由于时间信息具有唯一性,因而切片数据的索引信息也具有唯一性,这样切片数据在网络传输过程中就具有了唯一的身份标识,即使用户终端从不同的设备获取切片数据,也能基于唯一的身份标识组成完整的视频流,有利于后续将P2P(Peer to Peer,对等网络)技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。
本发明实施例还提供另一种视频直播方法,该方法在上述实施例所述方法的基础上实现;该方法重点描述为视频流中的图像组设置时间信息的具体实现过程,该过程主要通过后述步骤S304以及步骤S306得以实现,如图3所示,该视频直播方法包括如下步骤:
步骤S302,接收推流客户端推送的视频流。
步骤S304,针对视频流中每个图像组,生成当前图像组的到达时间所对应的时间戳。
在实际实现过程中,到达时间所对应的时间戳可以通过预设的映射算法对到达时间进行换算得到。其中一种方式为,该时间戳可以为格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至到达时间的总秒数,该时间戳的精度可以为十位数字,但在一些需要更高精度的场景下,该时间戳时会精确到毫秒,此类场景下的时间戳可以为13位数字。例如,到达时间:2017-04-13 15:42:01.452、2017-04-13 15:47:11.186和2017-04-13 15:49:40.401,通过上述计算方式得到的各自对应的时间戳为1492069321452、1492069631186、1492069780401。
当视频直播开始后,视频的上传过程中受到网络不稳定时会造成时间跳变,导致时间戳异常。在本步骤中根据视频流中图像组的到达CDN边缘设备的时间对来设定时间戳,可避免视频上传过程中的时间戳异常。由于该时间戳描述的是图像组的到达时间,因此通过该时间戳也可表明对应的图像组到达CDN边缘设备的先后顺序,有利于图像组的后续使用。
步骤S306,将时间戳设置为当前图像组的时间信息;将设置后的所述视频流推送至源站服务器。
由于时间戳数据更有利于传输,也更容易被服务器获取并进行相关时间的运算,因此以时间戳设置为时间信息可提升相关时间运算的速度,也更加方便的设置图像组的时间信息。
步骤S308,如果接收到视频流的拉流请求,从源站服务器获取视频流。
步骤S310,将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息。
步骤S312,将设置后的切片数据推送至拉流请求对应的拉流客户端。
在上述实施例中,根据视频流中图像组的到达边缘设备的到达时间对图像组设定时间戳,可避免视频上传过程中的时间戳重复或无序,而且使用该时间戳也可表明对应的图像组到达边缘设备的先后顺序,有利于图像组的后续使用。
本发明实施例还提供另一种视频直播方法,该方法在上述实施例所述方法的基础上实现;该方法重点描述将视频流封装为切片数据,并为切片数据设置索引信息的具体实现过程,该过程主要通过后述步骤S410以及步骤S412得以实现,如图4所示,该视频直播方法包括如下步骤:
步骤S402,接收推流客户端推送的视频流。
步骤S404,针对视频流中每个图像组,生成当前图像组的到达时间所对应的时间戳。
步骤S406,将时间戳设置为当前图像组的时间信息,将设置后的视频流推送至源站服务器。
步骤S408,如果接收到视频流的拉流请求,从源站服务器获取视频流。
步骤S410,根据视频流中的图像组,将视频流进行切片处理,得到切片数据。
步骤S412,针对每个切片数据,将当前切片数据中包含的图像组的时间信息,确定为所述当前切片数据的索引信息。
如上述实施例所述,可以按照视频流中图像组的排列顺序,对视频流进行切片处理,得到的切片数据中可以包含一个图像组,也可以包含相邻的多个图像。以一个切片数据包含一个图像组为例,由于该图像组设置有时间信息,该时间信息即可作为该切片数据的索引信息。由于该时间信息具有唯一性且单调递增,因此基于该时间信息确定的切片数据的索引信息也具有唯一性且单调递增。
步骤S414,将设置后的切片数据推送至拉流请求对应的拉流客户端。
在本实施例中提供的视频直播方法中,其中的索引信息基于图像组推流过程时到达边缘设备的时间戳来确定,由于该时间戳具有唯一性,因而切片数据的索引信息也具有唯一性,这样切片数据在网络传输过程中就具有了唯一的身份标识。即使用户终端从不同的设备获取切片数据,也能基于唯一的身份标识组成完整的视频流,有利于后续将P2P技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。
本发明实施例还提供另一种视频直播方法,该方法在上述实施例所述方法的基础上实现,该方法重点描述接收到推送的视频流后,对视频流中的图像组检测通信协议的过程,该过程通过后述步骤S508实现;还描述了为切片数据设置序列号的过程,该过程通过后续步骤S510实现;还描述了校验数据的生成过程,该校验数据的生成过程主要通过后述步骤S512得以实现。如图5所示,该视频直播方法包括如下步骤:
步骤S502,接收推流客户端推送的视频流。
步骤S504,根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器。
步骤S506,如果接收到视频流的拉流请求,从源站服务器获取视频流。
步骤S508,针对视频流中的每个图像组,检查当前图像组对应的通信协议包是否完整;丢弃通信协议包不完整的当前图像组。
在视频直播的过程中,常会遇到网络不稳定的情况,进而导致通信协议包的丢失。例如视频流上传过程中,直播者常常使用智能手机通过移动网络进行上传,相较于有线网络和无线局域网而言,移动网络更容易受到设备端的信号影响。此时有必要对视频流中的每个图像组中的通信协议包进行检查,以确认该图像组对应的通信协议包是否完整。如果发现图像组不完整,则丢弃整个图像组。如果视频流中被丢弃了一个或多个图像组,则剩余的图像组对应的时间信息,依然呈单调递增的顺序排列。
需要说明的是,如果图像组对应的通信协议包不完整,仍然继续播放该图像组,则可能导致在拉流客户端的直播界面上出现花屏,容易给直播用户造成强烈的视觉不适;而如果图像组对应的通信协议包不完整,丢弃整个图像组,此时在拉流客户端的直播界面上会出现一瞬间的卡顿,卡顿过后立即播放下一个图像组,由于卡顿时间较短,不容易给用户造成强烈的视觉不适,因而有利于提高直播用户的观看体验。
步骤S510,将视频流封装为切片数据,根据该切片数据中包含的图像组的时间信息,为切片数据设置索引信息。
以FLV格式下的切片数据为例,该切片数据中通常包括多个视频Tag,因而需要为切片数据中的每个视频Tag设置Tag编号;其中,该Tag编号包括视频流的标识信息、切片数据的索引信息和视频Tag位于切片数据的序列号。其中,视频流的标识信息为视频流的身份标识,也可以称为推流ID;切片数据的索引信息为该切片数据中包含的图像组的时间戳;视频Tag位于切片数据的序列号具体可以为该视频Tag相对于关键帧所在的视频Tag的位置,该序列号可以为一个,也可以为多个。
例如,150/1492069631186/0表示推流ID为150、时间戳为1492069631186的关键帧所在的Tag,即第1个视频Tag;150/1492069631186/2-9表示推流ID为150、时间戳为1492069631186的关键帧所在Tag后第2到第9个视频Tag。
步骤S512,针对每个切片数据,通过预设的校验算法,生成当前切片数据的校验数据;将该校验数据携带至当前切片数据中。
上述预设的校验算法具体可以为CRC(cyclic redundancy check,循环冗余校验)32算法,该CRC32算法属于循环冗余校验算法;当然,上述预设的校验算法也可以通过其他算法完成,如CRC12、CRC16等。
步骤S514,将设置后的切片数据推送至拉流请求对应的拉流客户端。
设置后的切片数据不仅包含上述实施例中所包含的信息,还包含了校验数据,客户端可以根据该校验信息判断切片数据是否被篡改,如果没有被篡改,该切片数据可用;如果被篡改,该切片数据不可用。
为了进一步理解上述实施例,参见图6所示的另一种视频直播方法的示意图;客户端上的推流SDK通过RTMP协议将视频流推送至CDN网络的边缘设备,该边缘设备基于视频流中图像组的到达时间修改了图像组的时间信息后,再通过RTMP协议将视频流再推送至CDN网络的源站服务器。边缘设备接收到拉流请求后,向源站服务器获取拉流请求对应的视频流;源站服务器通过RTMP协议将视频流发送至边缘服务器;该边缘服务器将视频流封装为切片数据,并生成校验数据后,发送至拉流客户端。
在其他的实现方式中,边缘客户端可以通过RTMP协议、HTTP+FLV等方式将视频流发送至拉流客户端。该拉流客户端上可以安装有P2P模块,基于该P2P模块接入P2P网络。基于此,拉流客户端可以通过边缘设备获取视频流,也可以通过P2P网络中的其他拉流客户端获取视频流。
P2P网络中的各个拉流客户端通过Tracker服务器建立连接并传输数据。如图7所示,在P2P网络中,通过网络连接的用户终端之间都处于对等的地位,各台用户终端有相同的功能,无主从之分,用户终端既可作为服务器,设定共享资源供网络中其它用户终端所使用。但在P2P网络中,用户终端都是不可信的,需要对其它用户终端发来的数据进行校验,保证数据未经过修改。当拉流客户端接收到其它拉流客户端传输来的视频数据时,对视频数据进行CRC32运算并得到校验数据,得到的校验数据与视频数据中携带的校验数据进行验证。如果二者一致,表明该视频流并未经过修改,该视频流可以播放;如果二者不一致,则表明该视频流已被篡改,不可信,该视频流不能进行播放,此时只能从边缘设备中获取视频流进行播放。
通过本实施例中,切片数据的校验数据与切片数据一起发送到各个拉流客户端。由于拉流客户端在P2P网络中,因此拉流客户端之间可根据该校验数据,对彼此传输过来的视频流进行相互校验。如果从其它拉流客户端传输来的视频流,校验结果与视频流携带的校验数据相同,则表明该切片数据未经过修改,因此拉流客户端可以播放从其他拉流客户端传输过来的视频流。相对于所有的拉流客户端均从边缘设备获取视频流的方式,通过P2P网络获取视频流可以提高视频流的传输效率,有利于缓解CDN网络的网络压力,同时,使视频流的播放更加顺畅,减少视频卡顿的现象,并且节约带宽。
本发明实施例还提供了另一种视频直播方法,该方法应用于用户终端,该用户终端可为智能手机、平板电脑、个人电脑以及支持直播应用程序的智能设备中的任意一种,该用户终端需要安装有拉流客户端,并具有网络连接功能才能向CDN网络的边缘设备发送拉流请求。如图8所示,该方法包括以下步骤:
步骤S802,向CDN网络的边缘设备发送拉流请求。
步骤S804,接收边缘设备推送的第一视频流。
该第一视频流包括切片数据;该切片数据由边缘设备通过下述方式生成:根据推流客户端推送的视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器;如果接收到视频流的拉流请求,从源站服务器获取视频流;将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息,得到最终的切片数据。
该第一视频流与上述拉流请求相对应。在实际实现时,可能有多个用户终端向CDN网络的边缘设备发送拉流请求,以获取同一个视频流。在大多情况下,用户终端通常会向CDN网络中,距离最近的边缘设备发送拉流请求,由该边缘设备向CDN网络的源站服务器获取视频流。
步骤S806,如果接收到来自用户终端的、与第一视频流相对应的第二视频流,根据第一视频流和第二视频流中的切片数据的索引信息,将第二视频流中的切片数据与第一视频流中的切片数据相匹配。
用户终端不仅可以从边缘设备获取视频流,即上述第一视频流,还可以从P2P网络中的其他用户终端获取视频流,即上述第二视频流。由前述实施例可知,切片数据的索引信息根据该切片数据中包含的图像组的时间信息设置,而图像组的时间信息为该图像组到达边缘设备的到达时间。因此,切片数据的索引信息具有唯一性,且单调递增。基于切片数据的索引信息,可以为视频流中的各个切片数据进行排序。因此,对于同一视频流,从边缘设备获取的该视频流的第一视频流,和从其他用户终端获取的该视频流的第二视频流,可以基于视频流中切片数据的索引信息,对各个切片数据进行一一定位,相互对应。
步骤S808,按照预设的播放策略,播放第一视频流和/或第二视频流。
该预设的播放策略可以预先设置,例如可以包括,在第一指定条件下播放从边缘设备获取额第一视频流,在第二指定条件下播放从其他用户终端获取的第二视频流,或者在第三指定条件下同时播放第一视频流和第二视频流。在同时播放的方式中,可以根据索引信息,从第一视频流中获取一部分切片数据,从第二视频流中获取另一部分切片数据,从而组成一个完整的视频流。
作为示例,可以检测从边缘设备获取第一视频流的速度,如果速度低于预设的速度阈值,可以通过P2P网络从其他用户终端获取与该第一视频流对应的第二视频流,播放第二视频流,或者播放第一视频流和第二视频流中的部分切片数据组成的完整的视频流,以提高视频流播放的流畅性。
该方式中,根据P2P网络的特性使得多个用户终端之间的视频流实现了相互共享,可减低直播过程中的卡顿率,有利于降低CDN网络带宽的依赖。
本发明实施例中,基于时间信息设置的索引信息匹配视频流,由于索引信息的唯一性,使用户终端之间进行相互视频流传输成为可能,有利于将P2P技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。
在一种实施方式中,上述视频直播方法还包括下述步骤1和步骤2:
步骤1,如果根据播放策略,需要播放第二视频流中的指定切片数据,通过预设的校验算法,生成指定切片数据的校验数据。
如果需要播放来自P2P网络中其他用户终端的视频流,此时需要通过预设的校验算法,对第二视频流中待播放的指定的片数据进行校验计算,得到校验数据。该校验算法通常与切片数据中携带的校验数据对应的校验算法保持一致,例如CRC32算法。
步骤2,判断生成的校验数据与指定切片数据中携带的校验数据是否一致。如果一致,播放第二视频流中的指定切片数据。
指定切片数据中携带的校验数据通常是由边缘设备从源站服务器获取到视频流后,边缘设备对该指定切片数据进行校验计算得到;将该校验数据携带至视频流中,随着视频流发送至各个用户终端。由于视频流在P2P网络中用户终端内容易被篡改,通过校验数据的比对,可以避免用户终端播放被篡改的数据,从而提高视频流播放的可靠性。
如果得到的校验结果是二者一致,表明从其它用户终端发送来的指定切片数据未经过任何修改,因此在该用户终端中可以播放从其它用户终端发送来的第二视频流中的指定切片数据。
本发明实施例中,通过预设的校验算法对从其它用户终端发送来的视频流进行校验,并根据校验结果播放视频流,从而提高视频流播放的可靠性,使得用户终端之间进行相互视频流传输成为可能,有利于将P2P技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。
本发明实施例还提供了另一种视频直播方法,该方法在上述实施例所述的方法的基础上实现,该方法以多方交互的方式描述该视频直播方法。如图9所示,该方法包括如下步骤:
步骤S902,推流客户端向边缘设备推送视频流。
步骤S904,边缘设备根据视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器。
步骤S906,拉流客户端向边缘设备发送视频流的拉流请求。
步骤S908,边缘设备从源站服务器获取视频流。
步骤S910,边缘设备将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息。
步骤S912,边缘设备将设置后的切片数据组合为第一视频流,推送至拉流请求对应的拉流客户端。
步骤S914,用户终端向拉流客户端发送与第一视频流相对应的第二视频流;
步骤S916,拉流客户端接收上述第二视频流,根据第一视频流和第二视频流中的切片数据的索引信息,将第二视频流中的切片数据与第一视频流中的切片数据相匹配。
步骤S918,拉流客户端按照预设的播放策略,播放第一视频流和/或第二视频流。
本发明实施例系统的描述了将设置后的切片数据推送至拉流请求对应的拉流客户端的过程。根据时间信息的唯一性,使得切片数据在网络传输过程中生成的身份标识就具有唯一性,即使用户终端从不同的设备获取切片数据,也能基于唯一的身份标识组成完整的视频流,有利于后续将P2P技术引入视频直播中,以降低直播卡顿率,使得视频直播更加顺畅,并且节约带宽。
对应于上述视频直播方法的实施例,参见图10所述的一种视频直播装置,该装置应用于CDN网络的边缘设备,包括以下模块:
第一接收模块1010,用于接收推流客户端推送的视频流;
设置模块1020,用于根据所述视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;
获取模块1030,用于如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;
封装模块1040,用于将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息;
推送模块1050,用于将设置后的所述切片数据推送至所述拉流请求对应的拉流客户端。
在本发明实施例提到的一种视频直播装置,能够通过CDN网络的边缘设备对推流客户端推送的视频流设置时间信息,然后将设置时间信息的视频流发送到源站服务器。当CDN网络的边缘设备接收到用户观看请求时,从源站服务器获取已设置时间信息的视频流,对视频流进行封装得到视频切片后,根据视频切片中的时间信息设置索引信息,用于视频数据的校验。设置完成后的切片数据推送到对应的拉流客户端,完成了从视频流从直播端到观看端的整个过程。这个过程中,基于时间信息设置切片数据的索引信息,由于时间信息具有唯一性,因而切片数据的索引信息也具有唯一性,这样切片数据在网络传输过程中就具有了唯一的身份标识,即使用户终端从不同的设备获取切片数据,也能基于唯一的身份标识组成完整的视频流,有利于后续将P2P技术引入视频直播中,使得视频直播更加顺畅,并且节约带宽。
在一种实现方式中,上述设置模块1020还用于:
针对视频流中每个图像组,生成当前图像组的到达时间所对应的时间戳。将时间戳设置为当前图像组的时间信息。
在一种实现方式中,上述封装模块1040还用于根据视频流中的图像组,将视频流进行切片处理,得到切片数据。
在一种实现方式中,上述封装模块1040还用于针对每个切片数据,将当前切片数据中包含的图像组的时间信息,确定为当前切片数据的索引信息。
在一种实现方式中,上述封装模块1040还用于针对每个切片数据,将当前切片数据中包含的图像组的时间信息,确定为当前切片数据的索引信息。
在一种实现方式中,上述视频直播装置还包括标签设置模块,切片数据中包括多个视频Tag,标签设置模块用于为切片数据中的每个视频Tag设置Tag编号。其中,Tag编号包括视频流的标识信息、切片数据的索引信息和视频Tag位于切片数据的序列号。
在一种实现方式中,上述视频直播装置还包括校验模块,校验模块用于针对每个切片数据,通过预设的校验算法,生成当前切片数据的校验数据;将校验数据携带至当前切片数据中。
在一种实现方式中,上述视频直播装置还包括检查模块,检查模块用于针对视频流中的每个图像组,检查当前图像组对应的通信协议包是否完整。如果否,丢弃当前图像组。
在一种实现方式中,上述推送模块1050,还用于:
CDN网络的边缘设备将设置后的切片数据组合为第一视频流,推送至拉流请求对应的拉流客户端。
拉流客户端如果接收到来自用户终端的、与第一视频流相对应的第二视频流,根据第一视频流和第二视频流中的切片数据的索引信息,将第二视频流中的切片数据与第一视频流中的切片数据相匹配;
拉流客户端按照预设的播放策略,播放第一视频流和/或第二视频流。
对应于上述视频直播方法的实施例,参见图11所述的一种视频直播装置,该装置应用于用户终端,包括以下模块:
拉流请求发送模块1110,用于向CDN网络的边缘设备发送拉流请求;
第二接收模块1120,用于接收边缘设备推送的第一视频流;第一视频流包括切片数据;切片数据由边缘设备通过下述方式生成:根据推流客户端推送的视频流中图像组的到达时间,为视频流中的图像组设置时间信息,将设置后的视频流推送至源站服务器;如果接收到视频流的拉流请求,从源站服务器获取视频流;将视频流封装为切片数据,根据切片数据中包含的图像组的时间信息,为切片数据设置索引信息,得到最终的切片数据;
匹配模块1130,用于如果接收到来自用户终端的、与所述第一视频流相对应的第二视频流,根据所述第一视频流和所述第二视频流中的切片数据的索引信息,将所述第二视频流中的切片数据与所述第一视频流中的切片数据相匹配;
播放模块1140,用于按照预设的播放策略,播放第一视频流和/或第二视频流。
该实施例中根据匹配模块1130的判断结果,可根据P2P播放策略,根据网络状态进行视频流的选择播放。例如:当与CDN网络边缘信号较差时,优先选择第二视频流中的视频进行播放;当P2P网络传输出现问题时,优先选择与CDN网络边缘进行数据传输。在这个过程中,根据P2P的特性,使得多个用户端之间的视频流实现了相互共享,可减低直播过程中的卡顿率,有利于降低CDN网络带宽的依赖。
在另一种实现方式中,上述视频直播装置还包括:
切片校验模块,用于判断是否根据所述播放策略,需要播放所述第二视频流中的指定切片数据。如果需要,则通过预设的校验算法,生成所述指定切片数据的校验数据。
切片判断模块,用于判断生成的所述校验数据与所述指定切片数据中携带的校验数据是否一致。
切片播放模块,用于根据切片判断模块中的判断结果,播放所述第二视频流中的指定切片数据。
本发明实施例所提供的视频直播装置,其实现原理及产生的技术效果和前述视频直播方法实施例相同,为简要描述,视频直播装置实施例部分未提及之处,可参考前述视频直播方法实施例中相应内容。
本发明实施例还提供了一种CDN网络的边缘设备和用户终端;参见图12所示CDN网络的边缘设备或用户终端的结构示意图,包括处理器101和存储器100,该存储器100存储有能够被处理器101执行的机器可执行指令,该处理器101执行机器可执行指令以实现上述视频直播方法。
进一步地,图12所示的服务器还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述视频直播方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的图像增强方法、装置和服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (15)

1.一种视频直播方法,其特征在于,所述方法包括:
接收推流客户端推送的视频流;
根据所述视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;
如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;
将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息;
将设置后的所述切片数据推送至所述拉流请求对应的拉流客户端;
将设置后的所述切片数据推送至所述拉流请求对应的拉流客户端的步骤之前,所述方法还包括:
针对每个所述切片数据,通过预设的校验算法,生成当前切片数据的校验数据;
将所述校验数据携带至所述当前切片数据中。
2.根据权利要求1所述的方法,其特征在于,根据所述视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息的步骤,包括:
针对所述视频流中每个图像组,生成当前图像组的到达时间所对应的时间戳;
将所述时间戳设置为所述当前图像组的时间信息。
3.根据权利要求1所述的方法,其特征在于,将所述视频流封装为切片数据的步骤,包括:根据所述视频流中的图像组,将所述视频流进行切片处理,得到切片数据。
4.根据权利要求3所述的方法,其特征在于,每个所述切片数据中包含一个图像组。
5.根据权利要求1所述的方法,其特征在于,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息的步骤,包括:
针对每个所述切片数据,将当前切片数据中包含的图像组的时间信息,确定为所述当前切片数据的索引信息。
6.根据权利要求1所述的方法,其特征在于,所述切片数据中包括多个视频Tag;
根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息的步骤之后,所述方法还包括:
为所述切片数据中的每个视频Tag设置Tag编号;其中,所述Tag编号包括所述视频流的标识信息、所述切片数据的索引信息和所述视频Tag位于所述切片数据的序列号。
7.根据权利要求1所述的方法,其特征在于,接收推流客户端推送的视频流的步骤之后,所述方法还包括:
针对所述视频流中的每个图像组,检查当前图像组对应的通信协议包是否完整;
如果否,丢弃所述当前图像组。
8.根据权利要求1-7任一项所述的方法,其特征在于,将设置后的所述切片数据推送至所述拉流请求对应的拉流客户端的步骤,包括:CDN网络的边缘设备将设置后的所述切片数据组合为第一视频流,推送至所述拉流请求对应的拉流客户端;
所述方法还包括:
所述拉流客户端如果接收到来自用户终端的、与所述第一视频流相对应的第二视频流,根据所述第一视频流和所述第二视频流中的切片数据的索引信息,将所述第二视频流中的切片数据与所述第一视频流中的切片数据相匹配;
所述拉流客户端按照预设的播放策略,播放所述第一视频流和/或所述第二视频流。
9.一种视频直播方法,其特征在于,所述方法包括:
向CDN网络的边缘设备发送拉流请求;
接收所述边缘设备推送的第一视频流;所述第一视频流包括切片数据;所述切片数据由所述边缘设备通过下述方式生成:根据推流客户端推送的视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息,得到最终的切片数据;
如果接收到来自用户终端的、与所述第一视频流相对应的第二视频流,根据所述第一视频流和所述第二视频流中的切片数据的索引信息,将所述第二视频流中的切片数据与所述第一视频流中的切片数据相匹配;
按照预设的播放策略,播放所述第一视频流和/或所述第二视频流。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
如果根据所述播放策略,需要播放所述第二视频流中的指定切片数据,通过预设的校验算法,生成所述指定切片数据的校验数据;
判断生成的所述校验数据与所述指定切片数据中携带的校验数据是否一致;
如果一致,播放所述第二视频流中的指定切片数据。
11.一种视频直播装置,其特征在于,所述装置包括以下模块:
第一接收模块,用于接收推流客户端推送的视频流;
设置模块,用于根据所述视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;
获取模块,用于如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;
封装模块,用于将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息;
推送模块,用于将设置后的所述切片数据推送至所述拉流请求对应的拉流客户端;
校验模块,用于针对每个所述切片数据,通过预设的校验算法,生成当前切片数据的校验数据;将所述校验数据携带至所述当前切片数据中。
12.一种视频直播装置,其特征在于,所述装置包括以下模块:
拉流请求发送模块,用于向CDN网络的边缘设备发送拉流请求;
第二接收模块,用于接收所述边缘设备推送的第一视频流;所述第一视频流包括切片数据;所述切片数据由所述边缘设备通过下述方式生成:根据推流客户端推送的视频流中图像组的到达时间,为所述视频流中的图像组设置时间信息,将设置后的所述视频流推送至源站服务器;如果接收到所述视频流的拉流请求,从所述源站服务器获取所述视频流;将所述视频流封装为切片数据,根据所述切片数据中包含的图像组的时间信息,为所述切片数据设置索引信息,得到最终的切片数据;
匹配模块,用于如果接收到来自用户终端的、与所述第一视频流相对应的第二视频流,根据所述第一视频流和所述第二视频流中的切片数据的索引信息,将所述第二视频流中的切片数据与所述第一视频流中的切片数据相匹配;
播放模块,用于按照预设的播放策略,播放所述第一视频流和/或所述第二视频流。
13.一种CDN网络的边缘设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至9任一项所述的视频直播方法。
14.一种用户终端,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求9或10所述的视频直播方法。
15.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使处理器实现权利要求1至10任一项所述的视频直播方法。
CN201910952321.4A 2019-09-30 2019-09-30 视频直播方法、装置、cdn网络的边缘设备和用户终端 Active CN112584231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910952321.4A CN112584231B (zh) 2019-09-30 2019-09-30 视频直播方法、装置、cdn网络的边缘设备和用户终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910952321.4A CN112584231B (zh) 2019-09-30 2019-09-30 视频直播方法、装置、cdn网络的边缘设备和用户终端

Publications (2)

Publication Number Publication Date
CN112584231A CN112584231A (zh) 2021-03-30
CN112584231B true CN112584231B (zh) 2023-04-07

Family

ID=75117272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910952321.4A Active CN112584231B (zh) 2019-09-30 2019-09-30 视频直播方法、装置、cdn网络的边缘设备和用户终端

Country Status (1)

Country Link
CN (1) CN112584231B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259694A (zh) * 2021-04-22 2021-08-13 北京金山云网络技术有限公司 数据切片方法、装置和电子设备
CN115396420A (zh) * 2021-05-25 2022-11-25 北京金山云网络技术有限公司 对等网络中的数据交互方法、装置和电子设备
CN115002336A (zh) * 2021-11-30 2022-09-02 荣耀终端有限公司 视频信息的生成方法、电子设备及介质
CN114710694B (zh) * 2022-04-12 2023-05-30 深圳市瑞云科技有限公司 一种云游戏场景下的分布式推流方法
CN115103202A (zh) * 2022-04-27 2022-09-23 北京歌华有线电视网络股份有限公司 一种抗网络劣化的ip视频直播传输方法和系统
CN119545030A (zh) * 2023-08-30 2025-02-28 上海格物致远网络科技有限公司 一种基于边缘设备的媒体流传输方法、装置和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094107A (zh) * 2006-06-21 2007-12-26 北京网视天元信息技术有限公司 视听节目p2p流媒体网络传播效果精确测量的系统及方法
CN102710966A (zh) * 2012-06-13 2012-10-03 百视通网络电视技术发展有限责任公司 基于http协议的视频直播方法及系统
CN105451096A (zh) * 2015-12-02 2016-03-30 北京暴风科技股份有限公司 网络直播系统及直播方法
CN105848011A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种视频直播方法及装置
CN108366292A (zh) * 2017-12-27 2018-08-03 武汉烽火众智数字技术有限责任公司 一种基于流媒体的跨网络视频直播方法及系统
CN109474684A (zh) * 2018-11-14 2019-03-15 广州虎牙信息科技有限公司 一种获取直播视频流的方法、装置、终端设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736502B2 (en) * 2015-09-14 2017-08-15 Alan H. Barber System, device, and method for providing audiences for live video streaming

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094107A (zh) * 2006-06-21 2007-12-26 北京网视天元信息技术有限公司 视听节目p2p流媒体网络传播效果精确测量的系统及方法
CN102710966A (zh) * 2012-06-13 2012-10-03 百视通网络电视技术发展有限责任公司 基于http协议的视频直播方法及系统
CN105451096A (zh) * 2015-12-02 2016-03-30 北京暴风科技股份有限公司 网络直播系统及直播方法
CN105848011A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种视频直播方法及装置
CN108366292A (zh) * 2017-12-27 2018-08-03 武汉烽火众智数字技术有限责任公司 一种基于流媒体的跨网络视频直播方法及系统
CN109474684A (zh) * 2018-11-14 2019-03-15 广州虎牙信息科技有限公司 一种获取直播视频流的方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN112584231A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
CN112584231B (zh) 视频直播方法、装置、cdn网络的边缘设备和用户终端
US12096046B2 (en) Live streaming method and system, server, and storage medium
US10972519B2 (en) Real-time video streaming to client video element
US20160337424A1 (en) Transferring media data using a websocket subprotocol
TWI668982B (zh) 用於多媒體和檔案傳輸的傳輸介面的方法及伺服器設備、及用於記錄相關指令於其上的電腦可讀取儲存媒體
CN107819809B (zh) 对内容进行同步操作的方法及装置
US20180176278A1 (en) Detecting and signaling new initialization segments during manifest-file-free media streaming
WO2008061416A1 (fr) Procédé et système permettant d'accepter des données media de divers formats de codage
JP2016530751A (ja) 品質対ビットレートが変動するメディアデータストリームの品質を決定するための概念
CN101198045A (zh) 一种流媒体数字水印系统
JP2015136060A (ja) 通信装置、通信データ生成方法、および通信データ処理方法
US12254044B2 (en) Video playing method, apparatus, and system, and computer storage medium
CN111770390B (zh) 数据处理方法、装置、服务器及存储介质
CN102550038A (zh) 播放媒体文件的方法、终端、服务器和系统
US10924524B2 (en) Communication devices, communication data generation method, and communication data processing method
US20170331666A1 (en) Real-time control interface for broadcast object streaming
US12335558B2 (en) Synchronization of multiple content streams
CN108881931A (zh) 一种数据缓冲方法及网络设备
WO2023024469A1 (zh) 视频质量问题确定方法、装置、存储介质及程序产品
CN112954433A (zh) 视频处理方法、装置、电子设备及存储介质
WO2017092433A1 (zh) 视频实时播放方法及装置
WO2022100742A1 (zh) 视频编码及视频播放方法、装置和系统
US11599570B2 (en) Device and method to render multimedia data stream tamper-proof based on block chain recording
CN108124183B (zh) 以同步获取影音以进行一对多影音串流的方法
CN115244943B (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