CN114697712A - 一种媒体流的下载方法、装置、设备及存储介质 - Google Patents

一种媒体流的下载方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114697712A
CN114697712A CN202210530697.8A CN202210530697A CN114697712A CN 114697712 A CN114697712 A CN 114697712A CN 202210530697 A CN202210530697 A CN 202210530697A CN 114697712 A CN114697712 A CN 114697712A
Authority
CN
China
Prior art keywords
video
frame data
stream
target
media stream
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
Application number
CN202210530697.8A
Other languages
English (en)
Other versions
CN114697712B (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.)
Zhejiang Huachuang Video Signal Technology Co Ltd
Original Assignee
Zhejiang Huachuang Video Signal 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 Zhejiang Huachuang Video Signal Technology Co Ltd filed Critical Zhejiang Huachuang Video Signal Technology Co Ltd
Priority to CN202210530697.8A priority Critical patent/CN114697712B/zh
Publication of CN114697712A publication Critical patent/CN114697712A/zh
Application granted granted Critical
Publication of CN114697712B publication Critical patent/CN114697712B/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/234363Processing 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 altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/234381Processing 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 altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43074Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • 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
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/152Multipoint control units therefor

Landscapes

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

Abstract

本申请涉及数据处理技术领域,尤其涉及一种媒体流的下载方法、装置、设备及存储介质。用于解决用户从服务器下载的录像文件存在播放花屏、音视频不同步的问题,该方法为:将接收到服务器发送的媒体流中的帧数据划分到至少一个待处理集合中,并分别基于各个待处理集合生成对应的视频片段,在接收到回放结束指示后,将各个视频片段作为媒体流的下载文件,其中,媒体流包括视频帧数据和音频帧数据;同一个待处理集合中同一媒体流类型的每个帧数据具有相同的编码信息,且同一个待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;这样,可以使得到的每个视频片段都能使用通用播放器正常播放。

Description

一种媒体流的下载方法、装置、设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种媒体流的下载方法、装置、设备及存储介质。
背景技术
已有技术下,录播服务器通常对从多点控制单元(Multi Control Unit,MCU)拉取到的多路媒体流进行二次编码,从而转码为标准格式的录像文件并进行存储,以便后续提供给用户进行录像回放。
然而,用户从录播服务器下载上述录像文件后,在播放过程中,通常会出现播放花屏、音视频不同步等问题。究其原因,研究人员发现,在视频会议过程中,视频会议管理员可以随时开启或关闭演示视频流,造成演示视频流时有时无;同时,视频会议管理员还可以调整音视频的编码参数,造成音视频编码格式不固定,这样,在录播服务器对视频会议过程中产生的媒体流进行二次编码,转码生成的标准格式的录像文件过程中,存在文件损坏,从而造成了用户在从录像服务器下载到上述录像文件进行播放时,出现播放花屏、音视频不同步,甚至无法正常播放等问题。
发明内容
本申请实施例提供一种媒体流的下载方法、装置、设备及存储介质,用以解决用户从服务器下载的录像文件存在播放花屏、音视频不同步的问题。
本申请实施例提供的具体技术方案如下:
第一方面,本申请实施例提供一种媒体流的下载方法,包括:
向服务器发送拉流请求,其中,所述拉流请求用于请求下载所述服务器存储的媒体流,所述媒体流包括视频帧数据和音频帧数据;
将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,其中,所述待处理集合包括至少一个视频关键帧数据,同一个所述待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个所述待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;
分别基于得到的各个待处理集合生成对应的视频片段,并在接收到所述服务器发送的回放结束指示后,将生成的各个视频片段作为所述媒体流对应的下载文件。
上述方法,利用了流式文件系统的性能不衰减、随意切片、无碎片化等优势,将接收到的编码信息相同,时间戳差值不大于时间阈值的各个帧数据划分到同一待处理集合中,然后,再分别基于各个待处理集合生成对应的视频片段,这样,使得到的每个视频片段都能使用通用播放器正常播放,也使得媒体流可以即存即下载,下载客户端无需等待服务器进行二次编码合成的时间,进一步地,对于服务器端来说,服务器无需进行二次编码,可以节约服务器的编码计算开销和存储空间。
一些实施例中,所述将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,包括:
每接收到所述服务器发送的所述媒体流中的一个帧数据,基于所述一个帧数据确定对应的媒体流类型;
若确定所述一个帧数据的媒体流类型为视频流,则基于所述一个帧数据确定对应的帧类型是否为视频关键帧,并基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中;
若确定所述一个帧数据的媒体流类型为音频流,则将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,其中,所述第一目标视频帧数据是接收时刻与所述一个帧数据相邻的上一个视频帧数据。
上述方法,针对每一个帧数据,通过判断其的媒体流类型,在确定接收到的这一个帧数据的媒体流类型为视频流后,进一步判断其帧类型是否为视频关键帧,从而基于判断结果,将该帧数据划分到对应的待处理集合中,这样,最大限度地利用流式文件系统的性能不衰减、随意切片、无碎片化等优势,对视频流进行视频分片,保证了最终得到的下载文件的音视频同步、播放画流畅。
一些实施例中,所述基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中,包括:
若所述判断结果表征所述一个帧数据的帧类型是目标流视频关键帧,则判断所述一个帧数据是否满足预设条件,若是,则将所述一个帧数据划分到目标流对应的新的待处理集合中,否则,将所述一个帧数据划分到所述目标流中的目标视频关键帧数据所在的待处理集合中,其中,所述目标视频关键帧数据是所述目标流中的接收时刻与所述一个帧数据相邻的上一个视频关键帧数据;
若所述判断结果表征所述一个帧数据的帧类型不是目标流视频关键帧,则将所述一个帧数据划分到目标流中的第二目标视频帧数据所在的待处理集合中,其中,所述第二目标视频帧数据是所述目标流中接收时刻与所述一个帧数据相邻的上一个视频帧数据;
其中,所述视频流包括视频主流和演示视频流,若所述目标流视频关键帧为视频主流视频关键帧,则所述目标流为所述视频主流;或,若所述目标流视频关键帧为演示视频流视频关键帧,则所述目标流为所述演示视频流。
上述方法,针对不同的视频帧,采用不同的划分规则,可以保证每个待处理集合对应的视频片段的完整性,从而保证在播放基于分片后的待处理集合生成的视频片段时,可以使用通用播放器进行正常播放,避免播放花屏、音视频不同步问题的出现。
一些实施例中,所述预设条件包括如下条件中的部分或全部:
所述一个帧数据与所述目标视频关键帧数据的编码信息不同;其中,所述编码信息包括分辨率和/或编码格式;
所述一个帧数据与所述第二目标视频帧数据的时间戳差值大于所述时间阈值,其中,所述时间戳差值为所述一个帧数据和所述第二目标视频帧数据的系统墙上时钟时间戳差值。
上述方法,将编码信息不同,或,时间戳差值大于时间阈值的两帧数据划分到不同的待处理集合中,然后,将各个待处理集合包含的视频帧数据和音频帧数据封装为具有标准格式的视频片段,这样,可以使每个视频片段都可以使用通用的播放器进行正常播放。
一些实施例中,若所述视频流包括视频主流和演示视频流,则所述若确定所述一个帧数据的媒体流类型为音频流,将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,包括:
若确定所述一个帧数据的媒体流类型为音频流,则在确定已存在所述视频主流对应的待处理集合后,将所述一个帧数据划分到所述视频主流中的第三目标视频帧数据所在的待处理集合中,以及,在确定已存在所述演示视频流对应的待处理集合后,将所述一个帧数据的副本划分到所述演示视频流中的第四目标视频帧数据所在的待处理集合中;或,
在确定不存在所述视频主流对应的待处理集合,且不存在所述演示视频流对应的待处理集合后,丢弃所述一个帧数据;
其中,所述第三目标视频帧数据是所述视频主流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据,所述第四目标视频帧数据是所述演示视频流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据。
上述方法,在视频会议过程中,常见的是视频主流和演示视频流同时存在,那么,在确定接收到的一个帧数据的媒体流类型为音频流时,在确定存在演示视频流对应的待处理集合时,将该音频帧数据划分到视频主流和演示视频流对应的待处理集合中,这样,可以保证后续基于各个待处理集合,生成对应的视频片段时,可以保证视频片段的音视频同步,从而保证得到的各个视频片段可以使用通用播放器进行正常播放。
一些实施例中,在所述分别基于得到的各个待处理集合生成对应的视频片段之后,还包括:
针对所述各个待处理集合中的任意一个待处理集合,基于所述待处理集合包括的每个帧数据包含的系统单调时钟时间戳,生成所述视频片段对应的元数据信息,其中,所述元数据信息用于在播放所述视频片段时进行音视频同步;
将所述元数据信息写入对应视频片段的数据块中。
上述方法,由于服务器在存储该媒体流中的每帧数据时,均是采用同一基准时间确定的对应帧数据的系统单调时钟时间戳,这样,通过媒体流中的帧数据携带的媒体流私有帧头,生成对应视频片段的元数据信息,可以使用户在播放上述视频片段时,通过该元数据信息,准确定位任意时段对应的视频帧数据和音频帧数据,从而实现音视频同步。
一些实施例中,所述将生成的各个视频片段作为所述媒体流对应的下载文件,包括:
基于同一媒体流类型的各个视频片段,生成对应的视频播放列表文件;
将生成的各个视频片段及对应的视频播放列表文件,作为所述媒体流对应的下载文件。
上述方法,在生成媒体流对应的各个视频片段后,按照媒体流类型,将相同媒体流类型的各个视频片段,生成对应的视频播放列表文件,这样,用户在播放该媒体流对应的任意一个媒体流类型的视频片段时,只需点击一个视频播放列表文件即可,从而提高用户体验。
第二方面,本申请实施例提供一种媒体流的下载装置,包括:
发送模块,用于向服务器发送拉流请求,其中,所述拉流请求用于请求下载所述服务器存储的媒体流,所述媒体流包括视频帧数据和音频帧数据;
划分模块,用于将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,其中,所述待处理集合包括至少一个视频关键帧数据,同一个所述待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个所述待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;
生成模块,用于分别基于得到的各个待处理集合生成对应的视频片段,并在接收到所述服务器发送的回放结束指示后,将生成的各个视频片段作为所述媒体流对应的下载文件。
一些实施例中,所述将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,所述划分模块用于:
每接收到所述服务器发送的所述媒体流中的一个帧数据,基于所述一个帧数据确定对应的媒体流类型;
若确定所述一个帧数据的媒体流类型为视频流,则基于所述一个帧数据确定对应的帧类型是否为视频关键帧,并基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中;
若确定所述一个帧数据的媒体流类型为音频流,则将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,其中,所述第一目标视频帧数据是接收时刻与所述一个帧数据相邻的上一个视频帧数据。
一些实施例中,所述基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中,所述划分模块用于:
若所述判断结果表征所述一个帧数据的帧类型是目标流视频关键帧,则判断所述一个帧数据是否满足预设条件,若是,则将所述一个帧数据划分到目标流对应的新的待处理集合中,否则,将所述一个帧数据划分到所述目标流中的目标视频关键帧数据所在的待处理集合中,其中,所述目标视频关键帧数据是所述目标流中的接收时刻与所述一个帧数据相邻的上一个视频关键帧数据;
若所述判断结果表征所述一个帧数据的帧类型不是目标流视频关键帧,则将所述一个帧数据划分到目标流中的第二目标视频帧数据所在的待处理集合中,其中,所述第二目标视频帧数据是所述目标流中接收时刻与所述一个帧数据相邻的上一个视频帧数据;
其中,所述视频流包括视频主流和演示视频流,若所述目标流视频关键帧为视频主流视频关键帧,则所述目标流为所述视频主流;或,若所述目标流视频关键帧为演示视频流视频关键帧,则所述目标流为所述演示视频流。
一些实施例中,所述预设条件包括如下条件中的部分或全部:
所述一个帧数据与所述目标视频关键帧数据的编码信息不同;其中,所述编码信息包括分辨率和/或编码格式;
所述一个帧数据与所述第二目标视频帧数据的时间戳差值大于所述时间阈值,其中,所述时间戳差值为所述一个帧数据和所述第二目标视频帧数据的系统墙上时钟时间戳差值。
一些实施例中,若所述视频流包括视频主流和演示视频流,则所述若确定所述一个帧数据的媒体流类型为音频流,将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,所述划分模块用于:
若确定所述一个帧数据的媒体流类型为音频流,则在确定已存在所述视频主流对应的待处理集合后,将所述一个帧数据划分到所述视频主流中的第三目标视频帧数据所在的待处理集合中,以及,在确定已存在所述演示视频流对应的待处理集合后,将所述一个帧数据的副本划分到所述演示视频流中的第四目标视频帧数据所在的待处理集合中;或,
在确定不存在所述视频主流对应的待处理集合,且不存在所述演示视频流对应的待处理集合后,丢弃所述一个帧数据;
其中,所述第三目标视频帧数据是所述视频主流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据,所述第四目标视频帧数据是所述演示视频流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据。
一些实施例中,在所述分别基于得到的各个待处理集合生成对应的视频片段之后,所述生成模块还用于:
针对所述各个待处理集合中的任意一个待处理集合,即所述待处理集合包括的每个帧数据包含的系统单调时钟时间戳,生成所述视频片段对应的元数据信息,其中,所述元数据信息用于在播放所述视频片段时进行音视频同步;
将所述元数据信息写入对应视频片段的数据块中。
一些实施例中,所述将生成的各个视频片段作为所述媒体流对应的下载文件,所述生成模块用于:
基于同一媒体流类型的各个视频片段,生成对应的视频播放列表文件;
将生成的各个视频片段及对应的视频播放列表文件,作为所述媒体流对应的下载文件。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,其中,
所述存储器,用于存储计算机程序或指令;
所述处理器,用于执行所述存储器中的计算机程序或指令,使得如上述第一方面中任一所述的方法被执行。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现如上述第一方面中任一方法的步骤。
另外,第二方面至第四方面中任一一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例中一种应用场景示意图;
图2为本申请实施例中一种媒体流的下载方法的流程示意图;
图3为本申请实施例中一种帧数据划分方法的流程示意图;
图4为本申请实施例中一种媒体流分片的流程示意图;
图5为本申请实施例中媒体流下载的示例1的示意图;
图6为本申请实施例中媒体流下载的示例2的示意图;
图7为本申请实施例中媒体流下载的示例3的示意图;
图8为本申请实施例中一种媒体流的下载装置的逻辑架构示意图;
图9为本申请实施例中电子设备的实体架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够在除了这里图示或描述的那些以外的顺序实施。
为了解决用户从服务器下载的录像文件存在播放花屏、音视频不同步的问题,本申请实施例中,向服务器发送拉流请求,将接收到服务器发送的媒体流中的帧数据划分到至少一个待处理集合中,然后,分别基于得到的各个待处理集合生成对应的视频片段,并在接收到服务器发送的回放结束指示后,将生成的各个视频片段作为媒体流对应的下载文件,其中,媒体流包括视频帧数据和音频帧数据;待处理集合包括至少一个视频关键帧数据,同一个待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;这样,不仅可以使采用上述方法下载的每个视频片段都能使用通用播放器正常播放,也使得服务器无需对原媒体流进行二次编码、转码生成额外的录像文件,节约了服务器的编码计算开销和存储空间,采用上述方法,媒体流可以即存即可下载,节约了下载客户端等待服务器进行二次编码合成的时间。
下面结合附图对本申请优选的实施方式做出进一步详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。
参阅图1所示,其为本申请实施例的应用场景示意图。在该应用场景中,视频会议及录像系统的应用架构可以包括:视频会议系统、服务器和下载客户端,其中,视频会议系统包括MCU、终端;服务器与MCU部署在同一个网络,且之间带宽充足,服务器与MCU保持系统时间同步。
本申请实施例中,上述应用场景中,终端采集图像、声音并经过编码发送给MCU。MCU根据视频会议要求将多个终端发送的图像进行融合或不进行融合,声音进行混音或不混音后发送给各个参与终端,以实现多方与会人的音视频通话。服务器通过模拟终端入会行为向MCU拉取视频会议过程中的多路媒体流后进行录像存储,以便后续提供给用户进行录像回放。
需要说明的是,本申请实施例中,服务器的循环对列文件系统(Circular fileSystem,CQFS)中不仅可以存储上述从视频会议系统中得到的视频会议过程中产生的媒体流,还可以存储任意形式的、支持实时流媒体传输的媒体流。
参阅图2所示,本申请实施例中,一种媒体流的下载方法,应用于下载客户端,具体流程如下:
步骤200:向服务器发送拉流请求,其中,拉流请求用于请求下载服务器存储的媒体流,媒体流包括视频帧数据和音频帧数据。
本申请实施例中,服务器开放私有实时流传输协议(Real Time StreamingProtocol,RTSP)服务端口,用于输出基于私有RTSP协议的媒体流。那么,下载客户端若要下载每个视频会议的媒体流,可以通过启动一个私有RTSP客户端,基于要下载的媒体流的RTSP统一资源定位系统(uniform resource locator,URL)地址,向服务器发起拉流请求,即私有RTSP拉流请求,用于请求下载服务器存储的RTSP URL地址对应的媒体流。
本申请实施例中,服务器使用循环对列文件系统CQFS存储从视频会议系统中实时拉取的多路媒体流,并按照接收时序,将该多路媒体流无封装地存储为针对该视频会议的单路复合媒体流。上述CQFS文件系统中,存储的单路复合媒体流的录像存储格式示例如下表所示:
表1 CQFS文件系统中存储的单路复合媒体流的录像存储格式示例
Figure 54897DEST_PATH_IMAGE001
步骤210:将接收到服务器发送的媒体流中的帧数据划分到至少一个待处理集合中,其中,待处理集合包括至少一个视频关键帧数据,同一个待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值。
本申请实施例中,参阅图3所示,在执行步骤210时,具体通过执行如下步骤实现上述功能:
步骤2101:每接收到服务器发送的媒体流中的一个帧数据,基于一个帧数据确定对应的媒体流类型。
本申请实施例中,服务器基于下载客户端发起的拉流请求,向下载客户端发送与拉流请求包括的RTSP URL地址对应的媒体流,其中,媒体流包括视频帧数据和音频帧数据,每帧数据均包含媒体流私有帧头。
本申请实施例中,每个帧数据携带的媒体流私有帧头定义示例如下表所示:
表2 媒体流私有帧头定义示例
Figure 175300DEST_PATH_IMAGE002
需要说明的是,上表中,32位时间日期(Datetime)是基于系统墙上时钟时间确定的。系统墙上时钟时间可以理解为人类真实世界中定义的标准时间。16位绝对时间戳是基于系统单调时钟时间确定的,系统单调时钟是指时钟数值单调变化(通常是单调递增)的时钟,该系统单调时钟不同于可以被校准、调整的网络时间协议(Network Time Procotol,简称为TPN)时钟,系统单调时钟通常是不能被调整的,因此,系统单调时钟可以用于判断事件发生的先后顺序和时间间隔。常见的系统单调时钟是自系统启动开始计数的单调时钟,可用clock_gettime时间函数(提供包括clock_monotonic在内的多种类型的时钟)获取。
需要说明的是,服务器在接收到视频会议系统的多路媒体流后,采用同一基准时间(即,系统单调时钟时间)确定接收到的每个帧数据的16位绝对时间戳,因此,基于该16位绝对时间戳,既可以保证媒体流回放时音视频同步。
本申请实施例中,为了便于描述和区分每个帧数据携带的32位时间日期(Datetime)和16位绝对时间戳(PTS),将帧头中的关键字段——32位时间日期(Datetime)记为墙上时钟时间戳;将帧头中的关键字段——16位绝对时间戳(PTS)记为系统单调时钟时间戳,后续不再赘述。
本申请实施例中,下载客户端和服务器之间基于RTSP传输协议等进行数据传输,服务器存储的媒体流是由同步信源实时生产并由MCU实时传输存储的,为了保证下载客户端得到的下载文件不存在时序不一致的问题,即保证下载客户端接收到的各个帧数据的时序与服务器中存储的媒体流包括的各个帧数据的时序一致,因此,服务器在向下载客户端发送上述RTSP URL地址对应的媒体流时,需采用可靠传输协议,如优选采用RTP OVERRTSP/TCP媒体流传输协议等。
本申请实施例中,由于服务器发送给下载客户端的每一个帧数据都携带上述媒体流私有帧头,因此,下载客户端每接收到服务器发送的媒体流中的一个帧数据,均可以基于该一个帧数据的媒体流私有帧头,确定出该一个帧数据对应的媒体流类型。
由于媒体流包括两大类型,即视频流和音频流,因此,当确定该一个帧数据的媒体流类型为视频流时,执行步骤2102;当确定该一个帧数据的媒体流类型为音频流时,执行步骤2103。
步骤2102:若确定一个帧数据的媒体流类型为视频流,则基于一个帧数据确定对应的帧类型是否为视频关键帧,并基于判断结果将一个帧数据划分到视频流对应的待处理集合中。
本申请实施例中,在执行步骤2102时,下载客户端在确定接收到的服务器发送的媒体流中的一个帧数据的媒体流类型为视频流后,对上述接收到的视频流进行切片,以得到可以使用通用播放器正常播放的各个视频片段。
具体实施中,在确定接收到的一个帧数据的媒体流类型为视频流后,基于该一个帧数据的帧头,确定对应的帧类型是否为视频关键帧,从而得到判断结果。
本申请实施例中,基于判断结果的不同,基于判断结果将一个帧数据划分到视频流对应的待处理集合中,包含但不限于如下两种情况:
情况一,若判断结果表征一个帧数据的帧类型是视频关键帧,则进一步判断一个帧数据是否满足预设条件,若是,则将一个帧数据划分到视频流对应的新的待处理集合中,否则,将一个帧数据划分到视频流中的目标视频关键帧数据所在的待处理集合中,其中,目标视频关键帧数据是视频流中的接收时刻与一个帧数据相邻的上一个视频关键帧数据。
情况二,若判断结果表征一个帧数据的帧类型不是视频关键帧,则将一个帧数据划分到视频流中的第二目标视频帧数据所在的待处理集合中,其中,第二目标视频帧数据是视频流中接收时刻与所述一个帧数据相邻的上一个视频帧数据。
可选的,本申请实施例中,假设下载客户端从服务器拉取的是视频会议过程中产生的媒体流,则上述视频流可以包括视频主流,也可以包括视频主流和演示视频流。
那么,当视频流仅包括视频主流时,基于判断结果将一个帧数据划分到视频流对应的待处理集合中,包含但不限于如下两种情况:
情况一,若判断结果表征一个帧数据的帧类型是视频主流视频关键帧,则进一步判断一个帧数据是否满足预设条件,若是,则将一个帧数据划分到视频主流对应的新的待处理集合中,否则,将一个帧数据划分到视频主流中的目标视频关键帧数据所在的待处理集合中,其中,目标视频关键帧数据是视频主流中的接收时刻与一个帧数据相邻的上一个视频关键帧数据。
情况二,若判断结果表征一个帧数据的帧类型不是视频主流视频关键帧,则将一个帧数据划分到视频主流中的第二目标视频帧数据所在的待处理集合中,其中,第二目标视频帧数据是视频主流中接收时刻与一个帧数据相邻的上一个视频帧数据。
当视频流包括视频主流和演示视频流,若目标流视频关键帧为视频主流视频关键帧,则目标流为视频主流;或,若目标流视频关键帧为演示视频流视频关键帧,则目标流为演示视频流,那么,基于判断结果将一个帧数据划分到视频流对应的待处理集合中,包含但不限于如下两种情况:
情况一,若判断结果表征一个帧数据的帧类型是目标流视频关键帧,则进一步判断一个帧数据是否满足预设条件,若是,则将一个帧数据划分到目标流对应的新的待处理集合中,否则,将一个帧数据划分到目标流中的目标视频关键帧数据所在的待处理集合中,其中,目标视频关键帧数据是目标流中的接收时刻与一个帧数据相邻的上一个视频关键帧数据。
情况二,若判断结果表征一个帧数据的帧类型不是目标流视频关键帧,则将一个帧数据划分到目标流中的第二目标视频帧数据所在的待处理集合中,其中,第二目标视频帧数据是目标流中接收时刻与一个帧数据相邻的上一个视频帧数据。
需要说明的是,本申请实施例中,上述预设条件包括如下条件中的部分或全部:
条件一,一个帧数据与目标视频关键帧数据的编码信息不同;其中,编码信息包括分辨率和/或编码格式。
条件二,一个帧数据与第二目标视频帧数据的时间戳差值大于时间阈值,其中,时间戳差值为一个帧数据和第二目标视频帧数据的系统墙上时钟时间戳差值。
步骤2103:若确定一个帧数据的媒体流类型为音频流,则将一个帧数据划分到第一目标视频帧数据所在的待处理集合中,其中,第一目标视频帧数据是接收时刻与一个帧数据相邻的上一个视频帧数据。
本申请实施例中,若媒体流中的视频流仅包括视频主流,则在执行步骤2103时,在确定接收到的一个帧数据的媒体流类型为音频流,则将该一个帧数据划分到视频主流中的第一目标视频帧数据所在的待处理集合,该第一目标视频帧数据是视频主流中接收时刻与该一个帧数据相邻的上一个视频帧数据。
需要说明的是,本申请实施例中,视频流仅包括视频主流,若音频帧数据在视频帧数据后传输,则当接收到音频帧数据后,直接将该音频帧数据放到相邻的、先前接收到的视频帧数据所在的待处理集合即可;若音频帧数据在视频帧数据前传输,则丢弃该音频帧数据。
可选的,本申请实施例中,若媒体流中的视频流包括视频主流和演示视频流,则在执行步骤2103时,若确定接收到的服务器发送的媒体流中的一个帧数据的媒体流类型为音频流,则在确定已存在视频主流对应的待处理集合后,将一个帧数据划分到视频主流中的第三目标视频帧数据所在的待处理集合中,以及,在确定已存在演示视频流对应的待处理集合后,将一个帧数据的副本划分到演示视频流中的第四目标视频帧数据所在的待处理集合中;其中,第三目标视频帧数据是视频主流中的接收时刻与一个帧数据相邻的上一个视频帧数据,第四目标视频帧数据是演示视频流中的接收时刻与一个帧数据相邻的上一个视频帧数据。
进一步地,本申请实施例中,在执行步骤2103时,若确定接收到的服务器发送的媒体流中的一个帧数据的媒体流类型为音频流,则在确定不存在视频主流对应的待处理集合,且不存在演示视频流对应的待处理集合后,丢弃该一个帧数据。
步骤220:分别基于得到的各个待处理集合生成对应的视频片段,并在接收到服务器发送的回放结束指示后,将生成的各个视频片段作为媒体流对应的下载文件。
本申请实施例中,通过执行步骤210之后,得到各个待处理集合,那么,在执行步骤220时,可以得到一个待处理集合,即基于该待处理集合生成对应的视频片段,然后,在接收到服务器发送的回放结束指示后,将生成的各个视频片段作为媒体流对应的下载文件;也可以在接收到服务器发送的回放结束指示后,分别基于得到的各个待处理集合生成对应的视频片段,并将生成的各个视频片段作为媒体流对应的下载文件。
具体实施中,针对任意一个待处理集合中的每个帧数据,去掉媒体流私有帧头,得到裸帧数据,并对该裸帧数据进行转码操作,以及,基于每个帧数据包含的系统单调时钟时间戳,生成视频片段对应的元数据信息,其中,元数据信息用于在播放视频片段时进行音视频同步,然后,将转码后的各个帧数据和元数据信息等封装为标准格式,从而得到对应的视频片段。
例如,以生成的视频片段的文件格式为MP4文件格式为例。
针对任意一个待处理集合中的每个帧数据,去掉帧数据的媒体流私有帧头,得到对应的裸帧数据,并对裸帧数据进行转码操作,以及,获取帧数据的媒体流私有帧头包含的系统单调时钟时间戳。
然后,基于每个帧数据对应的系统单调时钟时间戳生成视频片段对应的元数据信息,将转码后的各个帧数据和元数据信息等封装为MP4文件,从而得到对应的视频片段,其中,元数据信息包括音视频帧数据的编码格式、索引信息、Sample编码时序映射表等,用于在播放视频片段时进行音视频同步。
本申请实施中,在接收到服务器发送的回放结束指示后,基于同一媒体流类型的各个视频片段,生成对应的视频播放列表文件;以及,将生成的各个视频片段及对应的视频播放列表文件,作为媒体流对应的下载文件。
这样,用户在播放该媒体流对应的任意一个媒体流类型的视频片段时,只需点击一个视频播放列表文件即可,从而提高用户体验。
可选的,本申请实施例中,在分别基于得到的各个待处理集合生成对应的视频片段之后,针对各个待处理集合中的任意一个待处理集合,基于待处理集合包括的每个帧数据包含的系统单调时钟时间戳,生成视频片段对应的元数据信息,其中,元数据信息用于在播放视频片段时进行音视频同步,并将元数据信息写入对应视频片段的数据块中。
由于服务器在存储该媒体流中的每帧数据时,均是采用同一基准时间(即,系统单调时钟时间)确定的对应帧数据的系统单调时钟时间戳,这样,通过媒体流中的帧数据携带的媒体流私有帧头,生成对应视频片段的元数据信息,可以使用户在播放上述视频片段时,通过该元数据信息,准确定位任意时段对应的视频帧数据和音频帧数据,从而实现音视频同步。
下面通过优选实施例对本申请进行介绍。
由于在视频会议系统中,演示设备、摄像设备和录音设备等作为视频会议的同步信源(又称为媒体流生产者)都能够生产媒体流。在同一视频会议中生产了多路媒体流的情况下,若有多路视频流,则MCU将多路视频流进行融合或不融合后发送给请求视频流的软、硬终端等参与设备;若有多路音频流,则视频会议服务器将多路音频流混音或不混音后发送给请求音频流的软、硬终端等参与设备。比较常见的情况是MCU从多路媒体流中选择一路摄像视频流作为视频主流、选择一路演示视频流作为演示视频流,并将一路音频流(或多路音频流混音为一路音频流)这三路媒体流发送给参与设备;在其他一些情况下,摄像视频流、演示视频流、音频流的路数也都可以为多路。
本申请实施例中,服务器作为上述视频会议的参与设备接收到MCU发送的同一视频会议的全部同步信源生成的媒体流,即视频主流、演示视频流和音频流,并按照接收时序,为每一帧数据制作对应的媒体流私有帧头,然后,将携带各自媒体流私有帧头的帧数据无封装地存储在CQFS文件系统中,从而得到如表1所示的单路复合媒体流。
一些优选实施例中,若服务器存储的音频流的编码格式不是AAC格式,则调用音频转码模块将其转换成AAC格式后再进行私有RTSP协议输出,以便兼容标准文件格式。
例如,服务器中存储的音频流的编码格式是G711A格式,则调用音频转码模块将其由G711A格式转换成AAC格式。
下载客户端基于媒体流对应的RTSP URL地址,以及存储路径前缀,初始化视频文件索引值,如,视频主流mainIndex为1,演示视频流demoIndex为1;并初始化视频主流和演示视频流各自对应的视频文件写入模块,如,视频主流写入模块mainWriter,演示视频流写入模块demoWriter。
然后,下载客户端向服务器发送拉流请求,该拉流请求用于请求下载该媒体流。
服务器接收到该拉流请求后,将拉流请求包括的RTSP URL地址对应的媒体流,通过RTP OVER RTSP/TCP媒体流传输协议,依次发送至下载客户端。
下载客户端在接收到服务器发送的媒体流中的帧数据后,通过执行如下操作,将接收到的帧数据划分到至少一个待处理集合中,即写入到至少一个视频文件中:
操作一,每接收到服务器发送的一个帧数据,基于该一个帧数据确定对应的媒体流类型。
操作二,若该一个帧数据的媒体流类型为视频主流,则通过媒体流分片算法,判断是否对视频主流进行视频切片,并基于判断结果,调用视频文件写入模块main Writer,将一个帧数据写入视频主流对应的视频文件中。
操作三,若该一个帧数据的媒体流类型为演示视频流,则通过媒体流分片算法,判断是否对演示视频流进行视频切片,并基于判断结果,调用视频文件写入模块demoWriter,将一个帧数据写入演示视频流对应的视频文件中。
操作四,若该一个帧数据的媒体流类型为音频流,则调用视频文件写入模块mainWriter,将该一个帧数据写入视频主流对应的视频文件中,并调用视频文件写入模块demoWriter,将该一个帧数据也写入演示视频流对应的视频文件中。
具体实施中,操作二是对视频主流进行视频切片,而操作三是对演示视频流进行视频切片,可见,上述对视频主流或演示视频流进行视频切片均是通过媒体流分片算法实现的。
假设当前通过媒体流分片算法进行视频分片的是目标流,该目标流是视频主流或演示视频流,其中,若目标流视频关键帧为视频主流视频关键帧,则目标流为视频主流;或,若目标流视频关键帧为演示视频流视频关键帧,则目标流为演示视频流。
则参阅图4所示,本申请实施例中,通过执行如下步骤,实现上述媒体流分片算法的功能:
步骤400:基于一个帧数据确定对应的媒体流类型为目标流。
步骤410:基于一个帧数据确定对应的帧类型是否为目标流视频关键帧,若是,则执行步骤420,否则,执行步骤460。
步骤420:基于一个帧数据的媒体流私有帧头,获取对应的编码信息,其中,编码信息包括分辨率和/或编码格式。
步骤430:基于一个帧数据的媒体流私有帧头,获取对应的系统墙上时钟时间戳。
步骤440:判断该一个帧数据是否满足以下任意一个条件,若是,则执行步骤450,否则,执行步骤460。
条件一,一个帧数据与目标视频关键帧数据的分辨率不同,其中,目标视频关键帧数据是目标流中的接收时刻与一个帧数据相邻的上一个视频关键帧数据。
条件二,一个帧数据与上述目标视频关键帧数据的编码格式不同,其中,目标视频关键帧数据是目标流中的接收时刻与一个帧数据相邻的上一个视频关键帧数据。
条件三,一个帧数据与第二目标视频帧数据的时间戳差值大于时间阈值,其中,时间戳差值为一个帧数据和第二目标视频帧数据的系统墙上时钟时间戳差值,第二目标视频帧数据是目标流中接收时刻与一个帧数据相邻的上一个视频帧数据,其系统墙上时钟时间戳是在接收到该第二目标视频帧数据的时候记录的。
本申请实施例中,将一个帧数据与第二目标视频帧数据的系统墙上时钟时间戳进行比较,当确定两者的系统墙上时钟时间戳差值大于时间阈值(如,2s),可知,目标流发生了断流,那么,将在接收到该一个帧数据之前的音频帧数据划分到上一个视频文件中,此时,播放的视频中,视频界面一直显示上一个视频文件中的最后一个帧数据(即,第二目标视频帧数据),顺序播放后续接收到的音频帧数据,这样,可以大幅解决由于音频帧数据多,视频帧数据少,造成的音视频不同步问题。
步骤450:触发对目标流的视频分片,记录一个帧数据的编码信息。
具体实施中,在执行步骤450时,首先,使用目标流的媒体流类型对应的视频文件的索引值、目标流对应的存储路径前缀,生成一个新的视频文件的文件名称,并使用新的文件名称,初始化目标流对应的视频文件写入模块,打开新的视频文件,将该一个帧数据写入该新的视频文件中;目标流对应的视频文件索引值加一,记录该一个帧数据的编码信息,以便用于下一次比较。
本申请实施例中,在执行步骤450时,若当前存在已打开的视频文件,则将该视频文件关闭,然后,再生成新的视频文件,并打开视频文件,以将该一个帧数据写入该新的视频文件中。
步骤460:调用目标流对应的视频文件写入模块,将该一个帧数据写入当前存在的已打开的视频文件中。
本申请实施例中,视频文件写入模块,基于该一个帧数据的系统单调时钟时间戳生成视频片段的元数据信息,其中,元数据信息用于在播放视频片段时进行音视频同步,并将该元数据信息写入对应视频片段的数据块中。
操作五,接收到服务器发送的回放结束指示后,将生成的视频片段作为媒体流对应的下载文件。
本申请实施例中,下载客户端可以通过接收到服务器发送的一个空帧数据,确定接收到服务器发送的回放结束指示,也可以通过接收到服务器发送的一个扩展信令,确定接收到服务器发送的回放结束指示,在此不做具体限定。
本申请实施例中,当关闭视频文件后,即可基于该视频文件包括的各个帧数据,生成对应的视频片段,也可以在接收到回放结束指示后,基于每个视频文件包括的各个帧数据生成对应的视频片段,然后,将得到的各个视频片段作为该媒体流A对应的下载文件。
可选的,本申请实施例中,上述视频片段的文件格式可以是标准的MP4、FLV、AVI等文件格式,以便通用播放器可直接播放下载后的录像文件。
操作六,在得到该媒体流A对应的各个视频片段后,基于各个视频片段生成对应的视频播放列表文件,如M3U格式文件等。
例如,参阅图5所示,服务器的CQFS中存储的视频会议A对应的媒体流A。
假设该媒体流A包括一路视频主流、不同时段产生的三个演示视频流,以及一路音频流。
假设下载客户端的视频片段的文件格式为MP4,存储路径前缀为/data/stream/3818。
若视频会议过程中,未修改视频主流的编码信息,也未修改演示视频流的编码信息,则下载客户端采用上述媒体流A的下载方法,生成的各个视频片段如下:
/data/stream/3818_main_1.mp4;
/data/stream/3818_demo_1.mp4;
/data/stream/3818_demo_2.mp4;
/data/stream/3818_demo_3.mp4。
需要说明的是,本申请实施例中,上述演示视频流虽未修改编码信息,但是演示视频流中出现两处断流,即后接收到的一个演示视频流视频关键帧数据与相邻的前一个演示视频流视频帧数据的系统墙上时钟时间戳差值大于时间阈值,如时间阈值为2s,则下载客户端得到上述三段演示视频流视频片段。
最终,基于上述同一媒体流类型的各个视频片段,生成对应的视频播放列表文件,如,/data/stream/3818.m3u,/data/stream/3818_demo.m3u;这样,用户在播放该视频会议A对应的媒体流A时,只需点击/data/stream/3818.m3u、/data/stream/3818_demo.m3u文件即可。
综上,下载客户端中存储的媒体流A对应的文件如下:
/data/stream/3818_main_1.mp4;
/data/stream/3818_demo_1.mp4;
/data/stream/3818_demo_2.mp4;
/data/stream/3818_demo_3.mp4;
/data/stream/3818_main.m3u;
/data/stream/3818_demo.m3u。
这样,采用上述媒体流的下载方法,得到的下载文件中将视频主流和演示视频流分开进行存储,这样,用户可以自由选择观看视频主流或演示视频流对应的下载文件,增加了下载文件的使用效率,也给予用户更好的服务体验。
又例如,参阅图6所示,服务器的CQFS中存储的视频会议B对应的媒体流B。
假设该媒体流B包括一路视频主流和一路音频流,无演示视频流,以及下载客户端的视频片段的文件格式为MP4,存储路径前缀为/data/stream/5812。
若视频会议过程中,对视频主流的编码信息进行了两次修改:从1080P H264HP修改为720P H264HP,再修改为720P H265,则下载客户端采用上述媒体流B的下载方法,得到的各个视频片段如下:
/data/stream/5812_main_1.mp4;
/data/stream/5812_main_2.mp4;
/data/stream/5812_main_3.mp4;
最终,基于上述各个视频片段,生成媒体流B对应的视频播放列表文件,如,/data/stream/5812_main.m3u,这样,用户在播放该视频会议B对应的媒体流B时,只需点击/data/stream/5812_main.m3u文件即可。
综上,下载客户端中存储的媒体流B对应的文件如下:
/data/stream/5812_main_1.mp4;
/data/stream/5812_main_2.mp4;
/data/stream/5812_main_3.mp4;
/data/stream/5812_main.m3u。
又例如,参阅图7所示,服务器的CQFS中存储的视频会议C对应的媒体流C。
假设该媒体流C包括一路视频主流和一路音频流,以及下载客户端的视频片段的文件格式为MP4,存储路径前缀为/data/stream/4613。
若视频会议过程中,未修改视频主流的编码信息,只是中间存在视频主流的断流现象,即后接收到的一个视频主流视频关键帧数据与相邻的前一个视频主流视频帧数据的系统墙上时钟时间戳差值大于时间阈值,如时间阈值为2s;则下载客户端采用上述媒体流的下载方法,得到的各个视频片段如下:
/data/stream/4613_main_1.mp4;
/data/stream/4613_main_2.mp4。
这样,将一路视频主流分别保存为两个视频片段,将视频主流从系统墙上时钟时间戳差值大于时间阈值的上述视频主流视频关键帧数据处分开,基于上述视频主流视频关键帧数据的系统墙上时钟时间戳,将后续接收到的音频帧数据划分到该视频主流视频关键帧数据所在的视频文件,从而可以保证音视频数据同步。
最终,基于上述各个视频片段,生成媒体流C对应的视频播放列表文件,如,/data/stream/4613_main.m3u,这样,用户在播放该视频会议对应的媒体流C时,只需点击/data/stream/4613_main.m3u文件即可。
综上,下载客户端中存储的媒体流C对应的文件如下:
/data/stream/4613_main_1.mp4;
/data/stream/4613_main_2.mp4;
/data/stream/4613_main.m3u。
基于同一发明构思,参阅图8所示,本申请实施例中提供一种媒体流的下载装置,包括:
发送模块810,用于向服务器发送拉流请求,其中,所述拉流请求用于请求下载所述服务器存储的媒体流,所述媒体流包括视频帧数据和音频帧数据;
划分模块820,用于将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,其中,所述待处理集合包括至少一个视频关键帧数据,同一个所述待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个所述待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;
生成模块830,用于分别基于得到的各个待处理集合生成对应的视频片段,并在接收到所述服务器发送的回放结束指示后,将生成的各个视频片段作为所述媒体流对应的下载文件。
一些实施例中,所述将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,所述划分模块820用于:
每接收到所述服务器发送的所述媒体流中的一个帧数据,基于所述一个帧数据确定对应的媒体流类型;
若确定所述一个帧数据的媒体流类型为视频流,则基于所述一个帧数据确定对应的帧类型是否为视频关键帧,并基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中;
若确定所述一个帧数据的媒体流类型为音频流,则将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,其中,所述第一目标视频帧数据是接收时刻与所述一个帧数据相邻的上一个视频帧数据。
一些实施例中,所述基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中,所述划分模块820用于:
若所述判断结果表征所述一个帧数据的帧类型是目标流视频关键帧,则判断所述一个帧数据是否满足预设条件,若是,则将所述一个帧数据划分到目标流对应的新的待处理集合中,否则,将所述一个帧数据划分到所述目标流中的目标视频关键帧数据所在的待处理集合中,其中,所述目标视频关键帧数据是所述目标流中的接收时刻与所述一个帧数据相邻的上一个视频关键帧数据;
若所述判断结果表征所述一个帧数据的帧类型不是目标流视频关键帧,则将所述一个帧数据划分到目标流中的第二目标视频帧数据所在的待处理集合中,其中,所述第二目标视频帧数据是所述目标流中接收时刻与所述一个帧数据相邻的上一个视频帧数据;
其中,所述视频流包括视频主流和演示视频流,若所述目标流视频关键帧为视频主流视频关键帧,则所述目标流为所述视频主流;或,若所述目标流视频关键帧为演示视频流视频关键帧,则所述目标流为所述演示视频流。
一些实施例中,所述预设条件包括如下条件中的部分或全部:
所述一个帧数据与所述目标视频关键帧数据的编码信息不同;其中,所述编码信息包括分辨率和/或编码格式;
所述一个帧数据与所述第二目标视频帧数据的时间戳差值大于所述时间阈值,其中,所述时间戳差值为所述一个帧数据和所述第二目标视频帧数据的系统墙上时钟时间戳差值。
一些实施例中,若所述视频流包括视频主流和演示视频流,则所述若确定所述一个帧数据的媒体流类型为音频流,将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,所述划分模块820用于:
若确定所述一个帧数据的媒体流类型为音频流,则在确定已存在所述视频主流对应的待处理集合后,将所述一个帧数据划分到所述视频主流中的第三目标视频帧数据所在的待处理集合中,以及,在确定已存在所述演示视频流对应的待处理集合后,将所述一个帧数据的副本划分到所述演示视频流中的第四目标视频帧数据所在的待处理集合中;或,
在确定不存在所述视频主流对应的待处理集合,且不存在所述演示视频流对应的待处理集合后,丢弃所述一个帧数据;
其中,所述第三目标视频帧数据是所述视频主流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据,所述第四目标视频帧数据是所述演示视频流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据。
一些实施例中,在所述分别基于得到的各个待处理集合生成对应的视频片段之后,所述生成模块830还用于:
针对所述各个待处理集合中的任意一个待处理集合,基于所述待处理集合包括的每个帧数据包含的系统单调时钟时间戳,生成所述视频片段对应的元数据信息,其中,所述元数据信息用于在播放所述视频片段时进行音视频同步;
将所述元数据信息写入对应视频片段的数据块中。
一些实施例中,所述将生成的各个视频片段作为所述媒体流对应的下载文件,所述生成模块830用于:
基于同一媒体流类型的各个视频片段,生成对应的视频播放列表文件;
将生成的各个视频片段及对应的视频播放列表文件,作为所述媒体流对应的下载文件。
参阅图9所示,本申请实施例中提供一种电子设备,包括:存储器901和处理器902,其中,
所述存储器901,用于存储计算机程序或指令;
所述处理器902,用于执行所述存储器901中的计算机程序或指令,使得如上述各个实施例中媒体流的下载装置执行的任一所述的方法被执行。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现如上述各个实施例中媒体流的下载装置执行的任意一种方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种媒体流的下载方法,其特征在于,包括:
向服务器发送拉流请求,其中,所述拉流请求用于请求下载所述服务器存储的媒体流,所述媒体流包括视频帧数据和音频帧数据;
将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,其中,所述待处理集合包括至少一个视频关键帧数据,同一个所述待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个所述待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;
分别基于得到的各个待处理集合生成对应的视频片段,并在接收到所述服务器发送的回放结束指示后,将生成的各个视频片段作为所述媒体流对应的下载文件。
2.如权利要求1所述的方法,其特征在于,所述将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,包括:
每接收到所述服务器发送的所述媒体流中的一个帧数据,基于所述一个帧数据确定对应的媒体流类型;
若确定所述一个帧数据的媒体流类型为视频流,则基于所述一个帧数据确定对应的帧类型是否为视频关键帧,并基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中;
若确定所述一个帧数据的媒体流类型为音频流,则将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,其中,所述第一目标视频帧数据是接收时刻与所述一个帧数据相邻的上一个视频帧数据。
3.如权利要求2所述的方法,其特征在于,所述基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中,包括:
若所述判断结果表征所述一个帧数据的帧类型是目标流视频关键帧,则判断所述一个帧数据是否满足预设条件,若是,则将所述一个帧数据划分到目标流对应的新的待处理集合中,否则,将所述一个帧数据划分到所述目标流中的目标视频关键帧数据所在的待处理集合中,其中,所述目标视频关键帧数据是所述目标流中的接收时刻与所述一个帧数据相邻的上一个视频关键帧数据;
若所述判断结果表征所述一个帧数据的帧类型不是目标流视频关键帧,则将所述一个帧数据划分到目标流中的第二目标视频帧数据所在的待处理集合中,其中,所述第二目标视频帧数据是所述目标流中接收时刻与所述一个帧数据相邻的上一个视频帧数据;
其中,所述视频流包括视频主流和演示视频流,若所述目标流视频关键帧为视频主流视频关键帧,则所述目标流为所述视频主流;或,若所述目标流视频关键帧为演示视频流视频关键帧,则所述目标流为所述演示视频流。
4.如权利要求3所述的方法,其特征在于,所述预设条件包括如下条件中的部分或全部:
所述一个帧数据与所述目标视频关键帧数据的编码信息不同;其中,所述编码信息包括分辨率和/或编码格式;
所述一个帧数据与所述第二目标视频帧数据的时间戳差值大于所述时间阈值,其中,所述时间戳差值为所述一个帧数据和所述第二目标视频帧数据的系统墙上时钟时间戳差值。
5.如权利要求2-4任一所述的方法,其特征在于,若所述视频流包括视频主流和演示视频流,则所述若确定所述一个帧数据的媒体流类型为音频流,将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,包括:
若确定所述一个帧数据的媒体流类型为音频流,则在确定已存在所述视频主流对应的待处理集合后,将所述一个帧数据划分到所述视频主流中的第三目标视频帧数据所在的待处理集合中,以及,在确定已存在所述演示视频流对应的待处理集合后,将所述一个帧数据的副本划分到所述演示视频流中的第四目标视频帧数据所在的待处理集合中;或,
在确定不存在所述视频主流对应的待处理集合,且不存在所述演示视频流对应的待处理集合后,丢弃所述一个帧数据;
其中,所述第三目标视频帧数据是所述视频主流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据,所述第四目标视频帧数据是所述演示视频流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据。
6.如权利要求1-4任一所述的方法,其特征在于,在所述分别基于得到的各个待处理集合生成对应的视频片段之后,还包括:
针对所述各个待处理集合中的任意一个待处理集合,基于所述待处理集合包括的每个帧数据包含的系统单调时钟时间戳,生成所述视频片段对应的元数据信息,其中,所述元数据信息用于在播放所述视频片段时进行音视频同步;
将所述元数据信息写入对应视频片段的数据块中。
7.如权利要求6所述的方法,其特征在于,所述将生成的各个视频片段作为所述媒体流对应的下载文件,包括:
基于同一媒体流类型的各个视频片段,生成对应的视频播放列表文件;
将生成的各个视频片段及对应的视频播放列表文件,作为所述媒体流对应的下载文件。
8.一种媒体流的下载装置,其特征在于,包括:
发送模块,用于向服务器发送拉流请求,其中,所述拉流请求用于请求下载所述服务器存储的媒体流,所述媒体流包括视频帧数据和音频帧数据;
划分模块,用于将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,其中,所述待处理集合包括至少一个视频关键帧数据,同一个所述待处理集合中的同一媒体流类型的每个帧数据具有相同的编码信息,且同一个所述待处理集合中的任一个视频关键帧数据和接收时刻与自身相邻的上一个视频帧数据之间的时间戳差值不大于时间阈值;
生成模块,用于分别基于得到的各个待处理集合生成对应的视频片段,并在接收到所述服务器发送的回放结束指示后,将生成的各个视频片段作为所述媒体流对应的下载文件。
9.如权利要求8所述的装置,其特征在于,所述将接收到所述服务器发送的所述媒体流中的帧数据划分到至少一个待处理集合中,所述划分模块用于:
每接收到所述服务器发送的所述媒体流中的一个帧数据,基于所述一个帧数据确定对应的媒体流类型;
若确定所述一个帧数据的媒体流类型为视频流,则基于所述一个帧数据确定对应的帧类型是否为视频关键帧,并基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中;
若确定所述一个帧数据的媒体流类型为音频流,则将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,其中,所述第一目标视频帧数据是接收时刻与所述一个帧数据相邻的上一个视频帧数据。
10.如权利要求9所述的装置,其特征在于,所述基于判断结果将所述一个帧数据划分到所述视频流对应的待处理集合中,所述划分模块用于:
若所述判断结果表征所述一个帧数据的帧类型是目标流视频关键帧,则判断所述一个帧数据是否满足预设条件,若是,则将所述一个帧数据划分到目标流对应的新的待处理集合中,否则,将所述一个帧数据划分到所述目标流中的目标视频关键帧数据所在的待处理集合中,其中,所述目标视频关键帧数据是所述目标流中的接收时刻与所述一个帧数据相邻的上一个视频关键帧数据;
若所述判断结果表征所述一个帧数据的帧类型不是目标流视频关键帧,则将所述一个帧数据划分到目标流中的第二目标视频帧数据所在的待处理集合中,其中,所述第二目标视频帧数据是所述目标流中接收时刻与所述一个帧数据相邻的上一个视频帧数据;
其中,所述视频流包括视频主流和演示视频流,若所述目标流视频关键帧为视频主流视频关键帧,则所述目标流为所述视频主流;或,若所述目标流视频关键帧为演示视频流视频关键帧,则所述目标流为所述演示视频流。
11.如权利要求10所述的装置,其特征在于,所述预设条件包括如下条件中的部分或全部:
所述一个帧数据与所述目标视频关键帧数据的编码信息不同;其中,所述编码信息包括分辨率和/或编码格式;
所述一个帧数据与所述第二目标视频帧数据的时间戳差值大于所述时间阈值,其中,所述时间戳差值为所述一个帧数据和所述第二目标视频帧数据的系统墙上时钟时间戳差值。
12.如权利要求9-11任一所述的装置,其特征在于,若所述视频流包括视频主流和演示视频流,则所述若确定所述一个帧数据的媒体流类型为音频流,将所述一个帧数据划分到第一目标视频帧数据所在的待处理集合中,所述划分模块用于:
若确定所述一个帧数据的媒体流类型为音频流,则在确定已存在所述视频主流对应的待处理集合后,将所述一个帧数据划分到所述视频主流中的第三目标视频帧数据所在的待处理集合中,以及,在确定已存在所述演示视频流对应的待处理集合后,将所述一个帧数据的副本划分到所述演示视频流中的第四目标视频帧数据所在的待处理集合中;或,
在确定不存在所述视频主流对应的待处理集合,且不存在所述演示视频流对应的待处理集合后,丢弃所述一个帧数据;
其中,所述第三目标视频帧数据是所述视频主流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据,所述第四目标视频帧数据是所述演示视频流中的接收时刻与所述一个帧数据相邻的上一个视频帧数据。
13.如权利要求8-11任一所述的装置,其特征在于,在所述分别基于得到的各个待处理集合生成对应的视频片段之后,所述生成模块还用于:
针对所述各个待处理集合中的任意一个待处理集合,基于所述待处理集合包括的每个帧数据包含的系统单调时钟时间戳,生成所述视频片段对应的元数据信息,其中,所述元数据信息用于在播放所述视频片段时进行音视频同步;
将所述元数据信息写入对应视频片段的数据块中。
14.如权利要求13所述的装置,其特征在于,所述将生成的各个视频片段作为所述媒体流对应的下载文件,所述生成模块用于:
基于同一媒体流类型的各个视频片段,生成对应的视频播放列表文件;
将生成的各个视频片段及对应的视频播放列表文件,作为所述媒体流对应的下载文件。
15.一种电子设备,其特征在于,包括:处理器和存储器,其中,
所述存储器,用于存储计算机程序或指令;
所述处理器,用于执行所述存储器中的计算机程序或指令,使得权利要求1-7中任一所述的方法被执行。
16.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-7中任一所述方法的步骤。
CN202210530697.8A 2022-05-16 2022-05-16 一种媒体流的下载方法、装置、设备及存储介质 Active CN114697712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210530697.8A CN114697712B (zh) 2022-05-16 2022-05-16 一种媒体流的下载方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210530697.8A CN114697712B (zh) 2022-05-16 2022-05-16 一种媒体流的下载方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114697712A true CN114697712A (zh) 2022-07-01
CN114697712B CN114697712B (zh) 2022-09-23

Family

ID=82144720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210530697.8A Active CN114697712B (zh) 2022-05-16 2022-05-16 一种媒体流的下载方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114697712B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114866810A (zh) * 2022-07-06 2022-08-05 浙江华创视讯科技有限公司 流式录像下载方法、装置、存储介质及电子装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459693A (zh) * 2008-12-29 2009-06-17 中兴通讯股份有限公司 一种流媒体下载方法及系统
US20090172130A1 (en) * 2008-01-02 2009-07-02 Samsung Electronics Co., Ltd. Method of and apparatus for downloading data
US20130013761A1 (en) * 2011-07-06 2013-01-10 Cleversafe, Inc. Completing distribution of multi-media content to an accessing device
US20170280193A1 (en) * 2016-03-28 2017-09-28 Le Holdings(Beijing)Co., Ltd. Method and device for processing a streaming media file
CN108769789A (zh) * 2018-05-31 2018-11-06 海能达通信股份有限公司 一种基于切片的rtp流媒体存储、读取方法及装置
CN109348292A (zh) * 2018-11-20 2019-02-15 广州易方信息科技股份有限公司 一种基于切片文件字节阈值的视频切片方法
CN114363304A (zh) * 2021-12-27 2022-04-15 浪潮通信技术有限公司 Rtp视频流存储、播放方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172130A1 (en) * 2008-01-02 2009-07-02 Samsung Electronics Co., Ltd. Method of and apparatus for downloading data
CN101459693A (zh) * 2008-12-29 2009-06-17 中兴通讯股份有限公司 一种流媒体下载方法及系统
US20130013761A1 (en) * 2011-07-06 2013-01-10 Cleversafe, Inc. Completing distribution of multi-media content to an accessing device
US20170280193A1 (en) * 2016-03-28 2017-09-28 Le Holdings(Beijing)Co., Ltd. Method and device for processing a streaming media file
CN108769789A (zh) * 2018-05-31 2018-11-06 海能达通信股份有限公司 一种基于切片的rtp流媒体存储、读取方法及装置
CN109348292A (zh) * 2018-11-20 2019-02-15 广州易方信息科技股份有限公司 一种基于切片文件字节阈值的视频切片方法
CN114363304A (zh) * 2021-12-27 2022-04-15 浪潮通信技术有限公司 Rtp视频流存储、播放方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
G. DENG, T. WEI, C. CHEN, W. ZHU, B. WANG AND D. R. WU: "Moderate prefetching strategy based on video slicing mechanism for P2P VoD streaming system", 《4TH IET INTERNATIONAL CONFERENCE ON WIRELESS, MOBILE & MULTIMEDIA NETWORKS (ICWMMN 2011)》 *
赵淑兰等: "在接收端实现流媒体同步控制的方法", 《东北电力大学学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114866810A (zh) * 2022-07-06 2022-08-05 浙江华创视讯科技有限公司 流式录像下载方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN114697712B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN110476431B (zh) 低时延移动设备视听流传输
TWI788744B (zh) 動態縮減替換內容之播放以幫助對齊替換內容之結束與已替換內容之結束
US9473677B2 (en) Method and server system for synchronization of audio/video media files
KR101786050B1 (ko) 데이터 전송 방법 및 장치
US11095929B2 (en) Video distribution synchronization
KR20210021099A (ko) 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
US10341672B2 (en) Method and system for media synchronization
KR102469142B1 (ko) 미디어 스트림 재생들 사이를 트랜지션하는 동안 트랜지션 프레임들의 동적 재생
CN112584087B (zh) 视频会议录制方法、电子装置和存储介质
WO2018232796A1 (zh) 一种流媒体文件处理方法及直播系统
JP2013192062A (ja) 映像配信システム、映像配信装置、映像配信方法およびプログラム
CN110519627B (zh) 一种音频数据的同步方法和装置
CN114697712B (zh) 一种媒体流的下载方法、装置、设备及存储介质
CN106385525A (zh) 一种视频播放方法及装置
Tang et al. Audio and video mixing method to enhance WebRTC
CN105916011A (zh) 视频实时播放方法及装置
CN114401376B (zh) 一种多画面视频播放方法及装置
JP7365212B2 (ja) 動画再生装置、動画再生システム、および動画再生方法
CN113973215A (zh) 数据去重方法、装置及存储介质
CN112437316A (zh) 即时消息与直播视频流同步播放的方法、装置
KR102273795B1 (ko) 영상 동기화 처리를 위한 시스템 및 그 제어방법
US11689776B2 (en) Information processing apparatus, information processing apparatus, and program
JP2019022199A (ja) 動画コンテンツを再生するためのプログラム及び方法、並びに、動画コンテンツを配信及び再生するためのシステム
CN116965008A (zh) 用于mpeg dash以支持具有堆叠特性的前贴片、中贴片和结束贴片的辅助mpd
Alnesjö Chunked DASH in JavaScript

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