CN110166831B - 重放流媒体文件的方法、装置、存储介质和计算机设备 - Google Patents

重放流媒体文件的方法、装置、存储介质和计算机设备 Download PDF

Info

Publication number
CN110166831B
CN110166831B CN201810813417.8A CN201810813417A CN110166831B CN 110166831 B CN110166831 B CN 110166831B CN 201810813417 A CN201810813417 A CN 201810813417A CN 110166831 B CN110166831 B CN 110166831B
Authority
CN
China
Prior art keywords
streaming media
file
data stream
rtmp
playback
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
CN201810813417.8A
Other languages
English (en)
Other versions
CN110166831A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810813417.8A priority Critical patent/CN110166831B/zh
Publication of CN110166831A publication Critical patent/CN110166831A/zh
Application granted granted Critical
Publication of CN110166831B publication Critical patent/CN110166831B/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
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请涉及一种重放流媒体文件的方法、装置、计算机可读存储介质和计算机设备,该方法包括:获取包括有流媒体信息的重放请求;根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到;生成流媒体重放文件的统一资源定位符;将统一资源定位符发送至请求终端;当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。采用该方法无需经历协议转换和转封装等过程,避免因协议转换和转封装过程导致的流媒体重放文件与已播放流媒体文件不一致的问题,做到了流媒体文件的无损重放。

Description

重放流媒体文件的方法、装置、存储介质和计算机设备
技术领域
本申请涉及互联网技术领域,特别是涉及一种重放流媒体文件的方法、装置、计算机可读存储介质和计算机设备。
背景技术
目前,大部分直播采用RTMP协议进行推流和拉流。对于直播业务,常出现用户想要回看重放音视频的场景。
传统有的对RTMP直播音视频进行重放,如图12所示,需要使用ffmpeg等工具,将RTMP直播流拉流并转封装保存为FLV/TS/MP4等封装格式的音视频文件,再使用librtmp或者nginx-rtmp等工具搭建一个RTMP拉流服务器,读取该文件,转封装和协议并生成RTMP拉流URL提供给用户拉流。然而假如推流端的H.264格式复用了MP4和Annex-B格式,使用传统技术即ffmpeg工具对原始直播流进行拉流的时候,工具会篡改这种特殊的格式,导致重放出来的播放现象和原本直播的现象不一致,即传统的重放技术是一种有损重放。
发明内容
基于此,有必要针对有损重放的技术问题,提供一种重放流媒体文件的方法、装置、计算机可读存储介质和计算机设备。
一种重放流媒体文件的方法,包括:
获取包括有流媒体信息的重放请求;
根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到;
生成流媒体重放文件的统一资源定位符;
将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件;
当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。
一种重放流媒体文件的装置,包括:
请求获取模块,用于获取包括有流媒体信息的重放请求;
重放文件获取模块,用于根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到;
定位符生成模块,用于生成流媒体重放文件的统一资源定位符;
发送模块,用于将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件,还用于当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。
一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述方法的步骤。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述方法的步骤。
上述的重放流媒体文件的方法、装置、计算机可读存储介质和计算机设备,由于流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到,且重放服务器将流媒体重放文件以RTMP协议发送至请求终端,则流媒体重放文件到达请求终端时,无需经历协议转换和转封装等过程,避免因协议转换和转封装过程导致的流媒体重放文件与已播放流媒体文件不一致的问题,做到了流媒体文件的无损重放。
附图说明
图1为一个实施例中重放流媒体文件的方法的应用环境示意图;
图2为一个实施例中重放流媒体文件的方法的流程示意图;
图3为另一个实施例中重放流媒体文件的方法的应用环境示意图;
图4为一个实施例中流媒体服务器和重放服务器的数据流向示意图;
图5为又一个实施例中重放流媒体文件的方法的应用环境示意图;
图6为一个实施例抓包重放过程示意图;
图7为一个实施例中向流媒体服务器拉流重放过程的示意图;
图8为一个实施例中向流媒体服务器拉流重放的时序图;
图9为另一个实施例中向流媒体服务器拉流重放的时序图;
图10为一个实施例中重放流媒体文件的装置的结构框图;
图11为一个实施例中计算机设备的结构框图;
图12为一个实施例中传统地重放流媒体文件的方法的过程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一种重放流媒体文件的方法的应用环境示意图。如图1所示,该应用环境包括重放服务器101和请求终端102。其中,重放服务器101与请求终端102连接。
重放服务器101包括存储平台和重放模块。存储平台存储有基于已播放的流媒体文件的RTMP数据流得到的流媒体重放文件。重放模块接收包括有流媒体信息的重放请求,根据流媒体信息,获取对应的流媒体重放文件,生成该流媒体重放文件的统一资源定位符(URL),将该统一资源定位符发送至重放请求的请求终端,请求终端根据统一资源定位符向重放服务器请求流媒体重放文件,重放服务器将流媒体重放文件以RTMP协议发送至请求终端。由于流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到,且重放服务器将流媒体重放文件以 RTMP协议发送至请求终端,则流媒体重放文件到达请求终端时,无需经历协议转换和转封装等过程,避免因协议转换和转封装过程导致的流媒体重放文件与已播放流媒体文件不一致的问题,做到了流媒体文件的无损重放。
一种重放流媒体文件的方法,如图2所示,包括以下步骤:
S202,获取包括有流媒体信息的重放请求。
流媒体是指采用流式传输的方式在互联网播放的媒体格式。流式传输方式是将整个音频或视频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备(硬件或软件)对压缩的多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。流媒体文件即流媒体格式的文件。重放请求是针对已播放的流媒体文件而言,即是针对已被应用程序的客户端拉流的流媒体文件的重放请求,例如,是已被直播平台的播放终端拉流的流媒体文件的重放请求。
拉流是指客户端向媒体服务器拉取流媒体内容。以直播平台为例,主播终端将本地采集的语音视频流推送至媒体服务器,即推流。流媒体服务器的相应端口监测主播终端发送的音视频流并生成拉流的URL,观众终端根据该URL从媒体服务器拉取音视频流,即拉流,从而实现在观众终端观看直播内容。故,拉流是在服务器已有直播内容的情况下,客户端用指定URL(Uniform/Universal Resource Locator,统一资源定位符)进行内容拉取的过程。本实施例中的重放请求,是针对已被客户端拉流的流媒体文件而言,即是对客户终端已播放的流媒体文件的重放请求。
流媒体信息包括流媒体标识和/或时间信息。流媒体标识是流媒体的唯一识别标识,用于区分不同的流媒体内容,可以为流媒体ID。时间信息可以为请求重放的流媒体的开始时间和结束时间,即请求重放的时间段。通过时间信息,可以实现对流媒体的特定时间段的内容的重放。
S204,根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到。
RTMP(Real-Time Messaging Protocol,实时消息传输协议)用于实时的传输音频和视频数据流,这个协议建立在TCP协议或者轮询HTTP协议之上,是一种常用的直播协议。RTMP数据流即是流媒体文件以RTMP协议格式传输过程中的数据流。
流媒体重放文件,基于已播放的流媒体的RTMP数据流得到。具体地,可由播放流媒体文件的客户终端(例如请求观看视频的客户终端)利用抓包工具获取媒体服务器向其传播流媒体文件的RTMP数据流得到。即客户终端向媒体服务器请求拉流时,媒体服务器将流媒体以RTMP协议发送,RTMP数据是基于TCP传递的,在此过程中,客户终端接收流媒体文件的RTMP数据。此时,客户终端的抓包工具已开启,抓包工具抓取的是基于TCP传输的网络封包,包括了流媒体文件的RTMP数据。客户终端在抓取到流媒体文件的网络封包后,发送至重放服务器,重放服务器对网络封包进行处理,得到流媒体重放文件,用于流媒体文件的重放。
具体地,流媒体重放文件还可以通过流媒体服务器得到。具体地,当重放服务器监测到流媒体服务器的拉流操作时,启动转储程序,从流媒体服务器拉流,存储已播放的流媒体文件的RTMP数据流。重放服务器对RTMP数据流进行处理,得到流媒体重放文件,用于流媒体文件的重放。
S206,生成流媒体重放文件的统一资源定位符。
统一资源定位符(Universal Resource Locator,URL),是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
具体地,根据流媒体重放文件的存储地址和流媒体信息生成流媒体重放文件的统一资源定位符。
S208,将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件。
请求终端即重放请求的发送方对应的终端。基于重放流媒体文件的方法的不同应用场景,请求终端有所不同。例如,对直播视频的效果进行检测的应用场景而言,在该场景中,请求终端为开发人员所在的请求终端,通过对直播视频进行重放,排查直播出现的技术问题。又例如,对于视频播放(包括直播)的应用场景而言,请求终端可视频播放终端,可对特定的时间点的视频请求重放。
重放服务器在生成流媒体重放文件的统一资源定位符后,将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件,即请求终端在接收到统一资源定位符后,向重放服务器请求流媒体重放文件。
S210,当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。
具体地,当重放服务器接收到拉取请求时,解析拉取请求所携带的统一资源定位符。根据统一资源定位符找到对应的流媒体重放文件,并将该流媒体重放文件以RTMP协议发送。
上述的重放流媒体文件的方法,由于流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到,且重放服务器将流媒体重放文件以RTMP协议发送至请求终端,则流媒体重放文件到达请求终端时,无需经历协议转换和转封装等过程,避免因协议转换和转封装过程导致的流媒体重放文件与已播放流媒体文件不一致的问题,做到了流媒体文件的无损重放。
在另一个实施例中,根据流媒体信息,获取对应的流媒体重放文件,包括:根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件。
具体地,流媒体信息用于指示用户所请求重放的流媒体文件。流媒体文件可包括流媒体标识和/或时间信息。流媒体服务器存储有已播放的流媒体文件的 RTMP数据流。根据重放请求所包括的流媒体信息,从存储的已播放的流媒体文件的RTMP数据流中,查找得到对应的RTMP数据流并做预设处理,得到流媒体重放文件。其中,预设处理可是以提取处理或拼接处理,即从RTMP数据流是提取流媒体信息所需的数据,得到请求重放的流媒体重放文件。
上述的重放流媒体文件,通过将已播放的流媒体文件的RTMP数据流预先存储,当接收到重放请求时,根据流媒体信息查找得到对应的RTMP数据流并做预设处理,得到流媒体重放文件,该方法提高了流媒体重放文件的获取效率。
在一个实施例中,存储的已播放的流媒体文件的RTMP数据流从流媒体服务器获取。
一种重放流媒体文件的方法的应用环境如图3所示,包括应用程序的流媒体服务器301,其中流媒体服务301接收推流终端302(例如直播平台的主播终端)采集的音视频数据的RTMP数据流,并向拉流终端303(如直播平台的播放终端)进行分发。重放服务器304与流媒体服务器301连接。重放服务器304设置有转储模块、存储平台和重放模块,转储模块用于从流媒体服务器301拉取 (拉流终端)已播放流媒体文件的RTMP数据流,存储平台用于存储重放服务器获取RTMP数据流。存储平台可以为硬盘或者内存等介质。其中重放服务器304可以采用分布式集群进行部署。重放模块用于接收重放请求和向请求终端发送流媒体重放文件。
具体地,从流媒体服务器获取RTMP数据流并存储的步骤,包括:拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息并存储。
具体地,根据流媒体信息,获取对应的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括:根据流媒体信息,从转储模块拉流获取对应的RTMP数据流并进行预设处理,得到流媒体重放文件,并存储在存储平台。
本实施例中,重放服务器的转储模块预先从流媒体服务器获取已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息,并存储至存储平台。当获取到重放请求时,重放模块匹配流媒体信息,从存储平台获取对应的RTMP 数据流并进行预设处理,得到流媒体重放文件。具体地,重放模块匹配RTMP数据流的流媒体信息和重放请求所携带的流媒体信息,从存储平台中获取对应的 RTMP数据流,并进行预测处理,得到流媒体重放文件。
在一个实施例中,获取流媒体服务器发送的已播放的流媒体文件的RTMP 数据流和RTMP数据流的流媒体信息并存储,包括:当达到转储条件时,从流媒体服务器拉流获取已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息;将接收的RTMP数据流按照设定大小进行切割,得到RTMP数据流的分片文件;根据RTMP数据流的流媒体信,确定各分片文件的分片信息。
其中,转储条件是从流媒体服务器获取RTMP数据流的启动条件。可以为接收到用户的启动指令。例如,提供了重放服务器的操作界面,可在操作界面配置流媒体信息。当接收到用户对启动按键的触发操作时,达到转储条件。转储条件还可以为检测到流媒体服务器向播放终端的RTMP数据流传送,即当检测到流媒体服务器向应用程序的客户终端发送RTMP数据流时,达到转储条件。转储条件在不同的应用场景可根据需要进行设置,例如,转储条件还可以为时间,即当达到设定的时间时,启动转储。
在达到转储条件时,重放服务器304与流媒体服务器301基于RTMP协议通信,如图4所示,重放服务器与流媒体服务器先后基于RTMP协议,通过四次握手,完成重放服务器与流媒体服务器的TCP连接。流媒体服务器在此之后,将流媒体文件以RTMP消息(Message)发送的方式,向重放服务器发送音视频。因为RTMP是基于TCP传递的,在此过程中,重放服务器将接收到的所有TCP 数据包(即图4中的数据部分,TCMP消息)都保存在存储平台。而流媒体服务器向应用的客户终端发送的流媒体文件也是以TCMP协议发送的,故而,能够保证重放服务器所保存的流媒体文件与流媒体服务器发送至客户终端的一致,即流媒体重放文件与客户终端播放的流媒体文件一致。
而在一些流媒体的应用场景,如直播场景,由于直播的RTMP连接过程可能持续很长的时间,故将直播音视频流的所有数据都保存成一个文件的方案是不可行的。本实施例中,当每次缓存的数据达到设定大小(此大小可视内存而定,内存不足则应该设置较小)并且刚好组成整数倍的RTMP消息内容时,在此 RTMP消息的末尾进行切割,保存成分片文件。由此特性,可以使重放的时候从中间的分片文件开始重放。其中,分片文件的分片信息根据RTMP数据流的流媒体信息确定,包括流媒体标识和时间信息。
在本实施例中,根据流媒体信息,查找存储的已播放的流媒体文件的RTMP 数据流并做预设处理,得到流媒体重放文件,包括:匹配分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件;拼接查找到的各分片信息,得到流媒体重放文件。
即,当接收到重放请求时,生成流媒体重放文件的过程包括:首先匹配分片信息和流媒体信息,获取匹配的分片文件。具体地,重放请求所携带的流媒体信息包括流媒体标识和时间信息。时间信息是指所请求查看的重放的流媒体的时间段。时间信息可根据用户对观看的流媒体的感兴趣的时间段确定,也可以根据待检测的流媒体的故障时间段确定。
根据重放请求的流媒体标识,匹配分片信息对应的流媒体标识,确定目标分片文件,从目标分片文件中,匹配时间信息,获取匹配的分片文件,即从目标分片文件中,获取时间信息与所请求的时间信息相匹配的分片文件。
在其中一种实施方式中,重放服务器根据重放请求,向存储平台请求与流媒体信息对应的分片信息,即从存储平台下载与请求的流媒体标识和时间信息对的分片文件到本地。将各分片信息按时间顺序拼接起来,得到流媒体重放文件。
该重放流媒体文件的方法,通过将媒体信息保存为分片信息,能够实现根据重放请求所请求的时间信息,从流媒体文件中间的分片开始重放,即可根据重放请求,对一个视频文件的任意时间段的内容进行重放。
在另一个实施例中,流媒体信息包括拉流速率,将对应的流媒体重放文件以 RTMP协议发送至请求终端,包括:根据拉流速率,将对应的流媒体重放文件以 RTMP协议发送至请求终端。
具体地,由于从流媒体服务器转储的只有RTMP数据,并未就流媒体服务器发送数据的发送速率作记录,故此需要请求终端在发起重放请求的时候进行发送速率控制。请求终端可通过监控系统等方式,观测流媒体服务器在视频播放时的拉流速率,通过重放请求时将拉流速率发送至重放服务器,由重放服务器根据接收的拉流速度,进行重放的数据发送速率的控制。
在另一个实施例中,从流媒体服务器获取已播放的流媒体文件的RTMP数据流,包括:从流媒体服务器获取已播放的流媒体文件的RTMP数据流,并对 RTMP数据流进行无损压缩处理。由于转储模块保存了拉流服务器端发送的所有TCP数据,所以对此数据,可选择进行无损压缩以减少分片文件大小。
在另一个实施例中,从流媒体服务器获取已播放的流媒体文件的RTMP数据流,包括:从流媒体服务器获取已播放流媒体文件的RTMP数据流并进行加密。对应的,将对应的流媒体重放文件以RTMP协议发送至请求终端包括:对对应的流媒体重放文件进行解密后以RTMP协议发送至请求终端。采用该方法,对保存的重放数据有较为严格的安全上的需求,则可以对数据进行加密。具体的加密方式可采用传统的加密方法实现,此处不做限定。
在另一个实施例中,存储的已播放的流媒体文件的RTMP数据流从流媒体服务器播放终端获取。具体地,接收播放终端通过抓包工具抓取的网络封包文件并存储,所述网络封包文件包括所述流媒体服务器发送至所述播放终端的流媒体文件的RTMP数据流。根据流媒体信息,查找存储的已播放的流媒体文件的 RTMP数据流并做预设处理,得到流媒体重放文件,包括:读取网络封包文件,提取与流媒体信息对应的RTMP数据流,得到流媒体重放文件。
具体地,播放终端区别于请求终端,是流媒体文件的播放终端,即接收流媒体服务器发送的流媒体文件的接收终端。以一个直播平台为例,重放流媒体文件的方法的应用环境示意图如5所示,包括直播平台的流媒体服务器501,其中流媒体服务器501接收主播终端502采集的音视频数据的RTMP数据流。播放终端503向流媒体服务器501发送拉流请求,请求观看直播视频。重放服务器504 与播放终端503连接。其中,请求终端505用于向重放服务器请求播放终端503 观看的流媒体文件。
具体地,当接收到播放终端503的拉流请求时,流媒体服务器501以RTMP 协议向请播放终端503发送流媒体文件。基于用户的操作,利用安装在播放终端503的抓包工具,抓取得到网络封包文件。具体地,抓包工具为拦截查看网络数据包内容的软件。因此,网络封包文件即抓取的发送至播放终端503的网络数据包,其中包括了流媒体服务器501发送至播放终端503的流媒体文件的 RTMP数据。抓包软件可以为wireshark,或tcpdump等。
播放终端503在完成网络封包文件的抓取后,在达到发送条件时,将网络封包文件发送至重放服务器504。其中,发送条件可以为检测到用户的发送指令,也可以为检测到无RTMP数据流。重放服务器504在接收请求终端的重放请求时,读取网络封包文件,提取与流媒体信息对应的RTMP数据流,得到流媒体重放文件。
具体地,如图6所示,利用抓包工具抓取包括流媒体服务器发送至播放终端的流媒体文件的RTMP数据的前提,是需要使用wireshark/tcpdump等抓包软件在播放终端提前监听计算机的拉流端口,并将拉流下来的RTMP数据保存成.pacp类型的文件。对于此过程无需转储程序的参与,抓包工具起到了转储程序的作用。在.pacp文件中,保存了直播过程中流媒体服务顺发送的全量TCP数据,其信息完整度与通过转储程序保存的数据是一致的,可通过将网络封包文件中的数据提取并理解,即可得到流媒体重放文件,以进行数据重放。
采用上述的重放流媒体文件的方法,在播放终端播放RTMP直播流时,使用抓包软件(比如wireshark或者tcpdump)监听本机拉流端口,并生成抓包文件。抓包软件可将此抓包文件抓取的TCP数据保存成二进制文件,并上传至重放服务器,当接收到重放请求时,重放模块读取此二进制文件,生成RTMP拉流URL, 客户端可无限次对此进行无损重放。
该重放流媒体文件的方法,可作为一种检测工具,通过利用播放终端的抓包文件,抓取流媒体服务器发送至播放终端的流媒体文件的RTMP数据,由于抓包工具抓取的是网络数据包,故而抓包工具抓取的网络封包即流媒体服务器发送至播放终端的数据包,能够无损地重放播放终端接收到的流媒体文件。该方法可用于排查流媒体播放终端的技术问题,例如,提交播放终端接收到的异常的流媒体文件,通过重放服务器重放后,开发人员排查导致的原因并进行修复,如排查重现直播出现花屏、绿屏等的技术问题,以及直播系统的特性开发工作具有很大的帮助作用。
在另一个实施例中,生成流媒体文件的统一资源定位符,包括:根据流媒体信息和流媒体重放文件的存储地址,生成流媒体重放文件的统一资源定位符。解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端,包括:解析统一资源定位符,获取统一资源定位符中的流媒体信息和存储地址;根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送至请求终端。
具体地,当重放服务器接收到统一资源定位符时,解析统一资源定位符,获取流媒体信息和存储地址。根据流媒体信息中的流媒体标识和时间信息,查找是否存在对应的流媒体重放文件的相关信息,当查找到相关信息时,认定为合法的 URL,根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送。
以应用场景为直播平台以为例,一种重放流媒体文件的方法,应用于如图3 的应用环境中,如图7和8所示,主播终端302向流媒体服务器301推送采集的音视频的RTMP数据流,播放终端303向流媒体服务器301请求拉流,拉取音视频的RTMP数据,即流媒体服务器以RTMP协议将直播音视频向播放终端发送。重放服务器304包括转储模块、存储平台和重放模块。其中,转储模块和重放模块可部属在重放服务器,重放服务器可采用分布式集群部署。
为了实现无损的重放直播的流媒体文件,当达到转储条件时,重放服务器 304的转储模块从流媒体服务器301获取已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息。由于播放终端303接收的是流媒体服务器发送的流媒体文件的RTMP数据,而转储模块接收的也是流媒体服务器发送的流媒体文件的RTMP数据,即保证了转储模块接收到的数据与播放终端接收到的数据一致,实现无损地拉取所需重放的流媒体文件。
其中,转储条件可以为接收到用户的启动指令,也可以为检测到流媒体服务器的RTMP数据流传送。
由于直播的RTMP连接过程可能持续很长的时间,故将直播音视频流的所有数据都保存成一个文件的方案是不可行的。本实施例中,当每次缓存的数据达到设定大小(此大小可视内存而定,内存不足则应该设置较小)并且刚好组成整数倍的RTMP消息内容时,在此RTMP消息的末尾进行切割,保存成分片文件。具体地,将接收的RTMP数据流按照设定大小进行切割,得到RTMP数据流的分片文件;根据RTMP数据流的流媒体信息,确定各分片文件的分片信息。分片文件和分片信息存储在存储平台。
重放服务器304的重放模块与请求终端305通信,获取包括有流媒体信息的重放请求。重放请求所携带的流媒体信息包括流媒体标识和时间信息。时间信息是指所请求查看的重放的流媒体的时间段。时间信息可根据用户对观看的流媒体的感兴趣的时间段确定,也可以根据待检测的流媒体的故障时间段确定。
根据重放请求,重放模块向存储平台请求与流媒体信息对应的分片信息,具体地,匹配分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件,即存储平台下载与请求的流媒体标识和时间信息对的分片文件到本地。拼接查找到的各分片信息,得到流媒体重放文件,并缓存至执行重放模块功能的服务器本地。
重放模块生成流媒体重放文件的统一资源定位符,并将统一资源定位符发送至请求终端。请求终端接收到统一资源定位符时,向重放模块发送拉取请求,拉取请求包括统一资源定位符。具体地,当重放服务器接收到统一资源定位符时,解析统一资源定位符,获取流媒体信息和存储地址。根据流媒体信息中的流媒体标识和时间信息,查找是否存在对应的流媒体重放文件的相关信息,当查找到相关信息时,认定为合法的URL,根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送。
上述的重放流媒体文件的方法,从流媒体服务器获取的已播放流媒体文件 RTMP数据流以二进制文本的形式保存,并将基于RTMP数据流得到的流媒体重放文件以RTMP协议发送,期间没有转协议也没有转封装的过程,故在重放的时候也不需要封装过程,链路更短。并且,从流媒体服务器拉取的数据与流媒体服务器发送至播放终端的数据一致,即同一拉流端对原站拉流的现象,与对重放系统拉流的现象是一致的,包括各种异常情况,便于进行异常分析。
以应用场景为直播平台以为例,一种重放流媒体文件的方法,应用于如图5 的应用环境中,如图6和9所示,主播终端502向流媒体服务器501推送采集的音视频的RTMP数据流,播放终端503向流媒体服务器501请求拉流,拉取音视频的RTMP数据,即流媒体服务器以RTMP协议将直播音视频向播放终端发送。播放终端503安装有抓包工具,抓取得到网络封包文件。具体地,抓包工具为拦截查看网络数据包内容的软件。因此,网络封包文件即抓取的发送至播放终端的网络数据包,其中包括了流媒体服务器发送至播放终端的流媒体文件的RTMP数据。抓包软件可以为wireshark,或tcpdump等。
重放服务器504包括存储平台和重放模块。其中,存储平台用于存储播放终端发送的网络封包文件,重放模块用于接收请求终端的重放请求,以及向请求终端发送充媒体重放文件的RTMP数据流。
具体地,播放终端503在完成网络封包文件的抓取后,在达到发送条件时,将网络封包文件发送至重放服务器504。其中,发送条件可以为检测到用户的发送指令,也可以为检测到无RTMP数据流。
请求终端505向重放服务器发送包括有流媒体信息的重放请求,重放服务器504根据流媒体信息,获取对应的流媒体重放文件。具体地,重放服务器504 根据流媒体信息中的流媒体ID,查找对应的网络封包文件后,读取网络封包文件,提取与流媒体信息对应的RTMP数据流,得到流媒体重放文件。
重放模块生成流媒体重放文件的统一资源定位符,并将统一资源定位符发送至请求终端505。请求终端505接收到统一资源定位符时,向重放服务器504 发送拉取请求,拉取请求包括统一资源定位符。具体地,当重放服务器504接收到统一资源定位符时,解析统一资源定位符,获取流媒体信息和存储地址。根据流媒体信息中的流媒体标识和时间信息,查找是否存在对应的流媒体重放文件的相关信息,当查找到相关信息时,认定为合法的URL,根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送。
该重放流媒体文件的方法,可作为一种检测工具,通过利用播放终端的抓包文件,抓取流媒体服务器发送至播放终端的流媒体文件的RTMP数据,由于抓包工具抓取的是网络数据包,故而抓包工具抓取的网络封包即流媒体服务器发送至播放终端的数据包,能够无损地重放播放终端接收到的流媒体文件。该方法可用于排查流媒体播放终端的技术问题,例如,提交播放终端接收到的异常的流媒体文件,通过重放服务器重放后,开发人员排查导致的原因并进行修复,如排查重现直播出现花屏、绿屏等的技术问题,以及直播系统的特性开发工作具有很大的帮助作用。
如图10所示,一种重放流媒体文件的装置,包括:
请求获取模块1001,用于获取包括有流媒体信息的重放请求。
重放文件获取模块1002,用于根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到。
定位符生成模块1003,用于生成流媒体重放文件的统一资源定位符。
发送模块1004,用于将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件,还用于当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。
上述的重放流媒体文件的装置,由于流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到,且重放服务器将流媒体重放文件以RTMP协议发送至请求终端,则流媒体重放文件到达请求终端时,无需经历协议转换和转封装等过程,避免因协议转换和转封装过程导致的流媒体重放文件与已播放流媒体文件不一致的问题,做到了流媒体文件的无损重放。
在一个实施例中,重放文件获取模块,用于根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件。
在一个实施例中,重放流媒体文件的装置还包括数据流获取,用于拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息并存储。
在另一个实施例中,数据流获取模块,包括:
RTMP数据获取模块,用于当达到转储条件时,从流媒体服务器拉流并获取已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息。具体地,从流媒体服务器获取已播放的流媒体文件的RTMP数据流,并对RTMP数据流进行无损压缩处理。
分片模块,用于将接收的RTMP数据流按照设定大小进行切割,得到RTMP 数据流的分片文件;
分片信息确定模块,用于根据RTMP数据流的流媒体信息,确定各分片文件的分片信息;
重放文件获取模块,包括:
查找模块,用于匹配分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件;
拼接模块,用于拼接查找到的各分片信息,得到流媒体重放文件。
在另一个实施例中,重放流媒体文件的装置还包括:封包获取模块,用于接收播放终端通过抓包工具抓取的网络封包文件,网络封包文件包括流媒体服务器发送至播放终端的流媒体文件的RTMP数据流;
重放文件获取模块,用于读取网络封包文件,提取与流媒体信息对应的 RTMP数据流,得到流媒体重放文件。
在另一个实施例中,流媒体信息包括拉流速率;发送模块,用于根据拉流速率,将对应的流媒体重放文件以RTMP协议发送至请求终端。
在另一个实施例中,定位符生成模块,用于根据流媒体信息和流媒体重放文件的存储地址,生成流媒体重放文件的统一资源定位符。
重放流媒体文件的装置还包括解析模块,用于解析统一资源定位符,获取统一资源定位符中的流媒体信息和存储地址。发送模块,用于根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送至请求终端。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是语音识别设备。如图11所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置、显示屏和音频输出设备。存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现重放流媒体文件的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行重放流媒体文件的方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。音频输出设备包括扬声器,用于播放声音。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的重放流媒体文件的装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该语音信号识别装置的各个程序模块,比如,图10所示的请求获取模块、重放文件获取模块和定位符生成模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的语音信号识别方法中的步骤。
例如,图11所示的计算机设备可以通过如图10所示的重放流媒体文件的装置中的请求获取模块执行获取包括有流媒体信息的重放请求的步骤。计算机设备可通过重放文件获取模块执行根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到的步骤。计算机设备可通过定位符生成模块执行生成流媒体重放文件的统一资源定位符的步骤。
一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取包括有流媒体信息的重放请求;
根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到;
生成流媒体重放文件的统一资源定位符;
将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件;
当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。
在另一个实施例中,根据流媒体信息,获取对应的流媒体重放文件,包括:
根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件。
在另一个实施例中,计算机程序被处理器执行时,使得处理器执行以下步骤:拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和RTMP 数据流的流媒体信息并存储。
在另一个实施例中,拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息并存储,包括:
当达到转储条件时,从流媒体服务器拉流并获取已播放的流媒体文件的 RTMP数据流和RTMP数据流的流媒体信息;
将接收的RTMP数据流按照设定大小进行切割,得到RTMP数据流的分片文件;
根据RTMP数据流的流媒体信息,确定各分片文件的分片信息;
根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括:
匹配分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件;
拼接查找到的各分片信息,得到流媒体重放文件。
在另一个实施例中,流媒体信息包括拉流速率;将对应的流媒体重放文件以 RTMP协议发送至请求终端,包括:根据拉流速率,将对应的流媒体重放文件以 RTMP协议发送至请求终端。
在另一个实施例中,计算机程序被处理器执行时,使得处理器执行以下步骤:
接收播放终端通过抓包工具抓取的网络封包文件并存储,所述网络封包文件包括所述流媒体服务器发送至所述播放终端的流媒体文件的RTMP数据流;
根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括:
读取网络封包文件,提取与流媒体信息对应的RTMP数据流,得到流媒体重放文件。
在另一个实施例中,生成流媒体文件的统一资源定位符,包括:根据流媒体信息和流媒体重放文件的存储地址,生成流媒体重放文件的统一资源定位符;
解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端,包括:
解析统一资源定位符,获取统一资源定位符中的流媒体信息和存储地址;
根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送至请求终端。
在另一个实施例中,从流媒体服务器获取已播放的流媒体文件的RTMP数据流,包括:从流媒体服务器获取已播放的流媒体文件的RTMP数据流,并对 RTMP数据流进行无损压缩处理。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取包括有流媒体信息的重放请求;
根据流媒体信息,获取对应的流媒体重放文件,流媒体重放文件基于已播放的流媒体文件的RTMP数据流得到;
生成流媒体重放文件的统一资源定位符;
将统一资源定位符发送至请求终端,统一资源定位符用于指示请求终端向重放服务器请求流媒体重放文件;
当接收到请求终端携带有统一资源定位符的拉取请求时,解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端。
在另一个实施例中,根据流媒体信息,获取对应的流媒体重放文件,包括:
根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件。
在另一个实施例中,计算机程序被处理器执行时,使得处理器执行以下步骤:拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和RTMP 数据流的流媒体信息并存储。
在另一个实施例中,拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和RTMP数据流的流媒体信息并存储,包括:
当达到转储条件时,从流媒体服务器拉流并获取已播放的流媒体文件的 RTMP数据流和RTMP数据流的流媒体信息;
将接收的RTMP数据流按照设定大小进行切割,得到RTMP数据流的分片文件;
根据RTMP数据流的流媒体信息,确定各分片文件的分片信息;
根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括:
匹配分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件;
拼接查找到的各分片信息,得到流媒体重放文件。
在另一个实施例中,流媒体信息包括拉流速率;将对应的流媒体重放文件以 RTMP协议发送至请求终端,包括:根据拉流速率,将对应的流媒体重放文件以 RTMP协议发送至请求终端。
在另一个实施例中,计算机程序被处理器执行时,使得处理器执行以下步骤:
接收播放终端通过抓包工具抓取的网络封包文件并存储,所述网络封包文件包括所述流媒体服务器发送至所述播放终端的流媒体文件的RTMP数据流;
根据流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括:
读取网络封包文件,提取与流媒体信息对应的RTMP数据流,得到流媒体重放文件。
在另一个实施例中,生成流媒体文件的统一资源定位符,包括:根据流媒体信息和流媒体重放文件的存储地址,生成流媒体重放文件的统一资源定位符;
解析统一资源定位符,将对应的流媒体重放文件以RTMP协议发送至请求终端,包括:
解析统一资源定位符,获取统一资源定位符中的流媒体信息和存储地址;
根据流媒体信息和存储地址,将对应的流媒体文件以RTMP协议格式发送至请求终端。
在另一个实施例中,从流媒体服务器获取已播放的流媒体文件的RTMP数据流,包括:从流媒体服务器获取已播放的流媒体文件的RTMP数据流,并对 RTMP数据流进行无损压缩处理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路 (Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM) 等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (18)

1.一种重放流媒体文件的方法,包括:
获取包括有流媒体信息的重放请求;
根据所述流媒体信息,获取对应的流媒体重放文件,所述流媒体重放文件基于播放终端利用抓包工具获取的流媒体文件的RTMP数据流得到,或基于从流媒体服务器拉流,转储的已播放的流媒体文件的RTMP数据流得到;
生成所述流媒体重放文件的统一资源定位符;
将所述统一资源定位符发送至请求终端,所述统一资源定位符用于指示所述请求终端向重放服务器请求流媒体重放文件;
当接收到所述请求终端携带有所述统一资源定位符的拉取请求时,解析所述统一资源定位符,将对应的所述流媒体重放文件以RTMP协议发送至请求终端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述流媒体信息,获取对应的流媒体重放文件,包括:
根据所述流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和所述RTMP数据流的流媒体信息并存储。
4.根据权利要求3所述的方法,其特征在于,所述拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和所述RTMP数据流的流媒体信息并存储,包括:
当达到转储条件时,从所述流媒体服务器拉流并获取已播放的流媒体文件的RTMP数据流和所述RTMP数据流的流媒体信息;
将接收的所述RTMP数据流按照设定大小进行切割,得到RTMP数据流的分片文件;
根据所述RTMP数据流的流媒体信息,确定各分片文件的分片信息;
所述根据所述流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括:
匹配所述分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件;
拼接查找到的各分片信息,得到流媒体重放文件。
5.根据权利要求3所述的方法,其特征在于,所述流媒体信息包括拉流速率;所述将对应的所述流媒体重放文件以RTMP协议发送至请求终端,包括:根据所述拉流速率,将对应的所述流媒体重放文件以RTMP协议发送至请求终端。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:接收播放终端通过抓包工具抓取的网络封包文件并存储,所述网络封包文件包括所述流媒体服务器发送至所述播放终端的流媒体文件的RTMP数据流;
所述根据所述流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件,包括
读取所述网络封包文件,提取与所述流媒体信息对应的RTMP数据流,得到流媒体重放文件。
7.根据权利要求1所述的方法,其特征在于,所述生成所述流媒体文件的统一资源定位符,包括:根据所述流媒体信息和所述流媒体重放文件的存储地址,生成所述流媒体重放文件的统一资源定位符;
所述解析所述统一资源定位符,将对应的所述流媒体重放文件以RTMP协议发送至请求终端,包括:
解析所述统一资源定位符,获取所述统一资源定位符中的流媒体信息和存储地址;
根据所述流媒体信息和存储地址,将对应的所述流媒体文件以RTMP协议格式发送至请求终端。
8.根据权利要求4所述的方法,其特征在于,所述从所述流媒体服务器获取已播放的流媒体文件的RTMP数据流,包括:从所述流媒体服务器获取已播放的流媒体文件的RTMP数据流,并对所述RTMP数据流进行无损压缩处理。
9.一种重放流媒体文件的装置,包括:
请求获取模块,用于获取包括有流媒体信息的重放请求;
重放文件获取模块,用于根据所述流媒体信息,获取对应的流媒体重放文件,所述流媒体重放文件基于播放终端利用抓包工具获取的流媒体文件的RTMP数据流得到,或基于从流媒体服务器拉流,转储的已播放的流媒体文件的RTMP数据流得到;
定位符生成模块,用于生成所述流媒体重放文件的统一资源定位符;
发送模块,用于将所述统一资源定位符发送至请求终端,所述统一资源定位符用于指示所述请求终端向重放服务器请求流媒体重放文件,还用于当接收到所述请求终端携带有所述统一资源定位符的拉取请求时,解析所述统一资源定位符,将对应的所述流媒体重放文件以RTMP协议发送至请求终端。
10.根据权利要求9所述的装置,其特征在于,所述重放文件获取模块,用于根据所述流媒体信息,查找存储的已播放的流媒体文件的RTMP数据流并做预设处理,得到流媒体重放文件。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括数据流获取,用于拉流并获取流媒体服务器发送的已播放的流媒体文件的RTMP数据流和所述RTMP数据流的流媒体信息并存储。
12.根据权利要求11所述的装置,其特征在于,所述数据流获取模块,包括:
RTMP数据获取模块,用于当达到转储条件时,从所述流媒体服务器拉流获取已播放的流媒体文件的RTMP数据流和所述RTMP数据流的流媒体信息;
分片模块,用于将接收的所述RTMP数据流按照设定大小进行切割,得到RTMP数据流的分片文件;
分片信息确定模块,用于根据所述RTMP数据流的流媒体信息,确定各分片文件的分片信息;
所述重放文件获取模块,包括:
查找模块,用于匹配所述分片信息和流媒体信息,查找对应的已播放的流媒体文件的RTMP数据流的分片文件;
拼接模块,用于拼接查找到的各分片信息,得到流媒体重放文件。
13.根据权利要求11所述的装置,其特征在于,所述流媒体信息包括拉流速率;所述发送模块,用于根据所述拉流速率,将对应的所述流媒体重放文件以RTMP协议发送至请求终端。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
封包获取模块,用于接收播放终端通过抓包工具抓取的网络封包文件,所述网络封包文件包括所述流媒体服务器发送至所述播放终端的流媒体文件的RTMP数据流;
所述重放文件获取模块,用于读取所述网络封包文件,提取与所述流媒体信息对应的RTMP数据流,得到流媒体重放文件。
15.根据权利要求9所述的装置,其特征在于,所述定位符生成模块,用于根据所述流媒体信息和所述流媒体重放文件的存储地址,生成所述流媒体重放文件的统一资源定位符;
所述重放流媒体文件的装置还包括解析模块,用于解析所述统一资源定位符,获取所述统一资源定位符中的流媒体信息和存储地址;
所述发送模块,用于根据所述流媒体信息和存储地址,将对应的所述流媒体文件以RTMP协议格式发送至请求终端。
16.根据权利要求12所述的装置,其特征在于,所述RTMP数据获取模块,用于从所述流媒体服务器获取已播放的流媒体文件的RTMP数据流,并对所述RTMP数据流进行无损压缩处理。
17.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
CN201810813417.8A 2018-07-23 2018-07-23 重放流媒体文件的方法、装置、存储介质和计算机设备 Active CN110166831B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810813417.8A CN110166831B (zh) 2018-07-23 2018-07-23 重放流媒体文件的方法、装置、存储介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810813417.8A CN110166831B (zh) 2018-07-23 2018-07-23 重放流媒体文件的方法、装置、存储介质和计算机设备

Publications (2)

Publication Number Publication Date
CN110166831A CN110166831A (zh) 2019-08-23
CN110166831B true CN110166831B (zh) 2021-10-15

Family

ID=67645122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810813417.8A Active CN110166831B (zh) 2018-07-23 2018-07-23 重放流媒体文件的方法、装置、存储介质和计算机设备

Country Status (1)

Country Link
CN (1) CN110166831B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189504B (zh) * 2020-08-24 2024-03-08 浙江宇视科技有限公司 一种启流url获取方法、装置、电子设备和存储介质
CN113301393B (zh) * 2021-04-22 2023-06-30 深圳市鹰硕智能科技有限公司 流媒体数据的播放与互动方法、装置、系统及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710966A (zh) * 2012-06-13 2012-10-03 百视通网络电视技术发展有限责任公司 基于http协议的视频直播方法及系统
US9100460B2 (en) * 2012-06-28 2015-08-04 Adobe Systems Incorporated Media stream fragment request
CN104243430A (zh) * 2013-06-20 2014-12-24 腾讯科技(深圳)有限公司 一种流媒体播放方法及装置
CN103533444A (zh) * 2013-10-25 2014-01-22 乐视网信息技术(北京)股份有限公司 一种支持时移播放的方法及装置
CN103581693B (zh) * 2013-11-12 2017-02-15 北京清源新创科技有限公司 面向互联网的基于分片传输的大尺度直播时移方法及系统
CN105992049A (zh) * 2015-02-05 2016-10-05 天脉聚源(北京)科技有限公司 一种rtmp直播回看方法及系统
CN105898392A (zh) * 2015-11-24 2016-08-24 乐视云计算有限公司 在线直播视频播放器及方法
CN105657443A (zh) * 2015-12-30 2016-06-08 深圳市云宙多媒体技术有限公司 一种直播时移播放方法和系统
CN106789976A (zh) * 2016-12-07 2017-05-31 中兴通讯股份有限公司 媒体文件的播放方法、服务端、客户端及系统
CN106790226A (zh) * 2017-01-15 2017-05-31 刘小艳 一种便携移动式音视频教学交互设备
CN107734354A (zh) * 2017-10-19 2018-02-23 中视亚广(北京)文化传播有限公司 一种对直播流视频进行实时剪辑方法和装置

Also Published As

Publication number Publication date
CN110166831A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN108092995B (zh) 流媒体数据处理方法、装置、计算机设备和存储介质
CN106572358B (zh) 一种直播时移方法及客户端
WO2019205886A1 (zh) 字幕数据推送方法、字幕展示方法、装置、设备及介质
CN104756505B (zh) 用于过顶实况媒体递送中的广告插入的方法和系统
CN109474854B (zh) 视频播放方法、播放列表的生成方法及相关设备
CN108540819B (zh) 直播数据处理方法、装置、计算机设备和存储介质
US20150007239A1 (en) Smart pre-load for video-on-demand in an http adaptive streaming environment
CN110072122B (zh) 一种视频播放方法及相关设备
CN111010614A (zh) 一种显示直播字幕的方法、装置、服务器及介质
EP2151970A1 (en) Processing and supplying video data
CN109587514B (zh) 一种视频播放方法、介质和相关装置
CN110166831B (zh) 重放流媒体文件的方法、装置、存储介质和计算机设备
CN111866457B (zh) 监控图像处理方法、电子设备、存储介质及系统
CN111246314B (zh) 时移直播方法、服务端装置、客户端装置及直播系统
WO2015192683A1 (zh) 一种基于码流自适应技术的内容分发方法、装置及系统
CN112533010A (zh) 一种对网络直播业务中音视频数据的自动取证方法及装置
CN108260024B (zh) 直播数据处理方法、装置、计算机设备和存储介质
WO2015154549A1 (zh) 数据的处理方法及装置
EP3167617B1 (fr) Procédé et dispositif d'enregistrement à distance de programmes vidéo
CN113132746A (zh) 一种对网络直播业务中音视频数据的自动取证方法及装置
JP2020072461A (ja) 送信装置、サーバ装置、送信方法およびプログラム
US11095699B1 (en) Streaming media file management
CN110139128B (zh) 一种信息处理方法、拦截器、电子设备及存储介质
CN112235600B (zh) 视频数据及视频业务请求的处理方法、装置及系统
CN112565224A (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