流媒体数据直播方法及系统的制作方法_2

文档序号:9582171阅读:来源:国知局
在根据本发明的直播系统100中,第一服务器120和第二服务器130工作方式一致,下面以第一服务器120为例进行详细说明。
[0022]图2示出根据本发明一些实施例的第一服务器120的示意图。
[0023]如图2所示,第一服务器120可以包括接收单元121、切片生成单元122、备份单元123、索引输出单元124和切片输出单元125。
[0024]接收单元121可以从推流设备接收流媒体数据。在根据本发明一个实施例中,流媒体数据为推流设备基于RTMP协议传输的网络电台音频数据。接收单元121被实施为一个RTMP接收模块。
[0025]切片生成单元122可以将所接收的流媒体数据进行分割处理,以生成数据量较小的切片文件。切片文件例如为TS (MPEG2-TS传输流,是用于音效、图像与数据的通信协定)文件,但不限于此。另外,所生成的切片文件可以被存储在第一服务器120的存储器中。这里,存储器例如可以是磁盘或者ramdisk(虚拟内存盘)等。这样,存储器处于内存文件系统中,使用内存文件系统提高了读写性能,同时也避免了文件频繁读写对磁盘的高损耗。另外,双服务器之间可以实现毫秒级的数据同步。
[0026]备份单元123适于将所生成切片文件备份到另一个服务器(例如第二服务器),并且存储来自另一个服务器的切片文件。根据本发明一个实施例,备份单元123使用inotify和rsync进行同步。在Python代码中,备份单元123首先使用inotify检测到文件状态的变化,当检测到文件写入完成、转移完成或删除时,然后调用rsync进行增量文件同步。
[0027]同样,第二服务器130也配置有备份单元。这样,根据本发明的备份单元实现了双服务器中流媒体数据的相互备份。应注意,在根据本发明的实施例中,正是应用了备份单元,使得即使一个服务器所连接的推流设备中断或者该服务器的切片生成单元停止工作,这个服务器都可以正常获取来自切片文件,并向客户端提供直播服务。
[0028]索引输出单元124适于将本服务器所生成的或者来自另一个服务器的切片文件建立切片索引。切片索引例如为M3U8索引(M3U8是HTTP Live Streaming直播的索引文件,文件格式是.m3u)。切片索引可以包括URL标识来关联切片文件。索引输出单元124可以向客户端发送切片索引。具体地,在客户端与第一服务器建立直播会话后,索引输出单元124适于不断更新切片索引,并向客户端发送。这样,客户端可以根据其接收到的切片索引发出对切片文件的数据请求。切片输出单元125响应于接收到数据请求,返回相应的切片文件。由于切片文件很小,客户端可以采用持续发送数据请求和接收切片文件的方式实现了流媒体数据的直播。这里,切片输出单元125可以实施为一个http服务器(例如为nginx服务器)的部分,但并不限于此。
[0029]在根据本发明一个实施例中,切片生成单元122还适于在接收单元121没有接收到新的流媒体数据时,生成包含白噪音的切片文件。索引输出单元124可以检测切片生成单元122是否能正常生成切片文件。具体地,索引输出单元124周期性扫描切片生成单元122新生成的切片文件。下面对多种检测结果进行举例说明。一种情况是,索引输出单元124检测到切片生成单元122新生成的切片文件不包含白噪音,则确定切片生成单元能正常生成切片文件。另一种情况是,索引输出单元124检测到新生成的切片文件包含白噪音,则确定切片生成单元工作不正常。又一种情况是,如果索引输出单元124没有检测到新的切片文件,也确定切片生成单元工作不正常。
[0030]在切片生成单元122正常生成切片文件时,索引输出单元124将本服务器新生成的切片文件建立对应的切片索引。
[0031]另外,索引输出单元124在检测到新生成的切片文件包含白噪音时,继续检测来自另一个服务器的切片文件是否包含白噪音。如果另一个服务器的切片文件不包含白噪音,则将来自另一个服务器的切片文件建立切片索引。换言之,第一服务器120在本服务器生成的切片文件包含白噪音时,向客户端输出来自第二服务器的正常切片文件。如果来自另一个服务器的切片文件也包含白噪音,则索引输出单元124可以从两路切片文件中任选一路建立切片索引。这样,即使两个服务器都不能获取到来自推流设备的流媒体数据,也可以向客户端输出白噪音(类似于“沙沙”声),而不会造成直播中断和影响客户端用户体验。
[0032]如果索引输出单元124未检测到切片生成单元122生成新的切片文件,则会将来自另一个服务器的切片文件建立切片索引。
[0033]如上所述,索引输出单元124在建立切片索引时,有两路数据(切片文件)共其选择用于直播的索引。这样,即使其中一路数据中断,第一服务器120也可以向客户端提供稳定的直播数据。根据本发明的第一服务器120能够提高网络容错率,极大提高用户体验度。
[0034]图3示出了根据本发明一个实施例的流媒体数据直播方法300的流程图。直播方法300适于在根据本发明的直播系统中执行。该直播系统包括推流设备、第一服务器和第二服务器。推流设备可以向第一服务器和第二服务器推送流媒体数据。
[0035]如图3所示,方法300始于步骤S310。在步骤S310中,在第一服务器或者第二服务器接收到流媒体数据时,将所接收的流媒体数据分割成一个或多个切片文件。根据本发明一个实施例,在步骤S310中,流媒体数据为网络电台广播数据。如果本服务器未接收到流媒体数据时,生成包含白噪音的切片文件。
[0036]随后,在步骤S320中,将本服务器所生成的切片文件备份到另一个服务器中,和存储来自另一个服务器的切片文件。
[0037]随后,在步骤S330中,将本服务器所生成的或者所存储来自另一个服务器的切片文件建立切片索引,以及向客户端发送该切片索引,以便客户端生成对应该切片索引的数据请求。这里,切片文件例如为TS文件,切片索引例如为M3U8索引文件(M3U8是HTTP LiveStreaming直播的索引文件,文件格式是.m3u),但不限于此。根据本发明一个实施例,在步骤S330中,首先检测本服务器是否正常生成切片文件。第一种情况,如果检测到生成新的切片文件,并且该切片文件不包含白噪音,则确定本服务器能正常生成切片文件。在确定本服务器正常生成切片文件时,将本服务器所生成的切片文件建立索引。第二种情况,如果本服务器停止生成切片文件,将所存储来自另一个服务器的切片文件建立切片索引。第三种情况,在确定本服务器所生成切片文件包含白噪音时,继续检测所述备份单元所存储的切片文件是否包含白噪音。如果来自另一个服务器的切片文件不包含白噪音,则对来自另一个服务器的切片文件建立切片索引。如果来自另一个服务器的切片文件包含白噪音,则对本服务器的包含白噪音的切片文件建立切片索引。
[0038]方法300还包括步骤S340。在步骤S340中,响应于接收到客户端的数据请求,返回该数据请求对应的切片文件。这里,关于方法300的具体实施细节与图1所示直播系统工作方式一致,这里不再赘述。
[0039]AllJn A8-10中任一项所述的流媒体数据直播方法,其中,所述流媒体数据为网络电台广播数据。A12、如A8-11中任一项所述的流媒体数据直播方法,其中所述切片文件为TS文件,所述切片索引为M3U8索引文件。A13、如A8-12中任一项所述的流媒体数据直播方法,所述流媒体数据直播系统还包括负载均衡服务器,该直播方法还包括:通过负载均衡服务器将来自所述客户端的访问请求分配到所述第一服务器或所述第二服务器。A14、如A8-13中任一项所述的流媒体数据直播方法,所述流媒体数据直播系统还包括推流设备,该直播方法还包括:通过该推流设备向所述第一服务器和所述第二服务器推送所述流媒体数据。
[0040]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方
...
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1