基于RTMP和RTSP的流媒体转发和并发框架 一、概括
2017-12-28 13:24
1416 查看
概述:
本人从事流媒体工作已经有两年时间了,从开始的一无所知到现在的略窥门道,中间免不了看各位前辈的博客,并从中受益良多。我虽不才但是也有一些自己对流媒体方面的见解,希望分享给大家。这个框架的内容引用的所有的第三方开发包都是开源的在网上都可以下到。
流媒体的整个过程可以分为以下几个阶段:数据采集、数据处理、数据转发、流媒体服务并发、信令调度、资源发布。
数据采集:是从设备终端采集音频、视频等数据。数据采集因设备而异。有的设备支持共有协议(比如:ONVIF协议、RTSP协议等),这时侯我们用公有协议的SDK就可以轻松取流。有的设备不支持公有协议只有自己的私有协议,这时候需要设备的私有协议SDK针对开发。现在绝大多数网络摄像头都是支持共有协议的。
数据处理:在我们从设备端采集到数据我们会发现,设备端采集到的数据五法八门、奇奇怪怪。这个时候需要把采集到的数据转换成我们流媒体系统支持的格式。比如我们设定我们的流媒体系统只支持H264和AAC。那么就需要将所有采集到的视频数据都转换成H264格式,将所有采集到的音频数据转换成AAC格式。
数据转发:我们的流媒体系统是由很多个流媒体结点构成的,流媒体节点分布在不同的区域中,同一资源要在所有区域提供给用户,需要将同一资源转发给所有的流媒体节点。
流媒体并发:流媒体并发服务器是对用户提供服务的最终接口。它需要拥有很高的并发能力来满足大量用户的服务需求。这个部分我使用nginx-rtmp-module做并发服务。他的并发能力现在还没有测试。但是它可以发送RTMP和HLS两种流,我们很容易在WEB或客户端播放流媒体数据。
信令调度:在流媒体系统中信令调度的作用是资源分配,流媒体节点组网等工作,它是流媒体系统的大脑。信令调度可以是集中式的也可以是分布式的。
资源发布:通过WEB或者客户端发布资源,就像YY等直播平台一样。信令调度和资源发布放在一起就是一个流媒体平台。用户通过资源发布服务获取资源列表,选择自己需要的资源。
框架框架图:
后续会逐步分析各个阶段的技术细节和具体实现,敬请期待。
本人从事流媒体工作已经有两年时间了,从开始的一无所知到现在的略窥门道,中间免不了看各位前辈的博客,并从中受益良多。我虽不才但是也有一些自己对流媒体方面的见解,希望分享给大家。这个框架的内容引用的所有的第三方开发包都是开源的在网上都可以下到。
流媒体的整个过程可以分为以下几个阶段:数据采集、数据处理、数据转发、流媒体服务并发、信令调度、资源发布。
数据采集:是从设备终端采集音频、视频等数据。数据采集因设备而异。有的设备支持共有协议(比如:ONVIF协议、RTSP协议等),这时侯我们用公有协议的SDK就可以轻松取流。有的设备不支持公有协议只有自己的私有协议,这时候需要设备的私有协议SDK针对开发。现在绝大多数网络摄像头都是支持共有协议的。
数据处理:在我们从设备端采集到数据我们会发现,设备端采集到的数据五法八门、奇奇怪怪。这个时候需要把采集到的数据转换成我们流媒体系统支持的格式。比如我们设定我们的流媒体系统只支持H264和AAC。那么就需要将所有采集到的视频数据都转换成H264格式,将所有采集到的音频数据转换成AAC格式。
数据转发:我们的流媒体系统是由很多个流媒体结点构成的,流媒体节点分布在不同的区域中,同一资源要在所有区域提供给用户,需要将同一资源转发给所有的流媒体节点。
流媒体并发:流媒体并发服务器是对用户提供服务的最终接口。它需要拥有很高的并发能力来满足大量用户的服务需求。这个部分我使用nginx-rtmp-module做并发服务。他的并发能力现在还没有测试。但是它可以发送RTMP和HLS两种流,我们很容易在WEB或客户端播放流媒体数据。
信令调度:在流媒体系统中信令调度的作用是资源分配,流媒体节点组网等工作,它是流媒体系统的大脑。信令调度可以是集中式的也可以是分布式的。
资源发布:通过WEB或者客户端发布资源,就像YY等直播平台一样。信令调度和资源发布放在一起就是一个流媒体平台。用户通过资源发布服务获取资源列表,选择自己需要的资源。
框架框架图:
后续会逐步分析各个阶段的技术细节和具体实现,敬请期待。
相关文章推荐
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- rtsp h264 流媒体 高并发 系统 设计 录像 视频合成 视频转发 视频点播 快进 快退 单步播放
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)
- javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)
- 流媒体sos rtsp hls h264 高并发 低延时 系统 设计 录像 视频合成 转发 点播 快进 快退 单步播放 分布式集群 服务搭建
- 基于DSS的先侦听后推送式流媒体转发
- 流媒体(RTMP,RTSP,HLS)
- 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)
- 前端播放流媒体(RTMP,RTSP,HLS)
- 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)
- 基于live555的流媒体代理转发服务器
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- SPServer : 一个基于线程池(包括HAHS和LF)的高并发 server 框架
- 基于DSS的先侦听后推送式流媒体转发
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)