精华内容
下载资源
问答
  • 流媒体服务器

    千次阅读 2016-07-18 18:25:45
    但现有公开文献所报道 的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的研究。本文对流媒体服务器技术的研究重点在于如何建立 一个服务器,并且在实现流媒体传输的...
    1 引言 

      随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术。但现有公开文献所报道 的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的研究。本文对流媒体服务器技术的研究重点在于如何建立 一个服务器,并且在实现流媒体传输的两个基本协议RTP/RTCP的基础上构建一个基本的流媒体服务器。

    2 流媒体技术简介

      2.1 “流”的定义

      现在网上传输视频、音频主要有下载(Download)和流式传输(Streaming)两种方式。流式传输是连续传送视/音频信号,当流媒 体在客户机播放时其余部分在后台继续下载。流式传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以 减少对传输带宽的需求。“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系。

      在Internet中使用流式传输技术的连续时基媒体就称为流媒体,通常也将其视频与音频称为视频流和音频流。实现流式传输一般都需要专用服务器和播放器。

      2.2 流媒体系统组件

      流媒体是由各种不同软件构成的,这些软件在各个不同层面上互相通信,基本的流媒体系统包含以下3个组件:

      播放器(Player),用来播放流媒体的软件。

      服务器(Server),用来向用户发送流媒体的软件。

      编码器(Encode),用来将原始的音频视频转化为流媒体格式的软件。

      这些组件之间通过特定的协议互相通信,按照特定的格式互相交换文件数据。有些文件中包含了由特定编解码器解码的数据,这种编解码器通过特定算法压缩文件的数据量。

    3 流媒体服务器的基本功能和服务方式

      3.1 流媒体服务器的主要功能

      (1)响应客户的请求,把媒体数据传送给客户。流媒体服务器在流媒体传送期间必须与客户的播放器保持双向通信(这种通信是必需的,因为客户可能随时暂停或快放一个文件)。

      (2)响应广播的同时能够及时处理新接收的实时广播数据,并将其编码。

      (3)可提供其他额外功能,如:数字权限管理(DRM),插播广告,分割或镜像其他服务器的流,还有组播。

      3.2 流媒体服务器的服务方式

      (1)单播。在客户端与媒体服务器之间建立一个单独的数据通道,从1台服务器送出的每个数据包只能传送给1个客户机。

      (2)组播。在以组播技术构建的网络上,允许路由器一次将数据包复制到多个通道上。

      (3)点播与广播。点播连接是客户端与服务器之间的主动的连接,在点播连接中,用户通过选择内容项目来初始化客户端连接,用户可以开始、停 止、后退、快进或暂停流。广播指的是用户被动地接收流,在广播过程中,数据包的单独一个拷贝将发送给网络上的所有用户,客户端接收流,但不能控制流。

    4 构建流媒体服务器

      4.1 RTP/RTCP协议简介

      实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF(Internet工程任务组)作为RFC1889发布。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同 步。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠 的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。

      实时传输控制协议RTCP(Realtime Transport Control Protocol):负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数 量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈 和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。

      RTCP主要有4个功能:

      (1)用反馈信息的方法来提供分配数据的传送质量,这种反馈可以用来进行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题;

      (2)为RTP源提供一个永久性的CNAME(规范性名字)的传送层标志,因为在发现冲突或者程序更新重启时SSRC(同步源标识)会变,需要一个运作痕迹,在一组相关的会话中接收方也要用CNAME来从一个指定的与会者得到相联系的数据流(如音频和视频);

      (3)根据与会者的数量来调整RTCP包的发送率;

      (4)传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功能。

      4.2 RTP/RTCP工作过程

      工作时,RTP协议从上层接收流媒体信息码流(如H.263),装配成RTP数据包发送给下层,下层协议提供RTP和RTCP的分流。如在 UDP中, RTP使用一个偶数号端口,则相应的RTCP使用其后的奇数号端口。RTP数据包没有长度限制,它的最大包长只受下层协议的限制。

      4.3 服务器的算法

      服务器软件模型主要有两种,即并发服务器和循环服务器。循环服务器(Iterative Server)是指在一个时刻只处理一个请求的服务器。并发服务器(Concurrent Server)是指在一个时刻可以处理多个请求的服务器。事实上,多数服务器没有用于同时处理多个请求的冗余设备,而是提供一种表面上的并发性,方法是依 靠执行多个线程,每个线程处理一个请求,从客户的角度看,服务器就像在并发地与多个客户通信。

      由于流媒体服务时间的不定性和数据交互实时性的请求,流媒体服务器一般采用并发服务器算法。本文构建了一个基本的流媒体服务器,能够同时响应 多个用户的请求,把本地硬盘流媒体文件或实时数据流(H.263格式)发送给用户。在应用中,把客户分为请求实时数据的实时客户和请求文件数据的文件客户 两类。主要算法为:

      (1)打开设备,分配资源。当设备准备好时,创建一个RTP实时服务线程和一个RTCP实时服务线程。

      (2)创建一个UDP套接字并将其绑定到所提供服务的地址之上。

      (3)反复调用接收模块,接收来自客户的RTCP报告,根据其类型做出响应。对新实时客户的请求,把客户地址添加到实时服务的客户列表中,对 新文件客户的请求,则创建一个新RTP文件服务线程和一个新RTCP文件服务线程;对已经在服务中的客户则根据RTCP报告的内容调整服务。

      RTP实时服务线程1:初始化客户列表和RTP首部。

      RTP实时服务线程2:从设备读取媒体数据,把数据发送给实时服务列表中的客户。

      RTP实时服务线程3:更新RTP首部和统计数据。

      RTP实时服务线程4:计算延时,重复第二步。

      RTCP实时服务线程1:初始化RTCP首部。

      RTCP实时服务线程2:发送发送方报告给实时服务列表中的客户。

      RTCP实时服务线程3:计算延时,重复第二步。

      RTP文件服务线程1:初始化RTP首部。

      RTP文件服务线程2.:从文件读取媒体数据,把数据发送给客户。

      RTP文件服务线程3:更新已发送数据的统计信息,为生成发送方报告做准备。

      RTP文件服务线程4:计算延时,调整发送速度,正常情况下开始重复第二步。

      RTCP文件服务线程1:初始化RTCP首部,发送一个源描述(SDES)报文给客户。

      RTCP文件服务线程2:根据已发送数据的统计信息生成发送方报告,发送给客户。

      RTCP文件服务线程3:计算延时,正常情况下开始重复第一步。

    5 流媒体服务器实现中应注意的问题

      5.1 会话和流的两级分用

      一个RTP会话(Session)包括传给某个指定目的地对(Destination Pair)的所有通信量,发送方可能包括多个。而从同一个同步源发出的RTP分组序列称为流(Stream),一个RTP会话可能包含多个RTP流。一个 RTP分组在服务器端发送出去的时候总是要指定属于哪个会话和流,在接收时也需要进行两级分用,即会话分用和流分用。只有当RTP使用同步源标识 (SSRC)和分组类型(PTYPE)把同一个流中的分组组合起来,才能够使用序列号(Sequence Number)和时间戳(Timestamp)对分组进行排序和正确回放。

      5.2 多线程的管理

      并发服务器模式要求用多线程来提供服务,所以多线程的管理十分重要。在本文构建的服务器中,不同客户的请求和反馈都由服务器的主线程处理,由 于实时数据的独有性,不同实时客户可以共用一个RTP实时服务线程和一个RTCP实时服务线程,这样可以大大减小服务器的负担,而每个文件客户由于请求的 文件不同,相应地对速度和开始时间的要求都可能不同,所以需要有自己独有的RTP文件服务线程和RTCP文件服务线程。

      RTP服务线程负责把实时数据流发送给客户, RTCP服务线程根据RTP线程的统计数据,产生发送方报告给客户。RTP线程和RTCP线程之间通过一段共享内存交互统计数据,对共享内存必须设置互斥 体进行保护,防止出现错误读写。在这种方式下,服务器可以根据每个用户的不同请求和具体情况方便地提供不同的服务。

      5.3 时间戳的处理

      时间戳字段是RTP首部中说明数据包时间的同步信息,是数据能以正确的时间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样时 间 (Sampling Instant),要求发送方时间戳的时钟是连续、单调增长的,即使在没有数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳的增 长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数据丢失,而且只要比较前后分组的时间戳的差异,就可以确定输出的时间间隔。

      RTP规定一次会话的初始时间戳必须随机选择,但协议没有规定时间戳的单位,也没有规定该值的精确解释,而是由负载类型来确定时钟的颗粒,这样各种应用类型可以根据需要选择合适的输出计时精度。

      在RTP传输音频数据时,一般选定逻辑时间戳速率与采样速率相同,但是在传输视频数据时,必须使时间戳速率大于每帧的一个滴答。如果数据是在同一时刻采样的,协议标准还允许多个分组具有相同的时间戳值。

      5.4 媒体数据发送速度的控制

      由于RTP协议没有规定RTP分组的长度和发送数据的速度,因而需要根据具体情况调整服务器端发送媒体数据的速度。对来自设备的实时数据可以 采取等时间间隔访问设备缓冲区,在有新数据输入时发送数据的方式,时间戳的设置相对容易。对已经录制好的本地硬盘上的媒体文件,以H.263格式的文件为 例,由于文件本身不包含帧率信息,所以需要知道录制时的帧率或者设置一个初始值,在发送数据的时候找出发送数据中的帧数目,根据帧率和预置值来计算时延, 以适当的速度发送数据并设置时间戳信息。

      5.5 多种流同步

      RTCP的一个关键作用就是能让接收方同步多个RTP流,例如:当音频与视频一起传输的时候,由于编码的不同,RTP使用两个流分别进行传 输,这样两个流的时间戳以不同的速率运行,接收方必须同步两个流,以保证声音与影像的一致。为能进行流同步,RTCP要求发送方给每个传送一个唯一的标识 数据源的规范名(Canonical Name),尽管由一个数据源发出的不同的流具有不同的同步源标识(SSRC),但具有相同的规范名,这样接收方就知道哪些流是有关联的。而发送方报告报 文所包含的信息可被接收方用于协调两个流中的时间戳值。发送方报告中含有一个以网络时间协议NTP(Network Time Protocol)格式表示的绝对时间值,接着RTCP报告中给出一个RTP时间戳值,产生该值的时钟就是产生RTP分组中的TimeStamp字段的那 个时钟。由于发送方发出的所有流和发送方报告都使用同一个绝对时钟,接收方就可以比较来自同一数据源的两个流的绝对时间,从而确定如何将一个流中的时间戳 值映射为另一个流中的时间戳值。

    6 结论

      流媒体技术的应用日益广泛,对流媒体技术的研究具有很大的实际意义,本文通过对RTP/RTCP协议的研究,分析流媒体服务器的一般功能和结 构,给出构建一个基本的流媒体服务器的实现方案,实验证明可以同时满足多个实时和文件客户的要求,并已经应用于一个远程监控系统中。
    展开全文
  • 本文档主要介绍海康威视设备直播预览RTSP、录像回放RTSP、流媒体取流的RTSP URL和IE直接预览、回放的HTTP URL。 RTSP为取流协议,取到码流后需要解码显示,可以通过VLC播放器或者EasyPlayer播放器进行测试,IE等...

    本文档主要介绍海康威视设备直播预览RTSP、录像回放RTSP、流媒体取流的RTSP URL和IE直接预览、回放的HTTP URL。

    RTSP为取流协议,取到码流后需要解码显示,可以通过VLC播放器或者EasyPlayer播放器进行测试,IE等浏览器网页不支持RTSP协议直接取流预览或者回放,需要安装OCX插件,这也是目前大部分安防厂家的做法。

    目前也有很多支持RTSP进行网页无插件直播的流媒体服务,例如EasyNVR就是专门做这种安防RTSP转互联网RTMP/HLS(m3u8)/FLV无插件H5直播的流媒体服务中间件;

    网页上需要跳过登录界面直接访问我们设备的预览或者回放画面,可以使用文档中所述的HTTP的URL实现。

    注:

    1)URL中“:”“?”“&”等符号均为英文半角。

    2)RTSP取流和HTTP 访问URL都需要设备支持,如下所示两种控件的设备均可支持。

     

    一、海康RTSP取流URL地址规则

    1.1 预览取流

    设备预览取流的RTSP URL有新老版本,2012年之前的设备(比如V2.0版本的Netra设备)支持老的取流格式,之后的设备新老取流格式都支持(这里不得不再说一下海康是国内视频硬件独一档)

    • 【海康老版本,目前已经非常少见了】

    URL规定:

    rtsp://username:password@<ipaddress>/<videotype>/ch<number>/<streamtype>

    注:VLC或者EasyPlayer可以支持解析URL里的用户名密码,实际发给设备的RTSP请求URL不支持带用户名密码。

    详细描述:

     

    举例说明:

    DS-9016HF-ST的IP通道01主码流:

    rtsp://admin:12345@172.6.22.106:554/h264/ch33/main/av_stream

    DS-9016HF-ST的模拟通道01子码流:

    rtsp://admin:12345@172.6.22.106:554/h264/ch1/sub/av_stream

    DS-9016HF-ST的零通道主码流(零通道无子码流):

    rtsp://admin:12345@172.6.22.106:554/h264/ch0/main/av_stream

    DS-2DF7274-A的第三码流:

     rtsp://admin:12345@172.6.10.11:554/h264/ch1/stream3/av_stream

     

    • 【海康新版本,DS系列】

    URL规定:

    rtsp://username:password@<address>:<port>/Streaming/Channels/<id>(?parm1=value1&parm2-=value2…)

    注:VLC或者EasyPlayer可以支持解析URL里的用户名密码,实际发给设备的RTSP请求不支持带用户名密码。

    详细描述:

     

    举例说明:

    DS-9632N-ST的IP通道01主码流:

    rtsp://admin:12345@172.6.22.234:554/Streaming/Channels/101?transportmode=unicast

    DS-9016HF-ST的IP通道01主码流:

    rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/1701?transportmode=unicast

    DS-9016HF-ST的模拟通道01子码流:

    rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/102?transportmode=unicast  (单播)

    rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/102?transportmode=multicast (多播)

    rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/102 (?后面可省略,默认单播)

    DS-9016HF-ST的零通道主码流(零通道无子码流):

    rtsp://admin:12345@172.6.22.106:554/Streaming/Channels/001

    DS-2DF7274-A的第三码流:

    rtsp://admin:12345@172.6.10.11:554/Streaming/Channels/103

    注:前面老URLNVR>=64路的除外)的IP通道从33开始;新URL,通道号全部按顺序从1开始。

     

    1.2 录像回放取流RTSP规则

    URL规定:

    rtsp://username:password@<address>:<port>/Streaming/tracks/<id>(?parm1=value1&parm2-=value2…)

    注:VLC或者EasyPlayer可以支持解析URL里的用户名密码,实际发给设备的RTSP请求不支持带用户名密码。

    详细描述:

     

    举例说明:

    DS-9016HF-ST的模拟通道01:

    rtsp://admin:12345@172.6.22.106:554/Streaming/tracks/101?starttime=20120802t063812z&endtime=20120802t064816z

    DS-9016HF-ST的IP通道01:

    rtsp://admin:12345@172.6.22.106:554/Streaming/tracks/1701?starttime=20131013t093812z&endtime=20131013t104816z

    表示以单播形式回放指定设备的通道中的录像文件,时间范围是starttimeendtime,其中starttimeendtime的格式要符合ISO 8601。具体格式是YYYYMMDDTHHmmSS.fractionZY是年,M是月,D是日,T是时间分格符,H是小时,M是分,S是秒,Z是可选的、表示Zulu(GMT) 时间。

    注意:很多时候我们用命令行来验证RTSP回放流的时候,一定要将整个RTSP-URL用双引号包括起来,“RTSP-URL”,因为CMD里面&符号是特殊字符,不用双引号包起来,整个地址会被切割分成几个部分;

     

    1.3 海康流媒体服务取流RTSP规则

    • 【流媒体V4.0】iVMS-4200 V2.0配套流媒体服务器

    URL描述:

    注:Devicehc8为固定字符,不可更改。

     

    举例说明:

    通过流媒体服务器172.6.24.15从设备172.6.22.106取通道01主码流:

    rtsp://172.6.24.15:554/Devicehc8://172.6.22.106:8000:0:0?username=admin&password=12345

     

    • 【流媒体V2.0】

    URL描述:

    举例说明:

    rtsp://172.6.24.15:554/172.6.22.106:8000:HIK-DS8000HC:2:0:admin:12345/av_stream

    注:流媒体2.0的取流URL不是标准的RTSP协议,必须使用流媒体SDK(客户端)才支持取流的,放在这里只是为了给流媒体4.0做参照的。

     

    二、通用摄像机RTSP取流URL地址规则

    现在实际上现在已经不用再这么复杂地获取RTSP的取流地址了,因为大部分的IPC或者NVR都基本支持了Onvif协议,通过Onvif Device Test Tool或者EasyNVR这样的工具,可以直接发现到设备的RTSP流地址,不用再自己来根据不同厂家的规则拼接了,以EasyNVR为例:

    EasyNVR

    EasyNVR

     

    EasyNVR

     

    ✈ 更多视频解决方案资源汇总

    © TSINGSEE Team:http://www.tsingsee.com
    青犀TSINGSEE

    展开全文
  • 入行这么多年,深深觉得流媒体服务器的未来也将伴随着宽带应用和网络发展的总趋势,毕竟科技改变生活,未来流媒体也将占据网络的主流,视频流媒体服务器的功能和作用也将越来越丰富。 在未来,流媒体服务器将转向...

    入行这么多年,深深觉得流媒体服务器的未来也将伴随着宽带应用和网络发展的总趋势,毕竟科技改变生活,未来流媒体也将占据网络的主流,视频流媒体服务器的功能和作用也将越来越丰富。

    在未来,流媒体服务器将转向高度分布式的系统结构,这种体系结构在地理上是分布的,但逻辑上是单一的系统映像。在未来,一方面会有高性能的网络存储设备,另一方面会有高度智能化的协议控制和处理设备。这将是未来流媒体服务器扩展的极好方向。那么现阶段,流媒体服务器的作用和功能都有什么?

    DSS5.png

    说白了,流媒体服务器是运营商向用户提供视频服务的关键渠道,它可以收集、缓存、调度和广播媒体内容,它是流媒体使用系统的基础,也是流媒体使用系统的重要组成部分。

    流媒体服务器的主要功能是通过流媒体协议(RTP/RTSP、MMS、RTMP等)向客户端传输视频文件,供用户在线观看。还可以从视频采集和压缩软件接收实时视频流,然后将流媒体协议直播给客户端。该技术广泛应用于视频点播、视频会议、远程教学、远程医疗和在线直播系统中。

    9861d863918551af3e401f8084309e4e.png

    而现在,我们的视频流媒体服务器已经兼具视频点播、监控视频流实时传输、视频录像回看等功能,我们的流媒体解决方案能够高效进行视频管理,提供编程语言无关化的RESTfulAPI接口,可以很简单的进行二次开发,并且各模块间无缝对接,亦可将流媒体服务器与其他第三方平台对接,组合灵活自由。

    DSS4.png

    展开全文
  • 今天搭建了一个非常简单的流媒体服务器,使用ffmpeg推流到nginx服务器,并用VLC播放器订阅这股媒体流播放出来。 1. 安装nginx 1.1 拉取nginx到本地,执行命令: brew tap homebrew/nginx 如果提示brew不识别,...

    目录

    前言

    正文

    1. 安装nginx

    2. 启动nginx

    3. 测试nginx


    前言

    今天搭建了一个非常简单的流媒体服务器,使用ffmpeg推流到nginx服务器,并用VLC播放器订阅这股媒体流播放出来。

    正文

    1. 安装nginx

    1.1 拉取nginx到本地,执行命令:

    brew tap homebrew/nginx

    如果提示brew不识别,执行如下命令:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    如果提示错误:

    Error: homebrew/nginx was deprecated. This tap is now empty as all its formulae were migrated.

    则执行如下命令:

    brew tap denji/nginx

    1.2  安装nginx及相关模块

    安装nginx以及rtmp协议模块,执行如下命令:

    brew install nginx-full --with-rtmp-module

    如果提示如下报错:

    ==> Installing nginx-full from denji/nginx
    
    Error: Xcode alone is not sufficient on High Sierra.
    
    Install the Command Line Tools:
    
      xcode-select --install

    则执行命令:

    xcode-select --install

    出现询问弹窗,点击同意,提示如图的弹窗后表示安装成功。

    之后继续执行上一个命令,结果如下:

    ==> Installing nginx-full from denji/nginx
    ==> Installing dependencies for denji/nginx/nginx-full: pcre, openssl and rtmp-nginx-module
    ==> Installing denji/nginx/nginx-full dependency: pcre
    ==> Downloading https://homebrew.bintray.com/bottles/pcre-8.42.high_sierra.bottl
    ######################################################################## 100.0%
    ==> Pouring pcre-8.42.high_sierra.bottle.tar.gz
    ?  /usr/local/Cellar/pcre/8.42: 204 files, 5.3MB
    ==> Installing denji/nginx/nginx-full dependency: openssl
    ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2p.high_sierra.
    ######################################################################## 100.0%
    ==> Pouring openssl-1.0.2p.high_sierra.bottle.tar.gz
    ==> Caveats
    A CA file has been bootstrapped using certificates from the SystemRoots
    keychain. To add additional certificates (e.g. the certificates added in
    the System keychain), place .pem files in
      /usr/local/etc/openssl/certs
    
    and run
      /usr/local/opt/openssl/bin/c_rehash
    
    openssl is keg-only, which means it was not symlinked into /usr/local,
    because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
    
    If you need to have openssl first in your PATH run:
      echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    
    For compilers to find openssl you may need to set:
      export LDFLAGS="-L/usr/local/opt/openssl/lib"
      export CPPFLAGS="-I/usr/local/opt/openssl/include"
    
    For pkg-config to find openssl you may need to set:
      export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
    
    ==> Summary
    ?  /usr/local/Cellar/openssl/1.0.2p: 1,793 files, 12.3MB
    ==> Installing denji/nginx/nginx-full dependency: rtmp-nginx-module
    ==> Downloading https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive
    ==> Downloading from https://codeload.github.com/sergey-dryabzhinsky/nginx-rtmp-
    ######################################################################## 100.0%
    ==> Downloading https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/compare
    ######################################################################## 100.0%
    ==> Patching
    ==> Applying v1.1.7.10...504b9ee.diff
    patching file .gitignore
    patching file README.md
    patching file config
    patching file dash/ngx_rtmp_dash_module.c
    patching file doc/README.md
    patching file doc/directives.md
    patching file hls/ngx_rtmp_hls_module.c
    patching file hls/ngx_rtmp_mpegts.c
    patching file hls/ngx_rtmp_mpegts.h
    patching file hls/ngx_rtmp_mpegts_crc.c
    patching file hls/ngx_rtmp_mpegts_crc.h
    patching file ngx_rtmp.c
    patching file ngx_rtmp_access_module.c
    patching file ngx_rtmp_amf.c
    patching file ngx_rtmp_auto_push_module.c
    patching file ngx_rtmp_cmd_module.h
    patching file ngx_rtmp_codec_module.c
    patching file ngx_rtmp_core_module.c
    patching file ngx_rtmp_eval.c
    patching file ngx_rtmp_exec_module.c
    patching file ngx_rtmp_handshake.c
    patching file ngx_rtmp_init.c
    patching file ngx_rtmp_live_module.c
    patching file ngx_rtmp_live_module.h
    patching file ngx_rtmp_netcall_module.c
    patching file ngx_rtmp_notify_module.c
    patching file ngx_rtmp_record_module.c
    patching file ngx_rtmp_record_module.h
    patching file ngx_rtmp_shared.c
    patching file ngx_rtmp_version.h
    ?  /usr/local/Cellar/rtmp-nginx-module/1.1.7.11-dev_3: 94 files, 1.4MB, built in 21 seconds
    ==> Installing denji/nginx/nginx-full --with-rtmp-module
    ==> Downloading https://nginx.org/download/nginx-1.15.6.tar.gz
    ######################################################################## 100.0%
    ==> ./configure --prefix=/usr/local/Cellar/nginx-full/1.15.6 --with-http_ssl_mod
    ==> make install
    ==> Caveats
    Docroot is: /usr/local/var/www
    
    The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
    nginx can run without sudo.
    
    nginx will load all files in /usr/local/etc/nginx/servers/.
    
    - Tips -
    Run port 80:
     $ sudo chown root:wheel /usr/local/opt/nginx-full/bin/nginx
     $ sudo chmod u+s /usr/local/opt/nginx-full/bin/nginx
    Reload config:
     $ nginx -s reload
    Reopen Logfile:
     $ nginx -s reopen
    Stop process:
     $ nginx -s stop
    Waiting on exit process
     $ nginx -s quit
    
    To have launchd start denji/nginx/nginx-full now and restart at login:
      brew services start denji/nginx/nginx-full
    Or, if you don't want/need a background service you can just run:
      nginx
    ==> Summary
    ?  /usr/local/Cellar/nginx-full/1.15.6: 8 files, 1.2MB, built in 1 minute
    ==> Caveats
    ==> openssl
    A CA file has been bootstrapped using certificates from the SystemRoots
    keychain. To add additional certificates (e.g. the certificates added in
    the System keychain), place .pem files in
      /usr/local/etc/openssl/certs
    
    and run
      /usr/local/opt/openssl/bin/c_rehash
    
    openssl is keg-only, which means it was not symlinked into /usr/local,
    because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
    
    If you need to have openssl first in your PATH run:
      echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    
    For compilers to find openssl you may need to set:
      export LDFLAGS="-L/usr/local/opt/openssl/lib"
      export CPPFLAGS="-I/usr/local/opt/openssl/include"
    
    For pkg-config to find openssl you may need to set:
      export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
    
    ==> nginx-full
    Docroot is: /usr/local/var/www
    
    The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
    nginx can run without sudo.
    
    nginx will load all files in /usr/local/etc/nginx/servers/.
    
    - Tips -
    Run port 80:
     $ sudo chown root:wheel /usr/local/opt/nginx-full/bin/nginx
     $ sudo chmod u+s /usr/local/opt/nginx-full/bin/nginx
    Reload config:
     $ nginx -s reload
    Reopen Logfile:
     $ nginx -s reopen
    Stop process:
     $ nginx -s stop
    Waiting on exit process
     $ nginx -s quit
    
    To have launchd start denji/nginx/nginx-full now and restart at login:
      brew services start denji/nginx/nginx-full
    Or, if you don't want/need a background service you can just run:
      nginx

     

    2. 启动nginx

    至此,nginx流媒体服务器就安装成功了。接下来运行nginx,运行如下命令:

    nginx
    

     测试nginx服务器是否可用,打开浏览器,输入http://localhost:8080 回车。如果出现下图的信息,则表示nginx服务器可用。

     

    3. 测试nginx

    rtmp流媒体服务器启动后,就可以使用ffmpeg向服务器推流了。

    具体命令请参考:

    ffmpeg -re -stream_loop -1 -i 凉凉-MV.mp4 -vcodec copy -acodec copy -f flv rtmp://localhost:1935/test/live

    可以参考文章:https://liuzhen.blog.csdn.net/article/details/89382823。 

    展开全文
  • 免费流媒体服务器(AMS3.0 非AdobeMediaServer)

    千次阅读 多人点赞 2020-07-13 14:04:02
    自己从事流媒体近20载, 从没有可用的流媒体服务器到现在服务器遍地开花. 但尽管开源服务器众多,功能强大, 但却没有可以直接拿来使用的. 原因是配置安装困难,没有自己想要的接口,很难与现有系统对接. 为解决这个...
  • 高性能流媒体服务器

    千次阅读 2019-06-20 19:33:51
    随着视频应用的兴起,各行各业都在使用流媒体视频...通过google或者百度,我们可以搜索到很多款流媒体服务软件,免费或者收费的都有,下面推荐一款我们团队花费很多年开发的这套专业的流媒体服务器,相信你对比测试...
  • ##第二步:安装流媒体服务 免费获得试用安装包,加入QQ群 615081503 群文件里有试用安装包,极速安装,下载解压一键启动即可,支持Windows和Linux双系统。 ##第三步:创建直播间 选择 【直播服务】-》视频直播 ,...
  • 流媒体服务器总结

    千次阅读 2016-06-15 09:08:33
    最近一直研究流媒体服务器的搭建及使用,今天就简单整理下方便以后查阅。 一:企业级的流媒体平台框架:EasyDarwin EasyDarwin是在Apple开源流媒体服务器Darwin Streaming Server(v6.0.3)基础上进行...
  • 主流开源流媒体服务器收集

    千次阅读 2017-06-03 17:59:45
    流媒体解决方案 Live555 流媒体平台框架 EasyDarwin 实时流媒体播放服务器程序DarwinStreamingSrvr 流媒体实时传输开发包 jrtplib 多媒体处理工具 ffmpeg 多媒体编码工具包Libav Flash流媒体服务器 Red5 ...
  • 用VLC搭建简单的流媒体服务器

    万次阅读 2018-04-24 11:11:25
    在做视频传输客户端开发的时候,经常需要用到流媒体服务,VLC有着非常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。这里介绍一种使用图形化界面搭建RTSP流媒体服务的应用。(1)打开一个本地的流文件(2)...
  • 视频流媒体服务

    千次阅读 2019-06-19 14:04:07
    背景 流媒体,又叫流式媒体,是边传边播...在做视频传输客户端开发的时候,经常需要用到流媒体服务,VLC有着非常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。这里介绍一种使用图形化界面搭建RTSP流媒体服...
  • 拉模式转发拉模式转发,顾名思义就是服务器主动从源端(IPCamera、NVR、或者其他流媒体服务器)通过RTSP/RTP协议将流媒体音视频数据拉取到流媒体转发服务器,再通过内部分发调度机制,分发给请求转发的客户端的过程...
  • 经过春节前后将近2个月的开发和稳定调试、测试,EasyDarwin开源流媒体服务器终于成功将底层select网络模型修改优化成epoll网络模型,将EasyDarwin流媒体服务器在网络处理的效率上提升到了另一个档次。 众所周知,...
  • TMSS流媒体服务器

    千次阅读 2012-09-21 10:14:48
    TMSS流媒体服务器是一款具备高性能,扩展性强,轻量级,使用便捷等特点的流媒体服务平台。通过使用TMSS流媒体服务器,用户可对目前绝大多数主流的流媒体播放软件提供包括标准的音视频直播,点播以及远程录制等功能。...
  • 目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等,我们应该怎么选择呢? 正文 今天这篇文章主要介绍SRS、EasyDarwin、ZLMediaKit和Monibuca的一些对比情况,可以...
  • LiveQing流媒体服务器软件,提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作。 其中,点播功能主要包含:上传、转码、分发。直播功能,主要包含:直播、录像, 直播支持RTMP输入,RTMP/...
  • 可以将**鉴权直播**(app=hls)和**拉转直播**(app=vlive),进行 RTMP 转推,将流发布 到远程的其他的流媒体服务器,这样可以配置单点推送,多点分发,此处可以 添加多个配置
  • Red5流媒体服务器开发总结Red5 是 支持Windows,Linux等多平台的RTMP流媒体服务器,最早属于谷歌下的开源项目,先已移植到Github,地址为https://github.com/Red5/red5-server 由于从安装到开发相关文档很少,于是...
  • 用vlc搭建rtsp流媒体服务器

    千次阅读 2020-08-15 16:20:28
    在做视频传输客户端开发的时候,经常需要用到流媒体服务,VLC有着非常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。VLC是一种开源的播放器,同时也可以用作流媒体服务器。 vlc搭建rtsp流媒体服务器步骤: ...
  • javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV) javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV...
  • 流媒体服务器的作用

    千次阅读 2020-07-14 15:14:14
    流媒体服务器(Media Streaming Server)在互联网上做视频点播和视频直播的基础支撑软件系统,如果您要在互联网上做视频播出应用,如在线课堂、网络电视、视频点播、视频资讯、短视频、网络直播、企业直播等,那您就...
  • 流媒体服务器使用手册

    千次阅读 2018-11-15 10:25:20
    流媒体服务器使用手册     版本:V5.2   目 录 第1章 产品概述... 3 第2章 产品使用详解... 4 2.1 产品主要功能... 4 2.2 产品安装... 4 2.3.1 应用程序安装... 4 2.3.2 产品注册... 4 2.3.3 ...
  • 主流开源流媒体服务器有哪些?

    千次阅读 2016-12-21 09:16:32
    流媒体解决方案 Live555 流媒体平台框架 EasyDarwin 实时流媒体播放服务器程序DarwinStreamingSrvr 流媒体实时传输开发包 jrtplib 多媒体处理工具 ffmpeg 多媒体编码工具包Libav Flash流媒体服务器 Red5 ...
  • 在有些业务场景架设中,我们有很多...摄像机的数量很多,不可能并发的向控制中心流媒体服务传递。因为,带宽和服务器性能都是并发的瓶颈。 此时,我们可以通过配置大量的 **按需直播** 的通道接入,来解决这样的问题。
  • 主流开源流媒体服务器

    千次阅读 2018-10-18 22:18:26
    主流开源流媒体服务器: 流媒体解决方案 Live555(C++) 流媒体平台框架 EasyDarwin(C++) 实时流媒体播放服务器程序DarwinStreamingSrvr(C++) 流媒体实时传输开发包 jrtplib 多媒体处理工具 ffmpeg 多...
  • 架设流媒体服务器

    千次阅读 2011-12-18 12:57:53
    使用免费UMS架设Flash流媒体服务   随着Adobe公司的Flash播放器的普及(根据Adobe官方数据,Flash播放器装机量已高达99%以上),越来越多的网络视频开始采用Flash播放器作为播放前端,因此,越来越多的企业开始...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,151
精华内容 70,460
关键字:

流媒体服务