CN109194678B - 基于redis消息队列的分布式流媒体服务系统 - Google Patents

基于redis消息队列的分布式流媒体服务系统 Download PDF

Info

Publication number
CN109194678B
CN109194678B CN201811114337.XA CN201811114337A CN109194678B CN 109194678 B CN109194678 B CN 109194678B CN 201811114337 A CN201811114337 A CN 201811114337A CN 109194678 B CN109194678 B CN 109194678B
Authority
CN
China
Prior art keywords
task
video
playback
message queue
queue
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
CN201811114337.XA
Other languages
English (en)
Other versions
CN109194678A (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.)
Lianyu Heda Technology Co.,Ltd.
Original Assignee
Jilin Lianyu Heda 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 Jilin Lianyu Heda Technology Co ltd filed Critical Jilin Lianyu Heda Technology Co ltd
Priority to CN201811114337.XA priority Critical patent/CN109194678B/zh
Publication of CN109194678A publication Critical patent/CN109194678A/zh
Application granted granted Critical
Publication of CN109194678B publication Critical patent/CN109194678B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

本发明涉及一种基于redis消息队列的分布式流媒体服务系统,其中系统包括中央控制单元,用于接收请求端发送的请求并将请求分类处理,将产生的任务添加到redis消息队列中;视音频推送与转发服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止推送与转发任务;视频录像服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止录像任务;录像回放服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止回放任务;视频直播服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止直播任务。本发明中各单元运行于多进程,有效解决了系统资源消耗过大的问题,同时可进行分布式部署在多服务器上,从而降低单一服务器的硬件和网络压力。

Description

基于redis消息队列的分布式流媒体服务系统
技术领域
本发明涉及流媒体技术领域,特别是涉及一种基于redis消息队列的分布式流媒体服务系统。
背景技术
流媒体,又称为流式媒体,是多媒体的一种,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上,用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。流媒体被广泛应用于远程教育、视频点播、网络电台以及网络视频等方面,极大地方便了人们的工作和生活。
目前,流媒体相关服务,如视音频推送或转发服务、直播转发服务、录像服务、回放服务等服务高度集中,每个服务只能运行于单一的服务器上,在视音频数据量较大、视频路数较多的情况下,服务器承载压力很大,系统资源消耗过大,极易导致视音频卡顿丢包,同时,由于所有服务运行于单进程中,需要进行数据同步而导致效率低下,响应速度慢。
发明内容
基于此,有必要针对目前流媒体服务中服务器承载压力过大,极易导致视音频卡顿丢包以及需要进行数据同步而导致效率低下、响应速度慢的问题,提供一种基于redis消息队列的分布式流媒体服务系统。
为解决上述问题,本发明采取如下的技术方案:
一种基于redis消息队列的分布式流媒体服务系统,该系统包括:
中央控制单元,用于接收请求端发送的请求并将请求分类处理,将产生的任务添加到redis消息队列中;
视音频推送与转发服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止推送与转发任务;
视频录像服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止录像任务;
录像回放服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止回放任务;
视频直播服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止直播任务;
当推送与转发任务启动触发条件成立时,中央控制单元将组织好的推送与转发格式化数据随机填写到redis消息队列中,推送与转发格式化数据包括视频源地址、视频主辅流标记、音频标记和任务时间戳;
视音频推送与转发服务单元轮循redis消息队列时,若获取的当前任务为新增推送与转发任务,则视音频推送与转发服务单元先解析推送与转发任务,并检查已运行队列,判断推送与转发任务是否已经启动;
若判断推送与转发任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断推送与转发任务未启动,则启动推送与转发任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
与现有技术相比,本发明一种基于redis消息队列的分布式流媒体服务系统具有以下有益效果:
(1)本发明视音频推送与转发服务单元、视频录像服务单元、录像回放服务单元和视频直播服务单元运行于多进程,有效解决了系统资源消耗过大的问题,同时可进行分布式部署在多服务器上,从而能有效降低单一服务器的硬件和网络压力;
(2)当有新的推送与转发任务、录像任务、回放任务和直播任务时,中央控制单元向redis消息队列添加任务,各单元从redis消息队列读取任务,不再进行数据同步,从而提高程序运行效率。
附图说明
图1为本发明基于redis消息队列的分布式流媒体服务系统的结构示意图;
图2为图1所示分布式流媒体服务系统对应的网络拓扑图;
图3为任务产生和主要的处理流程图;
图4为单一任务的处理流程图。
具体实施方式
本发明基于redis的非常高的读写性能以及可将数据在内存和本地硬盘持久化存储的特性,将产生的日常业务操作保存在redis数据库中,进而将各流媒体服务适当拆分,使用redis进行信息交互,达到分布式部署目的,实现流媒体服务更稳定的完成视频转发、预览、录像、回放和直播等。下面将结合附图及较佳实施例对本发明的技术方案进行详细描述。
在其中一个实施例中,如图1-2所示,本发明公开一种基于redis消息队列的分布式流媒体服务系统,该系统包括:
中央控制单元,用于接收请求端发送的请求并将请求分类处理,将产生的任务添加到redis消息队列中;
视音频推送与转发服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止推送与转发任务;
视频录像服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止录像任务;
录像回放服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止回放任务;
视频直播服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止直播任务。
在本实施例中,中央控制单元(CMS)是流媒体服务对外提供的服务处理单元,其接收请求端发送的所有请求并将请求分类处理,将产生的任务添加到redis消息队列中,是任务的管理者;视音频推送与转发服务单元是从原始设备或视频文件转发视频服务;视频录像服务单元是将推送服务转发后视频录像保存本地;录像回放服务单元是将录像文件处理成可播放的视频地址,并且可控制播放进度;视频直播服务单元是将原始设备或视频文件转换成直播地址,在可移动端或页面播放。
Redis数据库规划,停止任务队列部署在redis第1数据库,重启任务部署在第2数据库,其他任务队列部署在第3和后续数据库,各服务统一读取redis第1、2数据库处理停止任务和重启任务。
各服务单元轮循对应的redis数据库查询消息队列,处理业务请求。如图3所示为任务产生和主要的处理流程图,开始时中央控制单元添加/删除任务,将添加/删除任务添加到redis消息队列中,视音频推送与转发服务单元、视频录像服务单元、录像回放服务单元和视频直播服务单元均依次判断是否存在停止任务、启动任务和重启任务,若判断不存在停止任务、启动任务和重启任务,则继续判断是否退出服务,若否,则执行下一次停止任务、启动任务和重启任务的判断。
本实施例所提出的一种基于redis消息队列的分布式流媒体服务系统具有以下有益效果:
(1)本实施例视音频推送与转发服务单元、视频录像服务单元、录像回放服务单元和视频直播服务单元运行于多进程,有效解决了系统资源消耗过大的问题,同时可进行分布式部署在多服务器上,从而能有效降低单一服务器的硬件和网络压力;
(2)当有新的推送与转发任务、录像任务、回放任务和直播任务时,中央控制单元向redis消息队列添加任务,各单元从redis消息队列读取任务,不再进行数据同步,从而提高程序运行效率。
作为一种具体的实施方式,当推送与转发任务启动触发条件成立时,中央控制单元将组织好的推送与转发格式化数据随机填写到redis消息队列中,推送与转发格式化数据包括视频源地址、视频主辅流标记、音频标记和任务时间戳;
视音频推送与转发服务单元轮循redis消息队列时,若获取的当前任务为新增推送与转发任务,则视音频推送与转发服务单元先解析推送与转发任务,并检查已运行队列,判断推送与转发任务是否已经启动;
若判断推送与转发任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断推送与转发任务未启动,则启动推送与转发任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
在本实施方式中,推送和转发任务的产生通常有2种方式:编码设备存在录像计划和用户视频预览,因此编码设备存在录像计划或者用户视频预览作为推送与转发任务启动触发条件,当存在以上2种情况中的任意一种时,即推送与转发任务启动触发条件成立,中央控制单元根据视频源信息组织推送与转发格式化数据,推送与转发格式化数据中包括视频源地址、视频主辅流标记、音频标记和任务时间戳等。
中央控制单元将组织好的推送与转发格式化数据随机填写到redis库的任务消息队列中。
如图4所示为视音频推送与转发服务单元对单一任务的处理流程图,视频录像服务单元、录像回放服务单元和视频直播服务单元对单一任务的处理流程与视音频推送与转发服务单元对单一任务的处理流程相似。视音频推送与转发服务单元轮循对应redis库的消息队列,当获取到一个新增任务时,即视音频推送与转发服务单元获取的当前任务为新增推送与转发任务时,视音频推送与转发服务单元先解析推送与转发任务,检查已运行队列,判断推送与转发任务是否已经启动了,如果推送与转发任务已经启动则丢弃当前任务并将redis任务队列中任务删除,如果推送与转发任务没有启动则启动任务,并在已运行队列中添加当前任务信息,最后在redis消息队列中删除当前任务。
进一步地,当推送与转发任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止推送与转发任务;
视音频推送与转发服务单元轮循redis库的停止任务队列时,若停止推送与转发任务的时间戳大于推送与转发任务的时间戳,则视音频推送与转发服务单元停止推送与转发任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
在本实施方式中,推送与转发任务停止触发条件为录像计划到达结束时间或者设备(视频源)删除,当录像计划到达结束时间或者设备(视频源)删除时,中央控制单元在redis消息队列中创建停止推送与转发任务。
视音频推送与转发服务单元轮循对应redis库的停止任务队列,视音频推送与转发服务单元根据时间戳判断是否停止推送与转发任务,如果停止推送与转发任务的时间戳大于推送与转发任务的时间戳,此时需要停止推送与转发任务,视音频推送与转发服务单元停止推送与转发任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
作为一种具体的实施方式,当录像任务启动触发条件成立时,中央控制单元将组织好的录像格式化数据随机填写到redis消息队列中,录像格式化数据包括视频源地址、视频主辅流标记、音频标记、任务时间戳、视频文件时长、保存位置和保存格式;
视频录像服务单元轮循redis消息队列时,若获取的当前任务为新增录像任务,则视频录像服务单元先解析录像任务,并检查已运行队列,判断录像任务是否已经启动;
若判断录像任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断录像任务未启动,则启动录像任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
在本实施方式中,编码设备存在录像计划作为录像任务启动触发条件,即录像任务启动触发条件成立时,中央控制单元根据配置(如视频流的IP、端口等信息)组织录像格式化数据,录像格式化数据中包括视频源地址、视频主辅流标记、音频标记、任务时间戳、视频文件时长、保存位置、保存格式等。
中央控制单元将组织好的录像格式化数据随机填写到redis库的任务消息队列中。
视频录像服务单元轮循对应redis库的消息队列,当获取到一个新增任务时,即视频录像服务单元获取的当前任务为新增录像任务时,视频录像服务单元先解析录像任务,检查已运行队列,判断录像任务是否已经启动了,如果录像任务已经启动则丢弃当前任务并将redis任务队列中任务删除,如果录像任务没有启动则启动任务,并在已运行队列中添加当前任务信息,最后在redis消息队列中删除当前任务。
进一步地,当录像任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止录像任务;
视频录像服务单元轮循redis库的停止任务队列时,若停止录像任务的时间戳大于录像任务的时间戳,则视频录像服务单元停止录像任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
在本实施方式中,录像任务停止触发条件为录像计划到达结束时间或者设备(视频源)删除,当录像计划到达结束时间或者设备(视频源)删除时,中央控制单元在redis消息队列中创建停止录像任务。
视频录像服务单元轮循对应redis库的停止任务队列,视频录像服务单元根据时间戳判断是否停止录像任务,如果停止录像任务的时间戳大于录像任务的时间戳,此时需要停止录像任务,视频录像服务单元停止录像任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
作为一种具体的实施方式,回放任务包括开启回放任务、停止回放任务和回放进度调整任务;
当开启回放任务启动触发条件成立时,中央控制单元将组织好的开启回放格式化数据随机填写到redis消息队列中,开启回放格式化数据包括回放的视频源和回放的时间段;
录像回放服务单元轮循redis消息队列时,若获取的当前任务为新增开启回放任务,则录像回放服务单元在视频存储中查找符合条件的视频文件,将所有符合条件的视频文件添加到开启回放任务中,并返回请求端回放句柄、播放时长和回放地址;
当回放进度调整任务启动触发条件成立时,中央控制单元将组织好的回放进度调整格式化数据随机填写到redis消息队列中,回放进度调整格式化数据包括回放句柄和调整后的播放时间点;
录像回放服务单元轮循redis消息队列时,若获取的当前任务为新增回放进度调整任务,则录像回放服务单元先解析回放进度调整任务,并检查已运行队列,判断回放进度调整任务是否已经启动;
若判断回放进度调整任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断回放进度调整任务未启动,则启动回放进度调整任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
在本实施方式中,录像回放主要包括3种操作,分别是开启回放、停止回放和回放进度调整,相应地,回放任务包括开启回放任务、停止回放任务和回放进度调整任务。
在本实施方式中,开启回放任务启动触发条件为编码设备存在录像计划和用户请求端请求开始回放,当编码设备存在录像计划和用户请求端请求回放时,即开启回放任务启动触发条件成立时,中央控制单元组织开启回放格式化数据,开启回放格式化数据中包括回放的视频源和回放的时间段;中央控制单元将组织好的开启回放格式化数据随机填写到redis消息队列中;录像回放服务单元轮循redis消息队列,当获取到一个新增任务时,即录像回放服务单元获取的当前任务为新增开启回放任务时,录像回放服务单元在视频存储中查找符合条件的视频文件,将所有符合条件的视频文件添加到开启回放任务中,并返回请求端回放句柄、播放时长和回放地址。
请求方需要播放进度快进或快退时,必须通过回放进度调整任务完成进度控制。用户请求端请求调整回放进度作为回放进度调整任务启动触发条件,当用户请求端请求请求调整回放进度时,即回放进度调整任务启动触发条件成立时,中央控制单元组织回放进度调整格式化数据,回放进度调整格式化数据中包括回放句柄和调整后的播放时间点;中央控制单元将组织好的回放进度调整格式化数据随机填写到redis消息队列中;录像回放服务单元轮循对应redis库的消息队列,当获取到一个新增任务时,即录像回放服务单元获取的当前任务为新增回放进度调整任务时,录像回放服务单元先解析回放进度调整任务,检查已运行队列,判断回放进度调整任务是否已经启动了,如果回放进度调整任务已经启动则丢弃当前任务并将redis任务队列中任务删除,如果回放进度调整任务没有启动则启动任务,并在已运行队列中添加当前任务信息,最后在redis消息队列中删除当前任务。
进一步地,当停止回放任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止回放任务;
录像回放服务单元轮循redis库的停止任务队列时,若停止回放任务的时间戳大于回放任务的时间戳,则录像回放服务单元停止回放任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
在本实施方式中,停止回放任务停止触发条件为录像回放播放完成或者用户请求端请求停止回放,当录像回放播放完成或者用户请求端请求停止回放时,即停止回放任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止回放任务。
录像回放服务单元轮循对应redis库的停止任务队列,录像回放服务单元根据时间戳判断是否停止回放任务,如果停止回放任务的时间戳大于回放任务的时间戳,此时需要停止回放任务,录像回放服务单元停止回放任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
作为一种具体的实施方式,当直播任务启动触发条件成立时,中央控制单元将组织好的直播格式化数据随机填写到redis消息队列中,直播格式化数据包括视频源地址、视频主辅流标记、音频标记和任务时间戳;
视频直播服务单元轮循redis消息队列时,若获取的当前任务为新增直播任务,则视频直播服务单元先解析直播任务,并检查已运行队列,判断直播任务是否已经启动;
若判断直播任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断直播任务未启动,则启动直播任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
在本实施方式中,用户需要进行视频实时播放作为直播任务启动触发条件,当用户需要进行视频实时播放时,中央控制单元根据客户端请求组织直播格式化数据,直播格式化数据中包括视频源地址、视频主辅流标记、音频标记和任务时间戳。
中央控制单元将组织好的直播格式化数据随机填写到redis库的任务消息队列中。
视频直播服务单元轮循对应redis库的消息队列,当获取到一个新增任务时,即视频直播服务单元获取的当前任务为新增直播任务时,视频直播服务单元解析直播任务,检查已运行队列,判断直播任务是否已经启动了,如果直播任务已经启动则丢弃当前任务并将redis任务队列中任务删除,如果直播任务没有启动则启动任务,并在已运行队列中添加当前任务信息,最后在redis消息队列中删除当前任务。
进一步地,当直播任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止直播任务;
视频直播服务单元轮循redis库的停止任务队列时,若停止直播任务的时间戳大于直播任务的时间戳,则视频直播服务单元停止直播任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
在本实施方式中,直播任务停止触发条件为用户结束视频实时播放,当用户结束视频实时播放时,中央控制单元在redis消息队列中创建停止直播任务。
视频直播服务单元轮循对应redis库的停止任务队列,视频直播服务单元根据时间戳判断是否停止直播任务,如果停止直播任务的时间戳大于直播任务的时间戳,此时需要停止直播任务,视频直播服务单元停止直播任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
在另一个实施例中,本发明还公开一种基于redis消息队列的分布式流媒体服务方法,该方法包括以下步骤:
中央控制单元接收请求端发送的请求,并将请求分类处理,将产生的任务添加到redis消息队列中;
视音频推送与转发服务单元、视频录像服务单元、录像回放服务单元和视频直播服务单元分别对redis消息队列进行轮循,并根据轮循结果启动或者停止对应的任务。
在本实施例中,中央控制单元、视音频推送与转发服务单元、视频录像服务单元、录像回放服务单元和视频直播服务单元其具体功能的实现,可以参照上述的基于redis消息队列的分布式流媒体服务系统,此处不再赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种基于redis消息队列的分布式流媒体服务系统,其特征在于,包括:
中央控制单元,用于接收请求端发送的请求并将请求分类处理,将产生的任务添加到redis消息队列中;
视音频推送与转发服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止推送与转发任务;
视频录像服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止录像任务;
录像回放服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止回放任务;
视频直播服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止直播任务;
当推送与转发任务启动触发条件成立时,中央控制单元将组织好的推送与转发格式化数据随机填写到redis消息队列中,推送与转发格式化数据包括视频源地址、视频主辅流标记、音频标记和任务时间戳;
视音频推送与转发服务单元轮循redis消息队列时,若获取的当前任务为新增推送与转发任务,则视音频推送与转发服务单元先解析推送与转发任务,并检查已运行队列,判断推送与转发任务是否已经启动;
若判断推送与转发任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断推送与转发任务未启动,则启动推送与转发任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
2.根据权利要求1所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
当推送与转发任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止推送与转发任务;
视音频推送与转发服务单元轮循redis库的停止任务队列时,若停止推送与转发任务的时间戳大于推送与转发任务的时间戳,则视音频推送与转发服务单元停止推送与转发任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
3.根据权利要求1或2所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
当录像任务启动触发条件成立时,中央控制单元将组织好的录像格式化数据随机填写到redis消息队列中,录像格式化数据包括视频源地址、视频主辅流标记、音频标记、任务时间戳、视频文件时长、保存位置和保存格式;
视频录像服务单元轮循redis消息队列时,若获取的当前任务为新增录像任务,则视频录像服务单元先解析录像任务,并检查已运行队列,判断录像任务是否已经启动;
若判断录像任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断录像任务未启动,则启动录像任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
4.根据权利要求3所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
当录像任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止录像任务;
视频录像服务单元轮循redis库的停止任务队列时,若停止录像任务的时间戳大于录像任务的时间戳,则视频录像服务单元停止录像任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
5.根据权利要求1或2所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
回放任务包括开启回放任务、停止回放任务和回放进度调整任务;
当开启回放任务启动触发条件成立时,中央控制单元将组织好的开启回放格式化数据随机填写到redis消息队列中,开启回放格式化数据包括回放的视频源和回放的时间段;
录像回放服务单元轮循redis消息队列时,若获取的当前任务为新增开启回放任务,则录像回放服务单元在视频存储中查找符合条件的视频文件,将所有符合条件的视频文件添加到开启回放任务中,并返回请求端回放句柄、播放时长和回放地址;
当回放进度调整任务启动触发条件成立时,中央控制单元将组织好的回放进度调整格式化数据随机填写到redis消息队列中,回放进度调整格式化数据包括回放句柄和调整后的播放时间点;
录像回放服务单元轮循redis消息队列时,若获取的当前任务为新增回放进度调整任务,则录像回放服务单元先解析回放进度调整任务,并检查已运行队列,判断回放进度调整任务是否已经启动;
若判断回放进度调整任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断回放进度调整任务未启动,则启动回放进度调整任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
6.根据权利要求5所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
当停止回放任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止回放任务;
录像回放服务单元轮循redis库的停止任务队列时,若停止回放任务的时间戳大于回放任务的时间戳,则录像回放服务单元停止回放任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
7.根据权利要求1或2所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
当直播任务启动触发条件成立时,中央控制单元将组织好的直播格式化数据随机填写到redis消息队列中,直播格式化数据包括视频源地址、视频主辅流标记、音频标记和任务时间戳;
视频直播服务单元轮循redis消息队列时,若获取的当前任务为新增直播任务,则视频直播服务单元先解析直播任务,并检查已运行队列,判断直播任务是否已经启动;
若判断直播任务已经启动,则丢弃当前任务,并删除redis消息队列中的当前任务;
若判断直播任务未启动,则启动直播任务,在已运行队列中添加当前任务信息,并删除redis消息队列中的当前任务。
8.根据权利要求7所述的基于redis消息队列的分布式流媒体服务系统,其特征在于,
当直播任务停止触发条件成立时,中央控制单元在redis消息队列中创建停止直播任务;
视频直播服务单元轮循redis库的停止任务队列时,若停止直播任务的时间戳大于直播任务的时间戳,则视频直播服务单元停止直播任务,并将已运行队列中对应的记录删除,同时清理停止任务队列。
CN201811114337.XA 2018-09-25 2018-09-25 基于redis消息队列的分布式流媒体服务系统 Active CN109194678B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811114337.XA CN109194678B (zh) 2018-09-25 2018-09-25 基于redis消息队列的分布式流媒体服务系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811114337.XA CN109194678B (zh) 2018-09-25 2018-09-25 基于redis消息队列的分布式流媒体服务系统

Publications (2)

Publication Number Publication Date
CN109194678A CN109194678A (zh) 2019-01-11
CN109194678B true CN109194678B (zh) 2021-01-15

Family

ID=64909666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811114337.XA Active CN109194678B (zh) 2018-09-25 2018-09-25 基于redis消息队列的分布式流媒体服务系统

Country Status (1)

Country Link
CN (1) CN109194678B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901619B (zh) * 2020-07-23 2023-10-31 北京达佳互联信息技术有限公司 一种消息推送方法和装置
CN117453150B (zh) * 2023-12-25 2024-04-05 杭州阿启视科技有限公司 录像存储调度服务多实例的实现方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780768A (zh) * 2012-06-29 2012-11-14 北京奇虎科技有限公司 一种大并发量请求的处理方法及处理系统
CN103312624A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 一种消息队列服务系统和方法
CN103345423A (zh) * 2013-07-03 2013-10-09 北京京东尚科信息技术有限公司 一种处理异步任务的方法和系统
CN103516580A (zh) * 2012-06-26 2014-01-15 北京大学 一种基于消息队列实现消息接收与转发的方法及系统
CN105824697A (zh) * 2016-03-23 2016-08-03 浪潮通信信息系统有限公司 一种基于队列的分布式多级调度方法
CN107864125A (zh) * 2017-10-26 2018-03-30 苏州市伏泰信息科技股份有限公司 环卫统一监控管理平台

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312624A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 一种消息队列服务系统和方法
CN103516580A (zh) * 2012-06-26 2014-01-15 北京大学 一种基于消息队列实现消息接收与转发的方法及系统
CN102780768A (zh) * 2012-06-29 2012-11-14 北京奇虎科技有限公司 一种大并发量请求的处理方法及处理系统
CN103345423A (zh) * 2013-07-03 2013-10-09 北京京东尚科信息技术有限公司 一种处理异步任务的方法和系统
CN105824697A (zh) * 2016-03-23 2016-08-03 浪潮通信信息系统有限公司 一种基于队列的分布式多级调度方法
CN107864125A (zh) * 2017-10-26 2018-03-30 苏州市伏泰信息科技股份有限公司 环卫统一监控管理平台

Also Published As

Publication number Publication date
CN109194678A (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
US11350139B2 (en) Video live broadcast method and apparatus
JP5875725B2 (ja) コンテンツ再生情報推定装置及び方法及びプログラム
KR101108459B1 (ko) 수신기의 특성에 기초하여 컨텐츠를 전송하는 방법 및장치
JP4640723B2 (ja) 複数クライアントへの単一メディア・トラックのストリーミング
CN109729371B (zh) 一种基于hls协议多级管理的直播时移系统及方法
CN108366292B (zh) 一种基于流媒体的跨网络视频直播方法及系统
WO2012096372A1 (ja) コンテンツ再生装置、コンテンツ再生方法、配信システム、コンテンツ再生プログラム、記録媒体、およびデータ構造
US7525965B1 (en) Trick play for multicast streams
CN104023250B (zh) 基于流媒体的实时互动方法和系统
CN105282627A (zh) 一种获取直播视频切片的方法及服务器
US10820024B2 (en) Communication apparatus, communication data generation method, and communication data processing method
JP2015136060A (ja) 通信装置、通信データ生成方法、および通信データ処理方法
CN109194678B (zh) 基于redis消息队列的分布式流媒体服务系统
WO2023061060A1 (zh) 音视频码流的调度方法、系统、介质及电子装置
US8826345B2 (en) Method and an apparatus for data streaming
EP3096525B1 (en) Communication apparatus, communication data generation method, and communication data processing method
US20080068993A1 (en) Method and an apparatus for data streaming
KR101397183B1 (ko) 스트리밍 서비스에서의 재생 목록 파일 관리 방법 및 그 장치
US8811478B2 (en) Data transmission method and apparatus
US20140115117A1 (en) Webcasting method and apparatus
JP2007267144A (ja) 情報配信方法、サーバ装置およびプログラム
CN108600774B (zh) 基于二级分配的直播通道分配方法及播流方法
US20080062869A1 (en) Method and an apparatus for data streaming
CN116939132A (zh) 一种视频存储方法,终端及存储介质
JP6009501B2 (ja) データセグメントのオプションのブロードキャスト配信によるストリーミング

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 1812-1814, Bainaohui science and technology building, 1313 Gongnong Road, Chaoyang District, Changchun City, Jilin Province

Patentee after: Lianyu Heda Technology Co.,Ltd.

Address before: Room 1812-1814, Bainaohui science and technology building, 1313 Gongnong Road, Chaoyang District, Changchun City, Jilin Province

Patentee before: Jilin Lianyu Heda Technology Co.,Ltd.