流媒体服务器的sewise软件系统

流媒体服务器的sewise软件系统,第1张

sewise流媒体服务器软件系统是一整套流媒体编码、分发和存储的软件系统,包含直播、点播、虚拟直播、剪切、转码、视频管理系统。这些软件支持多屏多系统播放,终端客户使用手机、平板、电脑、电视等终端,ios、安卓、windows、linux等系统,都能支持播放。 UMS通过使用RTMP协议向Flash Player传输或接收多种比特率的直播/点播媒体流、数据以及远程调用信息UMS服务器支持基于Adobe Flash/AIR技术平台的流媒体点播/直播及其他功能

AMS流媒体服务系统是一套完整的基于IP网络的音视频应用平台,采用模块化,跨平台的架构设计,采用自主研发的高性能流媒体服务引擎,支持多种主流流媒体协议(RTP、RTSP、RTMP、http、HLS等);支持直播、点播、录播等多种应用模式;支持PC机、手机、机顶盒等多种接入终端。方便用户建立多种应用模式

21 使用UMSMonitor配置UMS服务

UMSMonitor是一款专门用于管理Ultrant MediaServer服务器软件的工具软件,使用它可以方便地启动、停止、重启Ultrant Media Server服务,并可以设置各种运行参数。您可以通过鼠标右键点击Windows托盘右下角的蚂蚁图标来弹出系统菜单,见下图:

弹出上图菜单后,用鼠标左键选取“打开Ultrant Media Server Monitor”选项,即可弹出UMSMonitor的主控界面,如下图:

在UMSMonitor软件主控界面上,您可以通过左边的“服务状态”列表查看已经安装的UMS相关服务及其工作状态,要管理其中某一项服务,您需要先选中左边的列表项,然后找到右边的三个服务控制按钮,分别是“启动服务”、“停止服务”、“重启服务”,这三个按钮分别对应的功能是:启动UMS相关服务、停止UMS相关服务、重启UMS相关服务。 在UMSMonitor软件主控界面上,您需要先选中“Ultrant Media Server(UMS)”项,然后通过鼠标左键点击右边的“配置服务”按钮来进入Ultrant Media Server服务器软件配置界面。配置界面如下图:

配置完成后,您需要点击“应用”以确认修改,然后点击“确定”使修改立刻生效,此时软件会提示您是否重启Ultrant Media Server服务以使修改生效,选择“确定”是配置生效。

22 测试点播功能

要使用点播功能,您需要自己准备一个FLV格式的视频文件,并将其拷贝至任一媒体库路径下(媒体库路径可以通过UMSMonitor来添加),或将该FLV格式视频文件所在路径添加至媒体库路径。

视频文件及媒体库路径准备好后,请确保修改的设置已经生效,以及文件名没有冲突。如果您使用的是安装程序自带的Nginx Web服务器,请将nginx安装目录下html子文件夹中的vodhtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\vodhtml用记事本打开,找到下述代码:

soaddVariable('file','6roomsflv');

soaddVariable('start','0');

soaddVariable('streamer','rtmp://127001:1935/vod');

将127001改为您当前服务器的IP地址;如果您使用自己准备的FLV格式视频文件,请将vodhtml文件中上述代码中的“6roomsflv”改为您自己准备的视频文件名称。

如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/vodhtml来访问点播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/vodhtml来访问点播页面。

播放页面正常出现后,点击播放器即可播放。

23 测试直播功能

您可以使用Adobe公司提供的免费软件Adobe Flash Media Live Encoder31来测试UltrantMedia Server软件的直播功能。

231 安装Adobe Flash Media Live Encoder31

安装过程及帮助详见Adobe官方网站。

232 准备摄像设备

您可以使用USB网络摄像头或专业的视频采集卡(需要Adobe Flash Media Live Encoder31程序能够识别)来作为视频源。

233 使用Adobe Flash Media Live Encoder31发布直播流

打开Adobe Flash MediaLive Encoder31软件,确保视频采集设备和音频采集设备能正常工作,正常工作的硬件设备看似应该如下图所示:

请正确设置好坐图红色矩形框所标注的位置,其中,FMS URL位置处的URL地址应该为”rtmp://{UltrantMedia Server所在服务器IP地址}/live”,Stream位置处应该为”livestream”。设置完成后,要首先按下”Connect”按钮,如果“Connect”按钮上的文字变成“Disconnect”,则表明连接成功;然后按最下边红色矩形框标注的“Start”按钮,以启动直播发布。正常工作的Adobe Flash Media LiveEncoder31看似应该如下图所示:

234 查看直播视频

如果您使用的是安装程序自带的NginxWeb服务器,请将nginx安装目录下html子文件夹中的livehtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\livehtml文件用记事本打开,找到下述代码:

soaddVariable('file','livestream');

soaddVariable('streamer','rtmp://127001:1935/live');

将127001改为您当前服务器的IP地址;如果您重新命名了发布的视频流的名称,请将livehtml文件中上述代码中的“livestream”改为您自己命名的视频流的名称。

如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/livehtml来访问直播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/livehtml来访问直播页面。 UMS支持可伸缩的无限级连直播集群组网功能,通过简单的可视化配置,您就可以将多台装有UMS服务器软件的服务器组成一个统一的直播网络群,其中的每一个节点都可以对外提供一致的直播服务。

31使用UMSMonitor管理工具配置直播集群组网功能

打开UMSMonitor的服务配置界面,找到其中的”CDN配置”选项页,如下图:

如果您选择“使用直播流转发服务器功能”,则UMS可以作为直播流转发服务器使用。当您选择“应用”配置,选择“确定”并重启服务使配置生效后,您当前配置的UMS服务器软件将自动连接到上级UMS直播源服务器的同步地址和端口,以获取直播同步信息。注意:您必须启用上级UMS服务器的“使用直播流服务器功能”,也就是启用上级UMS服务器同等的上述配置页面的下半部分选项。只有在与上级UMS服务器的同步端口和同步口令一致的情况下,当前配置的UMS服务器才能连接到上级直播源服务器的同步端口,才能进行直播信息同步。

“上级直播源服务器服务地址”理论上与“上级直播源服务器同步地址”是一致的,都是上级服务器的地址(当设置UMS的对外视频直播服务IP与UMS对外直播同步服务IP不一致的情况除外),“上级直播源服务器服务端口”就是上级UMS服务器在UMSMonitor配置工具服务配置页面中的“基本配置”页面上的“IP地址和端口”栏中设置的监听端口,上级UMS通过这个端口对外提供视频数据直播服务。当前配置的UMS服务器也是从上级服务器的对外视频数据直播服务端口获取实时视频直播数据,并经由本地转发的。

启用本地的“使用直播流源服务器功能”后,当前配置的UMS服务器即可作为直播源服务器,为下级UMS服务器提供直播信息同步服务和直播视频流传输服务。

UMS服务器在进行上下级组网同步直播信息和直播数据流的同时,还能对用户提供视音频数据的点播和直播功能。下图描绘的是使用UMS进行直播组网后的效果图:

从版本189开始,Ultrant Media Server引入了一种新的服务器程序,即媒体内容访问控制服务器(UMAS,即Ultrant Media Access Service)。UMAS为Ultrant Media Server服务器系统提供了强大而灵活的网络授权功能,可以有效地保护您的媒体内容。

41 UMAS服务模式介绍

UMAS是一个口令生成与管理服务器软件。UMAS提供访问口令的生成、管理与分发功能,并提供友好的开发集成接口。UMAS与UMS对外服务主程序的协作图如下:

或见下图:

42 配置UMAS及UMS以使用访问控制功能

您可以通过UMSMonitor程序来配置UMAS服务,以及配置UMS与UMAS的连接参数。

421配置UMAS服务

请首先确保UMAS服务已经安装。打开UMSMonitor配置工具(方法见22),您可以从已安装的服务列表中查看UMAS服务是否已经安装。要配置UMAS服务,先用鼠标选中Ulrant Media Access Service(UMAS)行,点击面板右边的“配置服务”按钮,即会弹出UMAS服务的配置页面,如下图。其中,口令分发服务相关参数影响UMS主服务程序与UMAS服务的连接,包括口令分发服务配置栏目和口令分发服务连接设置栏目;口令获取服务相关参数影响通过HTTP连接接口创建并返回口令功能,该部分设置包括口令获取服务配置和口令获取服务连接设置栏目。要获取各个参数的使用方法,请将鼠标移动至相关文本框,您可以通过界面提示信息来修改参数。

注意:这里设置的IP地址是UMAS服务要绑定的IP地址,通常设置为0000,即绑定任意地址;两个端口值分别是UMAS要监听的口令分发服务端口和口令获取服务端口,配置适当的UMS服务主程序将连接到口令分发服务端口与UMAS进行通信,Web系统集成则需要后端服务脚本通过口令获取服务端口创建和获取访问控制口令。与上述两个端口对应的口令则是服务的接入口令。

422配置UMS以连接UMAS

要配置UMS服务,请打开UMSMonitor配置工具(方法见22),先用鼠标选中Ulrant Media Server(UMS)行,点击面板右边的“配置服务”按钮,即会弹出UMS服务的配置页面,再选中“综合配置”页面,如下图所示。

上图中,右下角的“媒体访问控制配置”包含了需要配置的若干选项。其中,UMAS服务器地址是UMAS服务器软件对外提供服务的IP地址(注意:这个IP地址跟章节321配置的UMAS的绑定地址不是一回事);UMAS服务器端口应与章节321中配置的分发服务器端口一致;UMAS服务器口令应与章节321中配置的分发服务器口令一致。

注意:一旦您选定连接访问控制服务器(UMAS)选项,对于所有访问该UMS服务的连接,均需提供正确的访问控制口令才能访问媒体内容,否则将无法继续访问媒体内容。该功能必须与UMAS一起使用,您需要参照章节321和章节33来设计您的内容管理系统。

43 UMAS内部集成接口

UMAS为方便与现有web系统集成,设计为通过标准HTTP请求创建并获取口令,在此同时,UMAS会自动将新生成的访问口令分发到连接至自身的UMS服务器。UMAS与web系统以及UMS主服务器程序可以分别部署在不同的硬件服务器上。 参数中文释义 参数项 说明 页面 gettoken UMAS提供的获取访问口令的接口页面(内部虚拟页面)。 服务接入口令 token 外部应用访问口令获取接口必须提供的接入口令,该口令通过UMSMonitor程序设置,是为了防止不合法用户使用口令获取功能。 应用名称 app 设置要获取的口令所能访问的应用名称,如果不设置该参数,则获取的口令可以访问所有可用应用。 有效时间 duration 设置要获取的口令的有效时间,超过有效时间的访问口令将不再起作用。(数值类型:整数;单位:秒) 使用次数 limit 设置要获取的口令的使用次数,超过使用次数的访问口令将不再起作用。(数值类型:整数;单位:次)。

注意:如果一个访问口令在有效次数内超过有效时间,其仍会失去有效性。 返回格式 format 设置UMAS返回的口令的格式。(数值类型:枚举(xml和json),如果不设置则返回文本类型)。返回的xml格式举例:

<xml version =10 encoding=utf-8>

<Token>CiQY56Fy6X65ltXH</Token>

返回的json格式举例:

{Token:xDDcnR4V07Iqyn3n}

返回的文本格式举例:

39VvZGpnrmVcsSiZ 44接口使用示例

在使用之前请先确保UMAS服务器程序在正常运行,并开启相关的防火墙端口。您需要先向UMAS管理员获取UMAS对外提供服务的IP地址和端口值,以及服务访问口令,通过下述形式访问UMAS服务以获取媒体访问控制口令(protocol仅支持HTTP):

{protocol}://{umas_ip}:{umas_port}/gettokentoken={umas_token}&app=vod&duration=100&limit=10&format=xml

45媒体访问控制口令的使用

媒体访问控制口令是一个16位的字符串,在播放器与UMS主服务器程序建立RTMP连接的时候使用,使用方式如下(protocol仅支持rtmp、rtmpe):

{protocol}://{ums_ip}:{ums_port}/{app_name}token={从UMAS获取的媒体访问控制口令}

功能模块概述

通过obs客户端推流到nginx流媒体服务器上,对流媒体用ffmpeg将流剪切为若干段ts流文件并保存到临时目录中,通过访问m3u8格式拼接ts流文件段来观看直播。

推流端

采用开源工具OBS客户端进行推流

根据项目的推流地址,填入OBS客户端(下载地址)中,并设置场景,保存后重启,便可开始推流。

为更加稳定的推流,建议使用以上链接中的v0625稳定版本,按提示安装完成后,打开设定在广播设定中,伺服器统一填写我们项目的流媒体接收流地址:

rtmp://127001:1935/hls/

以上这几个数据都是可以更改的。

127001——你的流媒体服务器ip

1935——你的rtmp端口号

hls——你的直播nginx配置模块

具体在下文中也有详细介绍

配置地址

回到主界面,右键来源,选择添加视频捕捉设备或获取窗口等(相关设置默认即可),点击开始串流,便可开始直播。

添加场景

图为添加视频捕捉设备后的直播画面:

直播中

流媒体服务器

Nginx接收推流模块

rtmp_auto_push on;

rtmp {

server {

listen 1935;

application hls {

live on;

hls on;

hls_path /tmp/hls;

on_publish 项目地址/liveOnPublish;

on_publish_done 项目地址/liveOnDone;

notify_method get;

}

}

}

配上我在word上的注解

注解1

Nginx处理直播流模块

http {

server {

listen 80;

server_name localhost;

location /hls {

secure_link $arg_st,$arg_e;

secure_link_md5 key$arg_e;

subs_filter ts 'tsst=$arg_st&e=$arg_e&clentip=$remote_addr';

subs_filter_types application/vndapplempegurl;

if ($secure_link = "") {

return 402;

}

if ($secure_link = "0") {

return 403;

}

# Serve HLS fragments

types {

application/vndapplempegurl m3u8;

video/mp2t ts;

}

root /tmp;

add_header Cache-Control no-cache;

}

}

}

注解2

项目部署服务器

流媒体服务器不通过项目服务器,整个直播过程的推流和处理流都在流媒体服务器上进行。项目服务器主要进行直播地址加密处理意见推流开始和结束触发的方法(liveOnPublish(),liveOnDone())已及对直播地址加密

播放端

直接通过HTML5中的<video>标签设置src来播放直播流。如:

<video src="pro/livem3u8st=UM/L8jdfTlY2b1j1F6XSxA==&e=1468548530

" controls="controls"></video>

存在的问题

延迟待测试(不科学的数据是安卓手机普遍在30-40s,苹果手机在20-30s)

并发待测试

掉帧待测试(网速影响大,网络好几乎不掉帧,网络差掉一半,用户体验差)

纳加P2P直点播系统,提供了安装于服务器端的视音频流分发服务。系统从采集端接收视音频流,由P2P协议和CDN网络进行转发,通过媒资管理系统、内容管理系统及网站,输送到客户端(手机、平板、电脑、机顶盒),为客户快速建立一套网络视音频直点播服务。

三屏播放

支持市面上常见浏览器收看,包括IE、火狐、遨游、谷歌等浏览器。

支持智能终端收看。VJLive支持HLS协议,运用HTML5语言实现了IOS系统和Android系统手机和机顶盒平台在线直播收看。

直播时移

纳加直播提供时移功能,支持纯flash方式的实时回放,自动生成节目列表,可以在任意时间收看任意节目,打破传统的直播收看模式,观众不再因为不能回放而错过直播节目。

高流畅度

集成了HTTP、TCP、UDP(SUDP、RUDP)和网关穿透模组(UDP穿透和RPNP穿透)及全球IP表,拥有极高数据收发速度和单机连接数,极大程度保证各种清晰度下的视频播放质量。

广播级高清

实况直播时支持多种流协议和编码,可使用高清、标清码流,达到广播级效果,其中高清视频格式包括wmv/asf/wma/mp3/rm/rmvb/flv等。

复杂网络环境自适应

采用了覆盖全球IP表、运营商地域IP段表等动态节点调整策略,支持各级网关穿透和内外网网关映射。同时采用了UDP、TCP传输自适应机制,当UDP传输不可用时自动切换到TCP传输,保证连通性。

客户机及CDN自动化存储

收看者:缓存设置将自动存储收看过的视音频片段,供P2P分享使用,以减轻运营商  带宽压力。

运营商:通过中心视频资源库,根据点播服务器收看者点击率,自动下载热门视频文件进行P2P分发。

高速拖拉

使用独创的帧级预缓存读取技术,使得收看者在拖拉视频进度时,可以无缝跳转至拖拉处,立刻欣赏跨段影像。

帧级跳转定位

纳加采用独创的VJVOD优化的编码协议,可以精确跳转到以帧为单位的时间点,高度定位到比秒还精确的画面。

富资源分发

使用完整视频、私有或第三方格式的视频缓存片段或加密内容等作为点播媒资。也可以发布任意格式的非媒体文件,作为P2P文件发布系统使用,例如SWF小游戏等等。

收看进度记忆

将提供可以设置并二次开发的中断点记忆功能,方便客户可以继续收看节目。

高速启动

通过HTTP协议、优化的编码模块、集群链接策略,达到即点即播的视频启动速度,无需收看者进行长时间等待便可开始收看视频。

Adboe的Red5流媒体服务器免费并且是开源的,与Flash搭配的时候可谓是天生一对,但使用Java和Android作为客户端调用却可谓一波三折。

Adobe的Red5源代码里有一个RTMPClient的类,这个类在使用上其实不复杂,但却没办法成功调用。观察日志,发现是连接成功后在开始创建流的时候,服务端把连接断开了。我能想到的解释就是可能公司现在所使用的Red5服务器的版本与这个RTMPClient不兼容。

流媒体服务器就是把视频设备(如大锅信号、有线信号、DVD,VCD,摄像机,监控头等)的视频信号采集到服务器,供网络访问。能够像Web服务器发布HTML文件一样发布流媒体文件和从摄像机、视频采集卡等设备传来的实况流,从而用户可以使用视频播放器收看这些媒体文件。

具体参考流媒体服务器的应用场景

摄像头采集;

1、音视频编解码;

2、流媒体协议;

3、音视频流推送到流媒体服务器;

4、流媒体网络分发;

5、用户播放器;

6、音视频同步;

7、网络延迟自适应;

8、需要录制,多种视频文件的格式和封装;

9、语言:C、C、html、php、mysql

10、开发环境:嵌入式,Linux,Windows,Web

还有就是视频播放解决方案(卡顿、延迟):

1、CDN加速;

2、自己架服务器;

3、用别人的云服务。

用CDN加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在3-6秒之间。也就是在视频直播时,你看到的是几秒以前的画面。

自己架服务器,如果部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用CDN加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。当然,不管用哪种方式,综合权衡利弊,找到适合的方案就是最好的方案。

开发视频直播的流程有哪些:

1、采集;

2、前期处理;

3、编码;

4、传输;

5、解码;

6、渲染。

采集:iOS是比较简单的,Android则要做些机型适配工作。PC最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃PC只支持手机主播,目前几个新进的直播平台都是这样的。

前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用CPU还是GPU优化,算法优化本身也需要专业知识支持。GPU虽然性能好,但是也是有功耗的。GPU占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧。而这一切都是需要经验支撑。

编码:如果你要上720p,肯定要采用硬编码。软编码720p完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率360p行不行?就算上低分辨率,软编码还是会让CPU发烫,CPU过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择?

传输:自己做不现实,交给第三方服务商吧。

解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。

渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。

以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。

以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码网络传输技术的综合应用体。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 流媒体服务器的sewise软件系统

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情