CN110324670B - 一种视频的传输方法、装置及服务器 - Google Patents

一种视频的传输方法、装置及服务器 Download PDF

Info

Publication number
CN110324670B
CN110324670B CN201910693783.9A CN201910693783A CN110324670B CN 110324670 B CN110324670 B CN 110324670B CN 201910693783 A CN201910693783 A CN 201910693783A CN 110324670 B CN110324670 B CN 110324670B
Authority
CN
China
Prior art keywords
video
packaged
information
encapsulated
data packets
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
CN201910693783.9A
Other languages
English (en)
Other versions
CN110324670A (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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910693783.9A priority Critical patent/CN110324670B/zh
Publication of CN110324670A publication Critical patent/CN110324670A/zh
Application granted granted Critical
Publication of CN110324670B publication Critical patent/CN110324670B/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/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26266Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for determining content or additional data repetition rate, e.g. of a file in a DVB carousel according to its importance
    • 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/643Communication protocols
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种视频的传输方法,可以当预封装视频的信息与待封装视频的信息不相同时,按照流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给终端设备,以及将待封装视频更新为预封装视频,并返回执行按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包步骤,由于只需要在判断出待封装视频的信息和预封装视频的信息不相同时,将视频格式变更的消息发送给终端设备,使得终端设备可以依据预封装视频的信息选择合适的播放方式,从而避免了服务器对各个视频进行转码的过程,减小了计算资源的消耗。

Description

一种视频的传输方法、装置及服务器
技术领域
本发明涉及视频播放技术领域,特别是涉及一种视频的传输方法、装置及服务器。
背景技术
随着技术的进步和时代的发展,通过电脑、手机或者平板观看视频成为越来越多人的一种生活消遣或者工作学习的方式,在观看视频时,用户可能会将多个视频放在同一个播放单中,希望当前播放的视频在播放结束后,能够继续播放播放单中的下个视频。
为了使得终端设备能够连续的播放不同格式的源视频,通常服务器在向终端设备推送视频流前,会对具有不同视频格式的各个源视频进行转码处理,以保证封装前的各个视频的格式一致。
发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
服务器对各个源视频文件进行转码处理,需要消耗大量的计算资源。
发明内容
本发明实施例的目的在于提供一种视频的传输方法、装置及服务器,用以解决现有技术中为了使得终端设备能够连续的播放不同格式的源视频,服务器需要对各个源视频文件进行转码处理,从而消耗大量计算资源的技术问题。具体技术方案如下:
本发明实施例提供一种视频的传输方法,应用于服务器,所述方法包括:
获取待封装视频的各视音频帧和所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包;
将封装完成的所述多个视频数据包持续的推送至终端设备;
当所述待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频;
获取所述预封装视频的预封装视频的信息,所述预封装视频的信息用于描述所述预封装视频的格式;
当所述预封装视频的信息与所述待封装视频的信息不相同时,按照所述流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给所述终端设备;
将待封装视频更新为所述预封装视频,并返回执行所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包步骤。
进一步的,所述方法还包括:
当所述预封装视频的信息与所述待封装视频的信息相同时,按照所述流媒体协议,从所述预封装视频的起始帧开始,将所述预封装视频的各视音频帧封装成连续的多个视频数据包;
将封装完成的多个视频数据包持续的推送至所述终端设备。
进一步的,所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包,包括:
按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包;
按照流媒体协议,在特定的数据包中插入所述待封装视频的信息;和/或,
按照流媒体协议,在所述多个视频数据包之间插入用以记录所述待封装视频的信息的数据包。
进一步的,所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包,包括:
将所述预封装视频的信息写入所述待封装视频的起始帧的元数据中;
按照所述流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包。
本发明实施例还提供一种视频的播放方法,应用于终端设备,所述方法包括:
持续地接收服务器推送的多个视频数据包,所述多个视频数据包是针对待封装视频进行封装得到的;
当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
依据所述待封装视频的信息中记录的所述待封装视频的格式,确定与所述待封装视频的格式相对应的播放方式;
持续地对已接收的所述多个视频数据包进行解封装处理,得到所述待封装视频的多个连续的视音频帧;
按照所述播放方式,持续地播放解封装得到的所述待封装视频的多个连续的视音频帧;
当接收到表示视频格式变更的变更消息时,返回执行所述当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息步骤。
本发明实施例还提供一种视频的传输设备,应用于服务器,所述设备包括:
第一信息获取模块,用于获取待封装视频的各视音频帧和所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
数据包封装模块,用于按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包;
数据包推送模块,用于将封装完成的所述多个视频数据包持续的推送至终端设备;
预封装视频确定模块,用于当所述待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频;
第二信息获取模块,用于获取所述预封装视频的预封装视频的信息,所述预封装视频的信息用于描述所述预封装视频的格式;
消息发送模块,用于当所述预封装视频的信息与所述待封装视频的信息不相同时,按照所述流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给所述终端设备;
视频更新模块,用于将待封装视频更新为所述预封装视频,并调用数据包封装模块。
进一步的,所述数据包封装模块,还用于当所述预封装视频的信息与所述待封装视频的信息相同时,按照所述流媒体协议,从所述预封装视频的起始帧开始,将所述预封装视频的各视音频帧封装成连续的多个视频数据包;
所述数据包推送模块,还用于将封装完成的多个视频数据包持续的推送至所述终端设备。
进一步的,所述数据包封装模块,具体用于按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包,并且按照流媒体协议,在特定的数据包中插入所述待封装视频的信息;和/或,按照流媒体协议,在所述多个视频数据包之间插入用以记录所述待封装视频的信息的数据包。
进一步的,所述数据包封装模块,具体用于将所述预封装视频的信息写入所述待封装视频的起始帧的元数据中,并且按照所述流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包。
本发明实施例还提供一种视频的播放装置,应用于终端设备,所述装置包括:
数据包接收模块,用于持续地接收服务器推送的多个视频数据包,所述多个视频数据包是针对待封装视频进行封装得到的;
第三信息获取模块,用于当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
播放方式确定模块,用于依据所述待封装视频的信息中记录的所述待封装视频的格式,确定与所述待封装视频的格式相对应的播放方式;
解封装模块,用于持续地对已接收的所述多个视频数据包进行解封装处理,得到所述待封装视频的多个连续的视音频帧;
播放模块,用于按照所述播放方式,持续地播放解封装得到的所述待封装视频的多个连续的视音频帧;
消息接收模块,用于当接收到表示视频格式变更的变更消息时,调用所述第三信息获取模块。
本发明实施还提供了一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一一种视频的传输方法的步骤。
本发明实施还提供了一种终端设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一一种视频的播放方法的步骤。
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一一种视频的传输方法的步骤
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一一种视频的播放方法的步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一一种视频的传输方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一一种视频的播放方法。
本发明实施例提供的一种视频的传输方法、装置及服务器,可以获取获取待封装视频的各视音频帧和待封装视频的信息,待封装视频的信息用于描述待封装视频的格式,并且按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包,以及将封装完成的多个视频数据包持续的推送至终端设备,以及当待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定待封装视频下一个待封装的视频,作为预封装视频,以及获取预封装视频的预封装视频的信息,预封装视频的信息用于描述预封装视频的格式,以及当预封装视频的信息与待封装视频的信息不相同时,按照流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给终端设备,以及将待封装视频更新为预封装视频,并返回执行按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包步骤,由于只需要在判断出待封装视频的信息和预封装视频的信息不相同时,将视频格式变更的消息发送给终端设备,使得终端设备可以依据预封装视频的信息选择合适的播放方式,从而避免了服务器对各个视频进行转码的过程,减小了计算资源的消耗。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一个实施例提供的视频的传输方法的流程图;
图2为本发明一个实施例提供的视频的播放方法的流程图;
图3为本发明一个实施例提供的视频的传输装置的结构示意图;
图4为本发明一个实施例提供的视频的播放装置的结构示意图;
图5为本发明一个实施例提供的服务器的结构示意图;
图6为本发明一个实施例提供的终端设备的结构示意图。
具体实施方式
为了提供一种视频的传输方法,用以解决现有技术中为了使得终端设备能够连续的播放不同格式的源视频,服务器需要对各个源视频文件进行转码处理,从而消耗大量计算资源的技术问题的技术方案,本发明实施例提供了一种视频的传输方法,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的一个实施例中,提供一种视频的传输方法,应用于服务器,可选的,服务器可以为流媒体服务器,如图1所示,该方法包括以下步骤:
S101:获取待封装视频的各视音频帧和待封装视频的信息,待封装视频的信息用于描述待封装视频的格式。
本步骤中,在获取待封装视频的各视音频帧和待封装视频的信息之前,服务器可以获取需要轮播的节目单,依据节目单中的各个视频信息和播放顺序,获取到需要推送的各个源视频文件,并确定需要第一个推送的待封装视频,之后,获取待封装视频的各视音频帧和待封装视频的信息。
在一个实施例中,待封装视频的信息可以为待封装视频的视频头信息和音频头信息,例如当源视频为mkv格式时,其视频头信息可以包含mkv格式信息、视频轨和音轨数量等信息。
S102:按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包。
本步骤中,在一个实施例中,可以按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧封装成连续的多个视频数据包,并按照流媒体协议,在特定的数据包中插入待封装视频的信息。
在一个示例中,流媒体协议可以为http(Hyper Text Transfer Protocol,超文本传输协议)协议,则当传输的待封装视频的格式为m3u8时,可以在封装该待封装视频的IDR(Instantaneous Decoding Refresh,即时解码刷新)帧之前的音视频帧时,将获取的待封装视频的信息也添加进封装的数据包中。
在一个实施例中,还可以按照流媒体协议,在多个视频数据包之间插入用以记录待封装视频的信息的数据包。
在一个示例中,流媒体协议可以为rtmp(Real Time Messaging Protocol,实时消息传输协议)协议,在将待封装视频的各视音频帧封装成数据包时,可以按照rtmp协议规定的位置处将待封装视频的信息单独封装成一个或者多个数据包,例如,可以在待封装视频的起始帧封装完成后,将待封装视频的信息单独封装成一个数据包,或者,也可以在封装完成10个数据包的分钟后,将待封装视频的信息单独封装成一个数据包,作为封装的第11各数据包。
在一个实施例中,还可以将预封装视频的信息写入待封装视频的起始帧的元数据中,并按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧封装成连续的多个视频数据包。其中,元数据(Metadata),又可以称之为中介数据,或中继数据,是一种用于描述数据的数据(data about data),可以用来描述数据属性(property)的信息。
S103:将封装完成的多个视频数据包持续的推送至终端设备。
本步骤中,可以每完成一个视频数据包封装,就将该数据包按照流媒体协议规定的方式推送至终端设备。
S104:当待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频。
本步骤中,预设的视频封装顺序可以为待封装视频所在节目单的播放顺序,待封装的视频可以为需要进行播放的下一个视频,当待封装视频的各视音频帧都完成封装后,可以依据节目单中的设置的播放顺序,确定下一个需要待封装的源视频,作为预封装视频。
在一个实施例中,节目单中包含三个待播放的视频,分别为SP-1,SP-2和SP-3,其中设置的播放属性为,第一个播放的视频为SP-1,第二个播放的视频为SP-3,以及第三个播放的视频为SP-2,当SP-1的各视音频帧完成封装时,则可以将SP-3确定为下一个待封装的预封装视频。
S105:获取预封装视频的预封装视频的信息,预封装视频的信息用于描述预封装视频的格式。
本步骤中,在一个实施例中,在获取预封装视频的各视音频帧和预封装视频的信息之前,服务器可以获取需要轮播的节目单,并依据节目单中的各个视频信息和播放顺序,获取到需要推送的各个源视频文件,在待封装视频之后的第一个需要进行封装的视频,作为预封装视频,并获取预封装视频的各视音频帧和预封装视频的信息。
在一个实施例中,预封装视频的信息可以为预封装视频的视频头信息和音频头信息,例如当源视频为mkv格式时,其视频头信息可以包含mkv格式信息、视频轨和音轨数量等信息。
S106:当预封装视频的信息与待封装视频的信息不相同时,按照流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给终端设备。
本步骤中,可以将步骤S101获取的预封装视频的信息和步骤S105获取的待封装视频的信息进行对比,并判断预封装视频的信息和待封装视频的信息是否相同,例如,当待封装视频的信息中包含待封装视频的格式为M3U8格式的信息时,判断预封装视频的信息是否包含预封装视频的格式为M3U8格式的信息,若预封装视频的信息中没有相关信息,则判断预封装视频的信息和待封装视频的信息不相同。
在一个实施例中,当预封装视频的信息与待封装视频的信息不相同时,可以按照流媒体协议,通过媒体控制传输协议层(Media Access Control layer,MAC Layer),将表示视频格式变更的变更消息发送给终端设备。
在一个实施例中,还可以在当预封装视频的信息与待封装视频的信息相同时,按照流媒体协议,从预封装视频的起始帧开始,将预封装视频的各视音频帧封装成连续的多个视频数据包,并且将封装完成的多个视频数据包持续的推送至终端设备。此时,不在需要将预封装视频的信息封装进数据包中,也不需要向终端设备发送任何通知信息。
S107:将待封装视频更新为预封装视频,并返回执行步骤S102。
本步骤汇总,当预封装视频的信息与待封装视频的信息不相同时,可以将待封装视频更新为预封装视频,并在将待封装视频更新为预封装视频之后,返回执行S102。
本发明实施例提供的上述视频的传输方法,可以获取获取待封装视频的各视音频帧和待封装视频的信息,待封装视频的信息用于描述待封装视频的格式,并且按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包,以及将封装完成的多个视频数据包持续的推送至终端设备,以及当待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定待封装视频下一个待封装的视频,作为预封装视频,以及获取预封装视频的预封装视频的信息,预封装视频的信息用于描述预封装视频的格式,以及当预封装视频的信息与待封装视频的信息不相同时,按照流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给终端设备,以及将待封装视频更新为预封装视频,并返回执行按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包步骤,由于只需要在判断出待封装视频的信息和预封装视频的信息不相同时,将视频格式变更的消息发送给终端设备,使得终端设备可以依据预封装视频的信息选择合适的播放方式,从而避免了服务器对各个视频进行转码的过程,减小了计算资源的消耗。
在本发明的另一个实施例中,还提供一种视频的播放方法,应用于终端设备,如图2所示,该方法包括以下步骤:
S201:持续地接收服务器推送的多个视频数据包,多个视频数据包是针对待封装视频进行封装得到的。
本步骤中,可以按照流媒体协议,持续地通过互联网,获取服务器推送的由多个视频数据包组成的视频流,其中,视频数据包是针对待封装视频进行封装得到的。
S202:当接收到的视频数据包中存在待封装视频的信息时,获取待封装视频的信息,待封装视频的信息用于描述待封装视频的格式。
本步骤中,当获取到的数据包中存在待封装视频的信息时,可以获取待封装视频的信息。
在一个示例中,当获取的数据包中只包括待封装视频的信息,可以解压该数据包,获取待封装视频的信息。
在一个示例中,当获取的数据包中即包括待封装视频的音视频帧数据,也包括待封装视频的信息时,可以通过先解压数据包,后提取解压后的数据中包含的待封装视频的信息的方式获取。
S203:依据待封装视频的信息中记录的待封装视频的格式,确定与待封装视频的格式相对应的播放方式。
本步骤中,依据获取的待封装视频的信息中记录的待封装视频的格式,确定与待封装视频的格式相对应的播放方式。
在一个示例中,当待封装视频的信息中记录的待封装视频的格式为M3U8格式时,则确定对应M3U8的播放方式,即分片下载播放的方式。
S204:持续地对已接收的多个视频数据包进行解封装处理,得到待封装视频的多个连续的视音频帧。
本步骤中,可以持续地对已接收的多个数据包进行解封装处理,得到待封装视频的多个连续视音频帧。
S205:按照播放方式,持续地播放解封装得到的待封装视频的多个连续的视音频帧。
本步骤中,可以按照对应待封装视频的格式的播放方式,持续地播放解封装得到的待封装视频的多个连续的视音频帧。
在一个示例中,待封装视频的格式为M3U8,则可以通过下载分片数据包,播放分片视频,再下载分片数据包的方式播放待封装视频。
S206:当接收到表示视频格式变更的变更消息时,返回执行步骤S202。
本步骤中,当通过媒体控制传输协议层接收到服务器发送的表示视频格式变更的变更消息时,返回执行步骤S202。
本发明实施例提供的上述图2所示的视频播放的方法中,应用于终端设备,可以持续地接收服务器推送的多个视频数据包,多个视频数据包是针对待封装视频进行封装得到的,并且当接收到的视频数据包中存在待封装视频的信息时,获取待封装视频的信息,待封装视频的信息用于描述待封装视频的格式,以及依据待封装视频的信息中记录的待封装视频的格式,确定与待封装视频的格式相对应的播放方式,以及持续地对已接收的多个视频数据包进行解封装处理,得到待封装视频的多个连续的视音频帧,以及按照播放方式,持续地播放解封装得到的待封装视频的多个连续的视音频帧,以及当接收到表示视频格式变更的变更消息时,返回执行当接收到的视频数据包中存在待封装视频的信息时,获取待封装视频的信息步骤,只需要在接收到视频格式变更的消息,依据预封装视频的信息更改播放方式即可实现视频的轮播,从而避免了服务器对各个视频进行转码的过程,减小了计算资源的消耗。
基于同一发明构思,根据本发明实施例提供的视频的传输方法,本发明实施例还提供了一种视频的传输装置,其位于服务器,如图3所示,该装置包括:
第一信息获取模块301,用于获取待封装视频的各视音频帧和待封装视频的信息,待封装视频的信息用于描述待封装视频的格式;
数据包封装模块302,用于按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧和待封装视频的信息封装成连续的多个视频数据包;
数据包推送模块303,用于将封装完成的多个视频数据包持续的推送至终端设备;
预封装视频确定模块304,用于当待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频;
第二信息获取模块305,用于获取预封装视频的预封装视频的信息,预封装视频的信息用于描述预封装视频的格式;
消息发送模块306,用于当预封装视频的信息与待封装视频的信息不相同时,按照流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给终端设备;
视频更新模块307,用于将待封装视频更新为预封装视频,并调用数据包封装模块。
进一步的,数据包封装模块302,还用于当预封装视频的信息与待封装视频的信息相同时,按照流媒体协议,从预封装视频的起始帧开始,将预封装视频的各视音频帧封装成连续的多个视频数据包;
数据包推送模块303,还用于将封装完成的多个视频数据包持续的推送至终端设备。
进一步的,数据包封装模块302,具体用于按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧封装成连续的多个视频数据包,并且按照流媒体协议,在特定的数据包中插入待封装视频的信息;和/或,按照流媒体协议,在多个视频数据包之间插入用以记录待封装视频的信息的数据包。
进一步的,数据包封装模块302,具体用于将预封装视频的信息写入待封装视频的起始帧的元数据中,并且按照流媒体协议,从待封装视频的起始帧开始,将待封装视频的各视音频帧封装成连续的多个视频数据包。
基于同一发明构思,根据本发明实施例提供的视频的播放方法,本发明实施例还提供了一种视频的播放装置,其位于终端设备,如图4所示,该装置包括:
数据包接收模块401,用于持续地接收服务器推送的多个视频数据包,多个视频数据包是针对待封装视频进行封装得到的;
第三信息获取模块402,用于当接收到的视频数据包中存在待封装视频的信息时,获取待封装视频的信息,待封装视频的信息用于描述待封装视频的格式;
播放方式确定模块403,用于依据待封装视频的信息中记录的待封装视频的格式,确定与待封装视频的格式相对应的播放方式;
解封装模块404,用于持续地对已接收的多个视频数据包进行解封装处理,得到待封装视频的多个连续的视音频帧;
播放模块405,用于按照播放方式,持续地播放解封装得到的待封装视频的多个连续的视音频帧;
消息接收模块406,用于当接收到表示视频格式变更的变更消息时,调用第三信息获取模块。
本发明实施还提供了一种服务器,如图5所述,包括处理器501和机器可读存储介质502,所述机器可读存储介质502存储有能够被所述处理器执行的机器可执行指令,所述处理器501被所述机器可执行指令促使,实现如下步骤:
获取待封装视频的各视音频帧和所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包;
将封装完成的所述多个视频数据包持续的推送至终端设备;
当所述待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频;
获取所述预封装视频的预封装视频的信息,所述预封装视频的信息用于描述所述预封装视频的格式;
当所述预封装视频的信息与所述待封装视频的信息不相同时,按照所述流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给所述终端设备;
将待封装视频更新为所述预封装视频,并返回执行所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包步骤。
本发明实施还提供了一种终端设备,如图6所述,包括处理器601和机器可读存储介质602,所述机器可读存储介质存储602有能够被所述处理器601执行的机器可执行指令,所述处理器601被所述机器可执行指令促使,实现如下步骤:
持续地接收服务器推送的多个视频数据包,所述多个视频数据包是针对待封装视频进行封装得到的;
当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
依据所述待封装视频的信息中记录的所述待封装视频的格式,确定与所述待封装视频的格式相对应的播放方式;
持续地对已接收的所述多个视频数据包进行解封装处理,得到所述待封装视频的多个连续的视音频帧;
按照所述播放方式,持续地播放解封装得到的所述待封装视频的多个连续的视音频帧;
当接收到表示视频格式变更的变更消息时,返回执行所述当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息步骤。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述应用于服务器的视频的传输方法的步骤。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述应用于终端设备的视频的播放方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述应用于服务器的视频的传输方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述应用于终端设备的视频的播放方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、服务器、终端设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种视频的传输方法,其特征在于,应用于服务器,所述方法包括:
获取待封装视频的各视音频帧和所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包;
将封装完成的所述多个视频数据包持续的推送至终端设备;
当所述待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频;
获取所述预封装视频的预封装视频的信息,所述预封装视频的信息用于描述所述预封装视频的格式;
当所述预封装视频的信息与所述待封装视频的信息不相同时,按照所述流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给所述终端设备;
将待封装视频更新为所述预封装视频,并返回执行所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包步骤。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述预封装视频的信息与所述待封装视频的信息相同时,按照所述流媒体协议,从所述预封装视频的起始帧开始,将所述预封装视频的各视音频帧封装成连续的多个视频数据包;
将封装完成的多个视频数据包持续的推送至所述终端设备。
3.根据权利要求1所述的方法,其特征在于,所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包,包括:
按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包;
按照流媒体协议,在特定的数据包中插入所述待封装视频的信息,和/或,
按照流媒体协议,在所述多个视频数据包之间插入用以记录所述待封装视频的信息的数据包。
4.根据权利要求3所述的方法,其特征在于,所述按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包,包括:
将所述预封装视频的信息写入所述待封装视频的起始帧的元数据中;
按照所述流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包。
5.一种视频的播放方法,其特征在于,应用于终端设备,所述方法包括:
持续地接收服务器推送的多个视频数据包,所述多个视频数据包是针对待封装视频进行封装得到的;
当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
依据所述待封装视频的信息中记录的所述待封装视频的格式,确定与所述待封装视频的格式相对应的播放方式;
持续地对已接收的所述多个视频数据包进行解封装处理,得到所述待封装视频的多个连续的视音频帧;
按照所述播放方式,持续地播放解封装得到的所述待封装视频的多个连续的视音频帧;
当接收到表示视频格式变更的变更消息时,返回执行所述当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息步骤。
6.一种视频的传输装置,其特征在于,应用于服务器,所述装置包括:
第一信息获取模块,用于获取待封装视频的各视音频帧和所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
数据包封装模块,用于按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧和所述待封装视频的信息封装成连续的多个视频数据包;
数据包推送模块,用于将封装完成的所述多个视频数据包持续的推送至终端设备;
预封装视频确定模块,用于当所述待封装视频的各视音频帧完成封装时,按照预设的视频封装顺序,确定下一个待封装的视频,作为预封装视频;
第二信息获取模块,用于获取所述预封装视频的预封装视频的信息,所述预封装视频的信息用于描述所述预封装视频的格式;
消息发送模块,用于当所述预封装视频的信息与所述待封装视频的信息不相同时,按照所述流媒体协议,通过媒体控制传输协议层,将表示视频格式变更的变更消息发送给所述终端设备;
视频更新模块,用于将待封装视频更新为所述预封装视频,并调用数据包封装模块。
7.根据权利要求6所述的装置,其特征在于,所述数据包封装模块,还用于当所述预封装视频的信息与所述待封装视频的信息相同时,按照所述流媒体协议,从所述预封装视频的起始帧开始,将所述预封装视频的各视音频帧封装成连续的多个视频数据包;
所述数据包推送模块,还用于将封装完成的多个视频数据包持续的推送至所述终端设备。
8.根据权利要求6所述的装置,其特征在于,所述数据包封装模块,具体用于按照流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包;并且按照流媒体协议,在特定的数据包中插入所述待封装视频的信息,和/或,按照流媒体协议,在所述多个视频数据包之间插入用以记录所述待封装视频的信息的数据包。
9.根据权利要求8所述的装置,其特征在于,所述数据包封装模块,具体用于将所述预封装视频的信息写入所述待封装视频的起始帧的元数据中,并且按照所述流媒体协议,从所述待封装视频的起始帧开始,将所述待封装视频的各视音频帧封装成连续的多个视频数据包。
10.一种视频的播放装置,其特征在于,应用于终端设备,所述装置包括:
数据包接收模块,用于持续地接收服务器推送的多个视频数据包,所述多个视频数据包是针对待封装视频进行封装得到的;
第三信息获取模块,用于当接收到的视频数据包中存在待封装视频的信息时,获取所述待封装视频的信息,所述待封装视频的信息用于描述所述待封装视频的格式;
播放方式确定模块,用于依据所述待封装视频的信息中记录的所述待封装视频的格式,确定与所述待封装视频的格式相对应的播放方式;
解封装模块,用于持续地对已接收的所述多个视频数据包进行解封装处理,得到所述待封装视频的多个连续的视音频帧;
播放模块,用于按照所述播放方式,持续地播放解封装得到的所述待封装视频的多个连续的视音频帧;
消息接收模块,用于当接收到表示视频格式变更的变更消息时,调用所述第三信息获取模块。
11.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法步骤。
12.一种终端设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求5所述的方法步骤。
CN201910693783.9A 2019-07-30 2019-07-30 一种视频的传输方法、装置及服务器 Active CN110324670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910693783.9A CN110324670B (zh) 2019-07-30 2019-07-30 一种视频的传输方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910693783.9A CN110324670B (zh) 2019-07-30 2019-07-30 一种视频的传输方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN110324670A CN110324670A (zh) 2019-10-11
CN110324670B true CN110324670B (zh) 2021-08-06

Family

ID=68124949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910693783.9A Active CN110324670B (zh) 2019-07-30 2019-07-30 一种视频的传输方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN110324670B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110868610B (zh) * 2019-10-25 2021-11-12 富盛科技股份有限公司 流媒体传输方法、装置、服务器及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621342B (zh) * 2008-06-30 2011-05-11 中兴通讯股份有限公司 一种基于实时传输协议实现网络电视节目轮播的方法
US20110064050A1 (en) * 2009-09-11 2011-03-17 Interdigital Patent Holdings, Inc. Broadcast service handover
CN102055717B (zh) * 2009-11-09 2014-08-13 华为技术有限公司 快速播放的方法、终端及服务器
EP2893699A4 (en) * 2012-10-10 2015-09-09 Zte Corp ENCAPSULATION OF VIDEO SCAN FORMAT INFORMATION FOR TRANSPORT AND STORAGE OF MULTIMEDIA ELEMENT
CN103686375B (zh) * 2013-11-19 2017-02-22 乐视致新电子科技(天津)有限公司 视频分享方法及装置
CN105376612A (zh) * 2014-08-26 2016-03-02 华为技术有限公司 一种视频播放方法、媒体设备、播放设备以及多媒体系统
CN104754366A (zh) * 2015-03-03 2015-07-01 腾讯科技(深圳)有限公司 音视频文件直播方法、装置和系统
CN105898269A (zh) * 2015-12-27 2016-08-24 乐视致新电子科技(天津)有限公司 一种视频播放方法及装置
CN106055671B (zh) * 2016-06-03 2022-06-14 腾讯科技(深圳)有限公司 一种多媒体数据处理方法及其设备
CN106341729A (zh) * 2016-08-26 2017-01-18 乐视控股(北京)有限公司 一种音视频数据处理方法和装置
CN107995522A (zh) * 2017-12-19 2018-05-04 深圳市沃特沃德股份有限公司 车载系统播放视频的方法及装置
CN108668162B (zh) * 2018-03-20 2021-06-04 海信视像科技股份有限公司 视频文件播放的处理方法、装置及智能终端
CN109634836A (zh) * 2018-10-23 2019-04-16 平安科技(深圳)有限公司 测试数据封装方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110324670A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
US8935424B2 (en) Method and apparatus for signaling presentation description updates in HTTP streaming
TWI451279B (zh) 即時或接近即時串流傳輸之內容存取控制
CN111277869B (zh) 视频播放方法、装置、设备和存储介质
US9787999B2 (en) Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames
US9356985B2 (en) Streaming video to cellular phones
JP2012231548A (ja) デジタルコンテンツをパーソナルコンピュータから携帯用ハンドセットへ転送するための方法と装置
KR20100025517A (ko) 클라이언트 전자 장치를 구성하기 위한 시스템 및 방법
US20230224545A1 (en) Video playback method and apparatus, storage medium, and electronic device
JP2018164277A (ja) ハイブリッドネットワークにおけるマルチメディアデータを受信するための方法
WO2021042936A1 (zh) 视频数据的处理方法、装置、电子设备及计算机可读介质
US10419798B2 (en) Method and apparatus for just-in-time transcoding
CN114205664B (zh) 投屏方法、投屏装置、投屏显示装置、投屏系统及介质
CN101702767B (zh) 一种时基媒体播放方法及系统
CN110324670B (zh) 一种视频的传输方法、装置及服务器
EP2882199B1 (en) Method and apparatus for prefetching content in a data stream
CN106303754A (zh) 一种音频数据播放方法及装置
US20240107087A1 (en) Server, terminal and non-transitory computer-readable medium
US8565579B2 (en) Method of updating additional data and apparatus for reproducing the same
WO2022242461A1 (zh) 直播音视频处理方法、装置、客户端和服务器
TWI599218B (zh) 即時影音傳輸系統
US11500925B2 (en) Playback of audio content along with associated non-static media content
CN117998148A (zh) 视频回放方法、电子设备及存储介质
CN109714606A (zh) 一种hls文件播放方法、系统及电子设备和存储介质
JP2015023482A (ja) 放送通信連携システム、及び、外部端末

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