CN108391176A - 一种rtmp协议到hls协议的实时转换系统及其工作方法 - Google Patents

一种rtmp协议到hls协议的实时转换系统及其工作方法 Download PDF

Info

Publication number
CN108391176A
CN108391176A CN201810312789.2A CN201810312789A CN108391176A CN 108391176 A CN108391176 A CN 108391176A CN 201810312789 A CN201810312789 A CN 201810312789A CN 108391176 A CN108391176 A CN 108391176A
Authority
CN
China
Prior art keywords
slice
time
timestamp
rtmp
hls protocol
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.)
Pending
Application number
CN201810312789.2A
Other languages
English (en)
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.)
Sichuan Bai Tong Tong Technology Co Ltd
Original Assignee
Sichuan Bai Tong Tong 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 Sichuan Bai Tong Tong Technology Co Ltd filed Critical Sichuan Bai Tong Tong Technology Co Ltd
Priority to CN201810312789.2A priority Critical patent/CN108391176A/zh
Publication of CN108391176A publication Critical patent/CN108391176A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • 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/8547Content authoring involving timestamps for synchronizing content

Landscapes

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

Abstract

本发明公开了一种RTMP协议到HLS协议的实时转换方法,包括对实时接收的RTMP直播流进行解复用,得到音视频数据;对音视频数据按HLS协议的时间戳重新打包与封装,得到满足HLS协议的切片;为每个满足HLS协议的切片建立切片存储映射关系表;根据切片存储映射关系表生成点播M3U8列表。本发明的技术方案能够低成本充分利用现有技术,高性能地实现无缝转换成符合HLS协议要求的直播流,既能极大地节省设备投入和技术改造,也能够快速实现HLS的各项应用要求,直播时移和直播回看更加快速、简便。

Description

一种RTMP协议到HLS协议的实时转换系统及其工作方法
技术领域
本发明属于互联网的音视频技术领域,具体涉及一种RTMP协议到HLS协议的实时转换系统及其工作方法。
背景技术
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题,在Flash播放器和流媒体服务器之间进行音频、视频和数据传输的开放协议。RTMP的优点有:实时性高,支持加密,稳定性高,编码器接入,系统容错能力。但是RTMP的致命缺点在于协议复杂,带宽浪费较大,且不支持移动互联网视频直播。
随着移动互联网视频直播应用的崛起,各种移动终端系统都支持了HLS协议(HTTPLive Streaming,超文本直播流),将RTMP协议转为HLS协议成为移动互联网提供直播流的一种抉择。但是重新组建一套满足HLS协议的系统,将耗费大量的人力,设备,费用高,时间长,不利于内容服务商。
综上可知,现有技术在移动互联网直播实际应用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
本发明的目的在于:解决上述现有技术中的不足,基于现有RTMP协议服务技术方案上,无缝扩展HLS协议直播、直播时移、直播回看技术,大大节省了设备投入和技术改造的成本。
为了实现上述目的,本发明采用的技术方案为:
一种RTMP协议到HLS协议的实时转换系统,其特征在于包括:Internet网络;
分别与所述Internet网络连接的RTMP服务器和直播前端;
与所述直播前端连接的若干个摄像机;
与所述RTMP服务器连接的HLS服务器;
通过CDN网络与所述HLS服务器连接的播放端。
所述的直播前端包括直播编码器和与直播编码器连接的若干台摄像机。
所述的播放端包括PC播放器、IOS播放器、Android播放器和H5播放器。
所述的实时转换系统还包括存储服务器和切片索引服务器,所述存储服务器和切片索引服务器均与HLS服务器连接。
所述的HLS服务器包括:
与所述RTMP服务器通过RTMP协议网络连接的直播流接收模块;
与所述直播流接收模块连接的音视频解复用模块;
与所述音视频解复用模块连接的时间戳转换模块;
与所述时间戳转换模块连接的切片模块;
与所述切片模块连接的存储服务器,所述存储服务器用于切片文件的命名;
与所述存储服务器连接的M3U8文件模块;
与所述M3U8文件模块连接的切片索引服务器;
与所述切片索引服务器连接的M3U8点播文件生成模块,所述M3U8点播文件生成模块通过CDN网络与播放端连接。
一种RTMP协议到HLS协议的实时转换方法,其特征在于它包括以下步骤:
步骤1:对实时接收的RTMP直播流进行解复用,得到音视频数据;
步骤2:对音视频数据按HLS协议的时间戳重新打包与封装,得到满足HLS协议的切片;
步骤3:为每个满足HLS协议的切片建立切片存储映射关系表;
步骤4:根据切片存储映射关系表生成点播M3U8列表。
进一步的,上述的步骤2具体为:
步骤101:将满足TIDR(n)+TIDR(n-1)+…+TIDR(0)<=D的音视频数据作为同一个切片内的数据,得到若干个切片,其中TIDR(n)代表第n个关键帧时长,D为一个切片的时间长度,单位为秒;
步骤102:对时间戳进行转换并按HLS协议对音视频数据重新封装和打包,得到满足HLS协议的切片;
步骤103:计算每个满足HLS协议的切片的时长D1,计算公式为:
D1=TIDR(n)-TIDR(0)。
进一步的,步骤102中对时间戳进行转换包括对RTMP协议中的时间戳进行转换和对非线性增加的时间戳进行矫正,转换为满足HLS协议的时间戳,具体包括以下步骤:
步骤201:查找视频数据关键帧的时间戳(TIMESTAMP)和相对时间戳(CompositonTime);
步骤202:将视频关键帧的时间戳和相对时间戳转换为按时钟90KHZ进行视频同步的时间戳,计算公式为:
T’=TIMESTAMP*90;
其中TIMESTAMP为RTMP协议中的解码时间戳,T’为转换后的解码时间戳,90为TS(Time Streaming)系统时钟90KHZ,
若TIDR’(n+1)<=TIDR’(n),表示RTMP协议中的关键帧时间戳非线性增加,需要矫正;
其中TIDR’(n)代表第n个关键帧的解码时间戳TIMESTAMP;
此时转换后的解码时间戳T’=(TIMESTAMP+25*n)*90,
其中,25代表通用视频帧率,n代表第n个关键帧。
步骤203:依次计算各切片所需的解码时间戳DTS=T’,参考时间戳CTS=CS*90,其中CS为RTMP协议中的Compositon Time(相对时间戳,在H264视频编码标准协议中,如果编码级别为baseline,值始终为0)。
步骤204:根据解码时间戳DTS和相对时间戳CTS计算显示时间戳PTS,计算公式为:
PTS=DTS+CTS;
进一步的,步骤2中得到满足HLS协议的切片后,针对各满足HLS协议的切片还包括以下步骤:
命名文件:根据各切片的系统生成时间和直播频道命名各切片,得到与切片生成时间建立唯一映射关系的切片文件名;
更新M3U8列表:每生成一个新的切片后,将失效的切片从M3U8列表中移除并将新的切片更新至M3U8列表;
建立时间索引文件表:每生成一个新的切片后,记录该切片的系统生成时间,结束时间,时长和存储路径;
进一步的,上述的命名文件具体包括以下步骤:每个切片生成时,记录该切片的系统生成时间T1,根据系统生成时间T1命名该切片,记第n个生成的切片的文件名FN(n)=T1+“.ts”,其中,“.ts”为切片的文件名后缀。
进一步的,建立时间索引文件表,具体为:
步骤301:根据切片的直播频道、年、月、日和小时建立多级目录;
步骤302:所述切片的一级目录以相应的直播频道命名,二级目录以相应的年命名,三级目录以相应的月命名,四级目录以相应的日命名,五级目录以相应的小时命名
步骤303:将对应直播频道和时间的切片存储于对应的小时目录下。
进一步的,上述的时间索引文件表不与数据库进行交互,仅在本地生成一个文件,文件中每行按以下格式生成一个时间戳切片信息:
starttime=(起始时间戳),endtime=(结束时间戳),D1=(时间长度),path=(存储路径)。
进一步的,记录切片的系统生成时间T1时,将第n个生成的切片的系统生成时间T1转换为唯一对应的格林威治生成时间FT(n),记第n个生成的切片的文件名FN(n)=FT(n)+“.ts”。
进一步的,步骤301中根据直播频道、年、月、日和小时建立多级目录之前还包括从格林威治时间戳中获取该切片的年、月、日、小时。
进一步的,步骤4所述的生成点播M3U8列表具体包括以下步骤:
步骤401:将起始时间戳转换为相应的起始格林威治时间戳;
步骤402:根据起始时间戳和时间长度计算结束时间戳,然后将结束时间戳转换为结束格林威治时间戳;
步骤403:在时间索引文件表中查找起始时间大于或等于起始格林威治时间戳和结束时间小于或等于结束格林威治时间戳的所有切片文件;
步骤404:将查找到的所有切片文件加入到M3U8列表中。
由于采用了上述技术方案,本发明的有益效果是:
本发明的技术方案能够低成本充分利用现有技术,高性能地实现无缝转换成符合HLS协议要求的直播流,既能极大地节省设备投入和技术改造,也能够快速实现HLS的各项应用要求。
本发明的直播时移更加快速、简便。相比传统直播时移,通常只能直播两上小时的节目,通过本发明的技术方案,直播时移时间上面没有任何限制。
本发明的直播回看业务更加快速、简便。传统直播回看,大大的提高了系统的业务逻辑复杂度及出错概率。
本发明采用格林威治时间统一命令的方式在于方便各个时区转换,唯一的且和生成时间映射的文件命名,方便快速根据时间查找到符合要求的对应的文件数据,减少直播实时收录及后期人工编辑等工作,提高工作效率。。
本发明对RTMP时间戳进行矫正;由于直播特点,数据流内音视频时钟会定时重置,对协议转换带来不便;RTMP协议与HLS协议采用的音视频同步方式完全不一样,因此在音视频时间戳计算方式上面也有很大的区别。为了解决音视频同步,重新计算时间戳。
本发明采用直播频道、年、月、日、小时建立目录,能够方便、快捷的根据时间查找到符合要求的切片文件。
本发明时间索引文件表不需要与数据库进行交互,只需要在频道目录下生成一个文件,既达到对直播频道的实时收录功能,也可根据生成时间点方便快速查找对应数据,以此为基础提供直播时移和回看服务。文件名映射规则确定及切片时间索引文件表,是本申请直播转时移、回看的核心基础。
本发明针对严格遵循RTMP编码标准直播流或非标准RTMP直播流,均能顺利切片,并满足HLS协议要求。
附图说明
图1为本发明的实时转换系统结构示意图。
图2为本发明的HLS服务器模块示意图。
图3为发明的实时转换方法流程图。
图4为本发明的实时转换方法优选流程图。
具体实施方式
参照附图1-4,对本发明的实施方式做具体的说明。
如图1-2,一种RTMP协议到HLS协议的实时转换系统,其特征在于包括:Internet网络;
分别与所述Internet网络连接的RTMP服务器和直播前端;
与所述直播前端连接的若干个摄像机;
与所述RTMP服务器连接的HLS服务器;
通过CDN网络与所述HLS服务器连接的播放端。
所述的直播前端包括直播编码器和与直播编码器连接的若干台摄像机。
所述的播放端包括PC播放器、IOS播放器、Android播放器和H5播放器。
所述的实时转换系统还包括存储服务器和切片索引服务器,所述存储服务器和切片索引服务器均与HLS服务器连接。
所述的HLS服务器包括:
与所述RTMP服务器通过RTMP协议网络连接的直播流接收模块;
与所述直播流接收模块连接的音视频解复用模块;
与所述音视频解复用模块连接的时间戳转换模块;
与所述时间戳转换模块连接的切片模块;
与所述切片模块连接的存储服务器,所述存储服务器用于切片文件的命名;
与所述存储服务器连接的M3U8文件模块;
与所述M3U8文件模块连接的切片索引服务器;
与所述切片索引服务器连接的M3U8点播文件生成模块,所述M3U8点播文件生成模块通过CDN网络与播放端连接。
图3是本申请RTMP协议到HLS协议的实时转换方法的流程图,包括:
步骤S101,音视频解复用步骤,实时接收至少一个RTMP直播流,并从RTMP直播流分离出视频数据,所述RTMP流为基于RTMP协议的直播流数据。
步骤S102,对分离出来的音视频数据进行时间戳矫正,并转换为满足HLS协议的时间戳,包括以下步骤:
步骤201:查找视频数据关键帧的时间戳(TIMESTAMP)和相对时间戳(CompositonTime);
步骤202:将视频关键帧的时间戳和相对时间戳转换为按时钟90KHZ进行视频同步的时间戳,计算公式为:
T’=TIMESTAMP*90;
其中TIMESTAMP为RTMP协议中的解码时间戳,T’为转换后的解码时间戳,90为TS(Time Streaming)系统时钟90KHZ,
若TIDR’(n+1)<=TIDR’(n),表示RTMP协议中的关键帧时间戳非线性增加,需要矫正;
其中TIDR’(n)代表第n个关键帧的解码时间戳TIMESTAMP;
此时转换后的解码时间戳T’=(TIMESTAMP+25*n)*90,
其中,25代表通用视频帧率,n代表第n个关键帧。
步骤203:依次计算各切片所需的解码时间戳DTS=T’,参考时间戳CTS=CS*90,其中CS为RTMP协议中的Compositon Time(相对时间戳,在H264视频编码标准协议中,如果编码级别为baseline,值始终为0)。
步骤204:根据解码时间戳DTS和相对时间戳CTS计算显示时间戳PTS,计算公式为:
PTS=DTS+CTS;
步骤S103,对分离出来的音视频数据重新按照TS文件封装格式进行打包。
步骤S104,为每一个生成的TS切片建立时间索引文件。
图4是本申请优选RTMP协议到HLS协议的实时转换方法的流程图,RTMP协议和HLS协议分别是针对不同应用领域的传输方案,技术实现差别大;由于直播特点,数据流内音视频时钟会定时重置,对协议转换带来不便;RTMP协议与HLS协议采用的音视频同步方式完全不一样,因此在音视频时间戳计算方式上面也有很大的区别。为了解决音视频同步,重新计算时间戳,所述方法包括:
步骤S201,音视频解复用步骤,实时接收至少一个RTMP直播流,并从RTMP直播流分离出音视频数据;
步骤S202,时间戳同步和矫正;
步骤S203,按照TS文件封装规范,重新打包音视频数据,生成满足HLS直播流的切片。
步骤S204,文件命名步骤,根据各切片的生成时间命名各切片的文件名,该文件名与生成时间建立唯一时间映射关系。
优选的是,采用格林威治时间统一命令的方式在于方便各个时区转换,唯一的且和生成时间映射的文件命名,方便快速根据时间查找到符合要求的对应的文件数据。所述文件命名步骤进一步包括:
在每个切片生成时,记录切片的系统生成时间并转换成唯一对应的格林威治生成时间,切片文件名时间映射规则如下:
符号 表示内容
n 自然数
D 切片时长
FT(n) 第n个切片时间
FN(n) 第n个切片文件名
第n个切片的格林威治生成时间FT(n),则第n个切片的文件名为FN(n)=FT(n)+“.ts”。
如北京时间2018-3-5 18:29:30对应的格林威治生成时间为1520245690,则生成的TS切片文件名为1520245690.ts
步骤S205,按直播频道、年、月、日、小时建立目录,用于存储TS切片,既某一直播
频道所属某一小时的切片放在对应的小时目录下。优先的是,采用直播频道、年、月、日、小时建立目录,能够方便、快捷的根据时间查找到符合要求的切片文件。在本申请的具体实施例中,切片存储目录生成规则如下:存储目录根据频道名、年、月、日、小时,分别建立多级目录进行存储。一级目录以频道名命名:中央一台频道一级目录命名为:“CCTV1”。该目录收录中台一台频道所有切片文件。二级目录以年命名,如“2018”。三级目录以月命名,如“02”。四级目录以日命名,如“01”。五级目录以小时命名,如“19”。如2018年3月5日19时00分00秒,则生成的目录为2019/03/05/19,该目录下面保存了2018年3月5日19时00分00秒至2018年3月5日19时59分59秒时间段的所有切片。
时间转换目录计算方法如下:
第一步:将日期转换为格林威治时间戳。
第二步:从时间戳从中分别获取年、月、日、小时。
2018年3月5日19时00分00秒的时间戳为1520247600,从1520247600时间戳中解析也年、月、日、小时分别为”2018”、“03“、”05“、”00“。
步骤S206,每生成一个新的切片后,更新M3U8文件,将过期的切片文件从M3U8列表中移出。
步骤S207,为各个切片生成时间索引文件表,记录各个切片文件生成的系统时间、结束时的系统时间,时长,存储路径。切片时间索引文件表:
字段 表示内容
starttime 切片起始时间戳
endtime 切片结束时间戳
D 切片的时间长度
path 切片的存储路径
TS切片时间索引文件表不需要与数据库进行交互,只需要在频道目录下生成一个文件,按照以下格式生成即可,一行生成一个TS切片信息:
starttime=1520247600,endtime=1520247610,D=10,path=cctv1/2019/03/05/19/1520247600.ts。
这样既达到对直播频道的实时收录功能,也可根据生成时间点方便快速查找对应数据,以此为基础提供直播时移和回看服务。文件名映射规则确定及切片时间索引文件表,是本申请直播转时移、回看的核心基础。
优选的,所述生成时间索引文件表步骤之后包括:
点播M3U8列表生成步骤,根据回看或时移节目的起始时间及节目时长,生成对应的M3U8列表并提供HTTP服务。例如根据以上规则,直播时移、回看功能如下实现:根据提交节目起始时间及节目时长,生成对应的m3u8播放列表并提供服务。如提交CCTV1 2018-3-519:00:00“新闻联播”时长30分钟的节目,系统根据该信息提供M3U8列表。
第一步:将节目的起始时间进行格林威治时间转换。2018-3-5 19:00:00转换后的时间为1520247600;
第二步:根据节目的起始时间和节目时长,计算出节目结束时间并将结束时间转的格林威治时间。2018-3-5 19:30:00转换后的线束时间为1520249400。若为直播时移,则结束时间为当前系统时间。
第三步:在时间索引文件表查找切片文件起始时间>=1520247600结束时间<=1520249400的所有切片。若为直播时移,结束时间则为当前系统时间。
第四步:将查找出来的切片加入到M3U8列表中。
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:141740640
#EXT-X-VERSION:3
#EXTINF:10,
CCTV1/2018/03/05/19/1520247600.ts
#EXTINF:10,
CCTV1/2018/03/05/19/1520247610.ts
……
#EXTINF:10,
CCTV1/2018/03/05/19/1520249400.ts
#EXT-X-ENDLIST
以上步骤作为本申请切片的核心算法,确保输入流无论是严格遵循RTMP编码标准直播流还是非标准RTMP直播流,均能顺利切片,并满足HLS协议要求。
本申请优选实施方式中将从时间戳矫正、时间戳转换、切片目录建立方法、切片时间索引文件建立四方面进行。通过索引的建立,完成HLS协议转换和直播时移与回看功能。
本申请能够低成本充分利用现有技术,高性能地实现无缝转换成符合HLS协议要求的直播流,既能极大地节省设备投入和技术改造,也能够快速实现HLS的各项应用要求。同时将直播音视频数据进行切片同时完成视频收录功能,建立时间索引文件,快速、方便实现提供直播回看数据,减少直播实时收录及后期人工编辑等工作,提高工作效率。本申请主要分为三个方面:实时接收RTMP直播流,进行音视频数据解复用、分析、时间戳矫正、时间戳转换并进行TS封装,按要求进行切片和M3U8列表生成,输出符合HLS协议的直播流;对输出切片文件以频道名及年、月、日、小时为单位进行实时存储,实现直播收录;对输出切片建立时间索引文件表,实现直播时移和回看功能。
综上所述,本申请能够基于现有RTMP协议服务技术方案上,无缝扩展HLS协议直播、直播时移、直播回看技术,大大节省了设备投入和技术改造的成本。而且,本申请还可将直播切片后的数据进行收录,建立切片时间索引文件表,从而可快速、方便地实现提供直播时移、直播回看业务,减少直播实时收录及后期人工编辑等工作,提高了工作效率。
当然,本申请还可有其它多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。

Claims (10)

1.一种RTMP协议到HLS协议的实时转换系统,其特征在于包括:
Internet网络;
分别与所述Internet网络连接的RTMP服务器(2)和直播前端(1);
与所述RTMP服务器(2)连接的HLS服务器(3);
通过CDN网络与所述HLS服务器(3)连接的播放端(8);
所述的直播前端(1)包括直播编码器(6)和与直播编码器(6)连接的若干台摄像机(7);
所述的播放端(8)包括PC播放器、IOS播放器、Android播放器和H5播放器;
所述的实时转换系统还包括存储服务器(4)和切片索引服务器(5),所述存储服务器(4)和切片索引服务器(5)均与HLS服务器(3)连接;
所述的HLS服务器(3)包括:
与所述RTMP服务器(2)通过RTMP协议网络连接的直播流接收模块;
与所述直播流接收模块连接的音视频解复用模块;
与所述音视频解复用模块连接的时间戳转换模块;
与所述时间戳转换模块连接的切片模块;
与所述切片模块连接的存储服务器,所述存储服务器(4)用于切片文件的命名;
与所述存储服务器(4)连接的M3U8文件模块;
与所述M3U8文件模块连接的切片索引服务器(5);
与所述切片索引服务器(5)连接的M3U8点播文件生成模块,所述M3U8点播文件生成模块通过CDN网络与播放端(8)连接。
2.一种RTMP协议到HLS协议的实时转换方法,应用权利要求1所述的一种RTMP协议到HLS协议的实时转换系统,其特征在于它包括以下步骤:
步骤1:对实时接收的RTMP直播流进行解复用,得到音视频数据;
步骤2:对音视频数据按HLS协议的时间戳重新打包与封装,得到满足HLS协议的切片;
步骤3:为每个满足HLS协议的切片建立切片存储映射关系表;
步骤4:根据切片存储映射关系表生成点播M3U8列表。
3.根据权利要求2所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于所述的步骤2具体为:
步骤101:将满足TIDR(n)+TIDR(n-1)+…+TIDR(0)<=D的音视频数据作为同一个切片内的数据,得到若干个切片,其中TIDR(n)代表第n个关键帧时长,D为一个切片的时间长度,单位为秒;
步骤102:对时间戳进行转换并按HLS协议对音视频数据重新封装和打包,得到满足HLS协议的切片;
步骤103:计算每个满足HLS协议的切片的时长D1,计算公式为:
D1=TIDR(n)-TIDR(0)。
4.根据权利要求3所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于步骤102中对时间戳进行转换包括对RTMP协议中的时间戳进行转换和对非线性增加的时间戳进行矫正,转换为满足HLS协议的时间戳,具体包括以下步骤:
步骤201:查找视频数据关键帧的时间戳(TIMESTAMP)和相对时间戳(CompositonTime);
步骤202:将视频关键帧的时间戳和相对时间戳转换为按时钟90KHZ进行视频同步的时间戳,计算公式为:
T’=TIMESTAMP*90;
其中TIMESTAMP为RTMP协议中的解码时间戳,T’为转换后的解码时间戳,90为TS系统时钟90KHZ,
若TIDR’(n+1)<=TIDR’(n),表示RTMP协议中的关键帧时间戳非线性增加,需要矫正;
其中TIDR’(n)代表第n个关键帧的解码时间戳TIMESTAMP;
此时转换后的解码时间戳T’=(TIMESTAMP+25*n)*90,
其中,25代表通用视频帧率,n代表第n个关键帧;
步骤203:依次计算各切片所需的解码时间戳DTS=T’,参考时间戳CTS=CS*90,其中CS为RTMP协议中的CompositonTime(相对时间戳,在H264视频编码标准协议中,如果编码级别为baseline,值始终为0);
步骤204:根据各切片所需的解码时间戳DTS和相对时间戳CTS计算显示时间戳PTS,计算公式为:
PTS=DTS+CTS。
5.根据权利要求2所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于步骤2中得到满足HLS协议的切片后,针对各满足HLS协议的切片还包括以下步骤:
命名文件:根据各切片的系统生成时间命名各切片,得到与切片生成时间建立唯一映射关系的切片文件名;
更新M3U8列表:每生成一个新的切片后,将失效的切片从M3U8列表中移除并将新的切片更新至M3U8列表;
建立时间索引文件表:每生成一个新的切片后,记录该切片的系统生成时间,结束时间,时长和存储路径。
6.根据权利要求5所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于所述的命名文件具体包括以下步骤:每个切片生成时,记录该切片的系统生成时间T1,根据系统生成时间T1命名该切片,记第n个生成的切片的文件名FN(n)=T1+“.ts”,其中,“.ts”为切片的文件名后缀。
7.根据权利要求5所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于所述建立时间索引文件表具体包括以下步骤:
步骤301:根据切片的直播频道、年、月、日和小时建立多级目录;
步骤302:所述切片的一级目录以相应的直播频道命名,二级目录以相应的年命名,三级目录以相应的月命名,四级目录以相应的日命名,五级目录以相应的小时命名;
步骤303:将对应直播频道和时间的切片存储于对应的小时目录下。
8.根据权利要求7所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于所述的时间索引文件表不与数据库进行交互,仅在本地生成一个文件,文件中每行按以下格式生成一个时间戳切片信息:
starttime=(起始时间戳),endtime=(结束时间戳),D1=(时间长度),path=(存储路径)。
9.根据权利要求6所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于记录切片的系统生成时间T1时,将第n个生成的切片的系统生成时间T1转换为唯一对应的格林威治生成时间FT(n),记第n个生成的切片的文件名FN(n)=FT(n)+“.ts”;
步骤301中根据直播频道、年、月、日和小时建立多级目录之前还包括从格林威治生成时间FT(n)中获取该切片生成的年、月、日、小时。
10.根据权利要求8所述的一种RTMP协议到HLS协议的实时转换方法,其特征在于步骤4所述的生成点播M3U8列表具体包括以下步骤:
步骤401:将起始时间戳转换为相应的起始格林威治时间戳;
步骤402:根据起始时间戳和时间长度计算结束时间戳,然后将结束时间戳转换为结束格林威治时间戳;
步骤403:在时间索引文件表中查找起始时间大于或等于起始格林威治时间戳和结束时间小于或等于结束格林威治时间戳的所有切片文件;
步骤404:将查找到的所有切片文件加入到M3U8列表中。
CN201810312789.2A 2018-04-09 2018-04-09 一种rtmp协议到hls协议的实时转换系统及其工作方法 Pending CN108391176A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810312789.2A CN108391176A (zh) 2018-04-09 2018-04-09 一种rtmp协议到hls协议的实时转换系统及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810312789.2A CN108391176A (zh) 2018-04-09 2018-04-09 一种rtmp协议到hls协议的实时转换系统及其工作方法

Publications (1)

Publication Number Publication Date
CN108391176A true CN108391176A (zh) 2018-08-10

Family

ID=63073733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810312789.2A Pending CN108391176A (zh) 2018-04-09 2018-04-09 一种rtmp协议到hls协议的实时转换系统及其工作方法

Country Status (1)

Country Link
CN (1) CN108391176A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109168090A (zh) * 2018-10-22 2019-01-08 中电科新型智慧城市研究院有限公司 利用gpu实现h264视频流转hls视频流的方法
CN109286820A (zh) * 2018-11-29 2019-01-29 无锡华云数据技术服务有限公司 基于分布式存储系统的流媒体点播方法及系统
CN109787983A (zh) * 2019-01-24 2019-05-21 北京百度网讯科技有限公司 直播流切片方法、装置和系统
CN109862398A (zh) * 2019-03-29 2019-06-07 北京奇艺世纪科技有限公司 多媒体数据传输方法、装置及系统
CN110430438A (zh) * 2019-07-29 2019-11-08 天闻数媒科技(湖南)有限公司 一种直播流切片的方法
CN110650351A (zh) * 2019-08-16 2020-01-03 咪咕视讯科技有限公司 直播控制方法、系统、服务器及计算机可读存储介质
CN110996182A (zh) * 2019-11-21 2020-04-10 北京奇艺世纪科技有限公司 时间戳处理方法、装置、电子设备及计算机存储介质
CN111901696A (zh) * 2020-07-31 2020-11-06 杭州当虹科技股份有限公司 一种使用预加载方式基于hls技术的实时收录拆条系统
CN112449213A (zh) * 2020-11-25 2021-03-05 杭州视洞科技有限公司 一种基于FFmpeg实现的HLS切片服务方案
CN113596580A (zh) * 2021-07-28 2021-11-02 伟乐视讯科技股份有限公司 基于srt协议的流媒体数据处理方法、装置及电子设备
CN113709412A (zh) * 2020-05-21 2021-11-26 中国电信股份有限公司 直播流处理方法、装置和系统、计算机可读存储介质
CN114401193A (zh) * 2021-12-27 2022-04-26 中国电信股份有限公司 一种支持mpts的hls切片方法及装置
CN114827735A (zh) * 2022-04-21 2022-07-29 咪咕文化科技有限公司 视频回看方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986942A (zh) * 2014-06-05 2014-08-13 北京赛维安讯科技发展有限公司 基于cdn网络的数据分发系统及方法
CN104506967A (zh) * 2015-01-05 2015-04-08 百视通网络电视技术发展有限责任公司 Udp直播流到hls直播流的实时转换方法及系统
CN105992044A (zh) * 2015-02-05 2016-10-05 天脉聚源(北京)科技有限公司 一种hls转码rtmp直播流的方法及系统
WO2017035783A1 (zh) * 2015-09-01 2017-03-09 深圳好视网络科技有限公司 流媒体的传输、播放方法及传输、播放装置
CN106685942A (zh) * 2016-12-20 2017-05-17 徐亮 视频直播回播系统以及视频直播回播方法
CN106790204A (zh) * 2017-01-03 2017-05-31 北京奇虎科技有限公司 一种流数据的封装协议的转换方法和装置
CN107222480A (zh) * 2017-05-27 2017-09-29 中国联合网络通信集团有限公司 一种流媒体播放方法、终端设备及cdn服务器
CN107527045A (zh) * 2017-09-19 2017-12-29 桂林安维科技有限公司 一种面向多路视频的人体行为事件实时分析方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986942A (zh) * 2014-06-05 2014-08-13 北京赛维安讯科技发展有限公司 基于cdn网络的数据分发系统及方法
CN104506967A (zh) * 2015-01-05 2015-04-08 百视通网络电视技术发展有限责任公司 Udp直播流到hls直播流的实时转换方法及系统
CN105992044A (zh) * 2015-02-05 2016-10-05 天脉聚源(北京)科技有限公司 一种hls转码rtmp直播流的方法及系统
WO2017035783A1 (zh) * 2015-09-01 2017-03-09 深圳好视网络科技有限公司 流媒体的传输、播放方法及传输、播放装置
CN106685942A (zh) * 2016-12-20 2017-05-17 徐亮 视频直播回播系统以及视频直播回播方法
CN106790204A (zh) * 2017-01-03 2017-05-31 北京奇虎科技有限公司 一种流数据的封装协议的转换方法和装置
CN107222480A (zh) * 2017-05-27 2017-09-29 中国联合网络通信集团有限公司 一种流媒体播放方法、终端设备及cdn服务器
CN107527045A (zh) * 2017-09-19 2017-12-29 桂林安维科技有限公司 一种面向多路视频的人体行为事件实时分析方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
王宁娟: "如何快速搭建一个完整的移动直播系统", 《计算机与网络》 *
王宁娟: "如何快速搭建一个完整的移动直播系统", 《计算机与网络》, no. 14, 31 July 2016 (2016-07-31) *
程承: "基于RTMP协议的网络播出平台建设", 《科技创新与应用》 *
程承: "基于RTMP协议的网络播出平台建设", 《科技创新与应用》, no. 17, 30 June 2016 (2016-06-30), pages 102 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109168090A (zh) * 2018-10-22 2019-01-08 中电科新型智慧城市研究院有限公司 利用gpu实现h264视频流转hls视频流的方法
CN109286820A (zh) * 2018-11-29 2019-01-29 无锡华云数据技术服务有限公司 基于分布式存储系统的流媒体点播方法及系统
CN109286820B (zh) * 2018-11-29 2019-08-06 无锡华云数据技术服务有限公司 基于分布式存储系统的流媒体点播方法及系统
CN109787983A (zh) * 2019-01-24 2019-05-21 北京百度网讯科技有限公司 直播流切片方法、装置和系统
US11356748B2 (en) 2019-01-24 2022-06-07 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus and system for slicing live streaming
CN109862398A (zh) * 2019-03-29 2019-06-07 北京奇艺世纪科技有限公司 多媒体数据传输方法、装置及系统
CN110430438A (zh) * 2019-07-29 2019-11-08 天闻数媒科技(湖南)有限公司 一种直播流切片的方法
CN110650351A (zh) * 2019-08-16 2020-01-03 咪咕视讯科技有限公司 直播控制方法、系统、服务器及计算机可读存储介质
CN110650351B (zh) * 2019-08-16 2021-12-07 咪咕视讯科技有限公司 直播控制方法、系统、服务器及计算机可读存储介质
CN110996182A (zh) * 2019-11-21 2020-04-10 北京奇艺世纪科技有限公司 时间戳处理方法、装置、电子设备及计算机存储介质
CN110996182B (zh) * 2019-11-21 2021-07-23 北京奇艺世纪科技有限公司 时间戳处理方法、装置、电子设备及计算机存储介质
CN113709412A (zh) * 2020-05-21 2021-11-26 中国电信股份有限公司 直播流处理方法、装置和系统、计算机可读存储介质
CN111901696A (zh) * 2020-07-31 2020-11-06 杭州当虹科技股份有限公司 一种使用预加载方式基于hls技术的实时收录拆条系统
CN112449213A (zh) * 2020-11-25 2021-03-05 杭州视洞科技有限公司 一种基于FFmpeg实现的HLS切片服务方案
CN113596580A (zh) * 2021-07-28 2021-11-02 伟乐视讯科技股份有限公司 基于srt协议的流媒体数据处理方法、装置及电子设备
CN114401193A (zh) * 2021-12-27 2022-04-26 中国电信股份有限公司 一种支持mpts的hls切片方法及装置
CN114401193B (zh) * 2021-12-27 2024-04-16 中国电信股份有限公司 一种支持mpts的hls切片方法及装置
CN114827735A (zh) * 2022-04-21 2022-07-29 咪咕文化科技有限公司 视频回看方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN108391176A (zh) 一种rtmp协议到hls协议的实时转换系统及其工作方法
CN102231860B (zh) 一种直播时移数据存储方法
KR102060851B1 (ko) Http 를 통한 동적 적응형 스트리밍 (dash) 을 위한 라이브 타이밍
RU2518513C2 (ru) Устройство и способ приема содержания, устройство и способ передачи содержания, программа и носитель записи
US9473476B2 (en) Program guide data management for media content access systems and methods
CN103069769B (zh) 用于经译码视频数据的网络串流传输的特技模式
KR101565670B1 (ko) 싱크로 콘텐츠 방송 분배 시스템
US11575717B2 (en) Receiving device, reception method, transmitting device, and transmission method
CN104506967B (zh) Udp直播流到hls直播流的实时转换方法及系统
EP3270601B1 (en) Self-adaptive streaming medium processing method and apparatus
CN101895750B (zh) 面向机顶盒和pc的实时流媒体服务器及工作方法
CN101588473B (zh) 多媒体时移播放方法及系统
CN105828216A (zh) 一种直播视频字幕合成系统及方法
CN105359449B (zh) 发送方法、接收方法、发送装置以及接收装置
CN108141636A (zh) 接收装置以及接收方法
US20170214944A1 (en) Method and apparatus for delocalized management of video data
CN102172035A (zh) 视频专题制作方法和系统
CN109640162A (zh) 码流转换方法及系统
CN102905174B (zh) 一种传输流的共享方法
CN1642270A (zh) 一种生成数字电视电子节目指南的方法
CN112929677B (zh) 直播视频的回看方法、装置和服务器
CN106851331B (zh) 易播处理方法及系统
WO2016070686A1 (zh) Tvod录制任务的录制处理、录制方法及装置、系统
CN113630643A (zh) 媒体流收录方法、装置及计算机存储介质、电子设备
CN104168509A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180810

RJ01 Rejection of invention patent application after publication