使用IIS Live Smooth Streaming技术搭建流媒体直播系统

IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案。该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP Web 技术以及高级 Silverlight 功能,确保在互联上传输质量最佳、播放流畅音视频节目。

该技术以下优点:

1、 平滑流式处理是一种自适应流式处理技术,通过动态监视本地带宽和视频呈现性能,平滑流式处理可实时切换视频质量来优化内容的播放,具有高带宽连接和先进计算机的观众可体验完全高清质量的流,而具有低带宽或较旧计算机的其他观众可接收适合其功能的流。

2、 可传送完全高清的按需和实时流而不会出现断断续续的问题。

3、 IIS 比特率限制扩展可控制通过 HTTP 传送媒体的速率,从而能够节省网络带宽费用。

4、 平滑流式处理可以适用于点播(由 IIS 平滑流式处理扩展提供)和实时广播(由 IIS 实时平滑流式处理扩展提供)两种不同应用需求。

缺点:使用平滑流式处理技术实施直播并不是一个完全免费的方案,它必须使用Microsoft Expression Encoder Pro做为流媒体编码器(在以前的流媒体服务器解决方案中,windows meida encode是完全免费的。免费的Microsoft Expression Encoder不支持平滑流式处理),该软件是集成在Microsoft Expression中的,要收费。

解决方案布署图:

一、准备和安装

1. 由于IIS Live Smooth Streaming只支持IIS 7以上版本,所以我们使用的服务器操作系统必需是Windows 7, Windows Server 2008, Windows Server 2008 R2。

本实验环境是Windows Server 2008 R2。

在 服务器管理器 中添加Web服务器(IIS)

2. 下载IIS Media Services 4.1,并安装IIS Media Services 4.1(服务器上)

下载链接:

http://www.microsoft.com/zh-cn/download/details.aspx?id=27955

3. 准备好Microsoft Expression Encoder Pro 4.0,并安装Microsoft Expression Encoder Pro 4.0(视频采集计算机上)

参考地址:

http://www.microsoft.com/expression/products/Purchase.aspx

安装可参考上篇WMS 2008中的步骤

二、配置Live Smooth Streaming,创建直播发布点

可参考:

http://www.iis.net/learn/media/live-smooth-streaming/getting-started-with-iis-live-smooth-streaming

1、 打开 开始—管理工具—Internat信息服务管理程序

在打开的管理程序界面中选择想要设置的站点或虚拟目录,双击Live Smooth Streaming Publishing Points图标。

打开后会有警报提示,点击 更新应用程序池设置

2、在右侧的“操作”面板中 发布点 下,点击 添加 。

3、在弹出的“添加发布点”对话框中,选择基本设置 选项卡。

输入下列信息:

文件名:为Live Smooth Streaming发布点的定义文件输入一个名称

此处使用的文件名是“LiveSmoothStream”(可自定义)。

估计持续时间:实时直播节目的持续时间

以便客户端Silverlight播放器能显示播放内容合适的进度时间范围。

此处使用2小时的持续直播时间。

实时源类型:此处我们的Live Smooth Streaming服务器做为直播源服务器,它接收从Expression Encoder Pro发来的节目内容。所以,我们选择默认的“推”选项。

“拉”选项是从另一个Live Smooth Streaming服务器获取节目源内容,这样可以做到多服器分布负载,形成服务群集。

4、切换到 高级设置 选项卡上,选择“在第一次客户端请求时自动启动发布点”选择框。这个设置是当广播开始时,允许编辑器连接发布点。如果你不允许这个设置,可能会发生连接错误。

5、如果想让LiveSmoothStream 支持Apple的移动数字设备播放实时视频广播,可以在 移动设备 选项卡上,选择“允许输出到Apple数字移动设备(E)”选择框。

6、完成后点击 确定 。

一个新的Live Smooth Streaming 发布点的文件LiveSmoothStream.isml被加入到网点的根目录中。

7、在中间的“实时平滑流式处理发布点”操作面板上,选择已经加入的发布点,然后在右

侧的“操作”面板上,点击 启动发布点

8、发布点状态从“空闲” 变成“正在启动”,这表示它正在等待外部数据传入。

此处是等待从Expression Encoder Pro编辑器中发来的直播平滑流式媒体数据。

当从发布点开始接受Expression Encoder Pro编辑器发来的数据之后,它的状态将变成State。需要在IIS 管理器中刷新Live Smooth Streaming发布点页面,才能看到这个状态的改变。

三、配置Expression Encoder Pro视频采集计算机

1、 在视频采集计算机上打开Microsoft Expression Encoder Pro 4.0,在 “加载新项目”对话框选择“实时广播项目”。

2、 打开Expression Enconder 4.0工作窗口,首先点击中间预览部分的 添加实时源

在左侧的实时源窗格中选择实时源的视频设备以及音频设备

3、 点击右侧“预设”面板,为Live Smooth Streaming直播方案选择可调整的编码速率和编码格式。在“编码”选项卡中选择“IIS 平滑流式处理”。可以自定义输出格式、视频、音频格式。

4、 点击“输出”选项卡,选择“流式处理”选择框,然后点击“发布点”,在“位置”

输入有效的直播视频的发布点的URL。URL的一般格式是:

http://ServerName/SiteName/DirectoryName/PublishingPointDefinitionFileName.isml

此处直播平滑流式发布点是我们在上面创建的发布点,格式是:

http://192.168.1.104/LiveSmoothStream.isml

点击“连接”按钮去测试发布点连接是否正常。为了使连接有效,必须启动在服务器上设置的发布点。

5、 如果想在节目中加入数字版权,选择“输出”标签中的“数字版权管理”选项。但是,如果你想让节目支持apple设备,就不能选择“数字版权管理”保护。

6、 在实时源标签页点击“定位”,使你的实时广播源开始工作。

7、 点击“开始”按钮,开始实时直播。

四、在web服务器上安装实时直播web页示例。

要想通过Web服务器看到实时视频直播,必须在web服务器上有一个嵌入silverligh播放器网页标签的网页。微软提供了一个网页示例。

下载地址:http://go.microsoft.com/?linkid=9738294

将下载的SmoothStreamingPlayer.exe文件解压到文件夹,可以看到以下三个文件。

并将三个文件copy至IIS网站默认根目录 C:\inetpub\wwwroot

Smooth Streaming Player-ReadMe.doc,配置说明文档。

SmoothStreamingPlayer.html,嵌入slilverligh播放器的示例网页文档。

SmoothStreamingPlayer.xap,Smooth Streaming player示例。

在SmoothStreamingPlayer.html文件中可以看到以下代码:

代码如下:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" ;100%" height="100%">
<param name="source" value="SmoothStreamingPlayer.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="autoUpgrade" value="true" />
<param name="InitParams" value="selectedcaptionstream=textstream_eng,mediaurl=http://streams.smooth.vertigo.com/elephantsdream/Elephants_Dream_1024-h264-st-aac.ism/manifest" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
<img src=\'#\'" //go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>

</object>

用编辑器中打开SmoothStreamingPlayer.html文件并修改mediaurl属性为Live Smooth Streaming发布点的URL。

此处是:http://192.168.1.104/LiveSmoothStream.isml/manifest。

如果需要,可以调整width and height属性修改播放框的大小。

五、观众计算机安装silverlight播放器插件收看节目。

在要收看实时在线直播的计算机中安装silverlight播放器插件(windows7已经自带了,不用安装;windowxp必须安装),

下载地址:

http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx

用浏览器打开

http://192.168.1.104/SmoothStreamingPlayer.html,就可以看到实时广播节目了。

(0)

相关推荐

  • JavaScript结合AJAX_stream实现流式显示

    当使用AJAX进行信息交互的时候,如果服务器返回的信息比较大,那么相对于传送完成之后的统一显示,流式显示就比较友好了. 流式实现 原理就是设置定时器,定时的查看AJAX对象的状态并更新内容,如果传送完成,就取消定时器. 复制代码 代码如下: function ajax_stream(url,data,element) {     var xmlHttp=null;     if (window.XMLHttpRequest)       {// code for IE7, Firefox, Op

  • PHP stream_context_create()作用和用法分析

    作用:创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置.代理服务器.请求方式.头信息设置的特殊过程. 函数原型:resource stream_context_create ([ array $options [, array $params ]] ) 用法 例子一: 复制代码 代码如下: <?php $opts = array( 'http-->array( 'method'=>"GET", 'he

  • php中stream(流)的用法

    在Java里,流是一个很重要的概念. 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等.根据流的方向又可以分为输入流和输出流,同时可以在其外围再套上其它流,比如缓冲流,这样就可以得到更多流处理方法. PHP里的流和Java里的流实际上是同一个概念,只是简单了一点.由于PHP主要用于Web开发,所以"流"这块的概念被提到的较少.如果有Java基础,对于PHP里的流就更容易理解了.其

  • C# Stream 和 byte[] 之间的转换

    /* - - - - - - - - - - - - - - - - - - - - - - - -   * Stream 和 byte[] 之间的转换  * - - - - - - - - - - - - - - - - - - - - - - - */ /// <summary> /// 将 Stream 转成 byte[] /// </summary> public byte[] StreamToBytes(Stream stream) {     byte[] bytes 

  • stream.js 一个很小、完全独立的Javascript类库

    <script src='stream-min.js'></script> 下载 stream.js 2Kb minified streams是什么? Streams 是一个操作简单的数据结构,很像数组或链接表,但附加了一些非凡的能力. 它们有什么特别之处? 跟数组不一样,streams是一个有魔法的数据结构.它可以装载无穷多的元素.是的,你没听错.他的这种魔力来自于具有延后(lazily)执行的能力.这简单的术语完全能表明它们可以加载无穷多的元素. 入门 如果你愿意花10分钟的时

  • XStream使用方法总结附实例代码

    XStream中的核心类就是XStream类,一般来说,熟悉这个类基本就够用了,如果你用的更多,估计是你设计有问题,否则不需要. XStream对象相当Java对象和XML之间的转换器,转换过程是双向的.创建XSteam对象的方式很简单,只需要new XStream()即可. Java到xml,用toXML()方法. Xml到Java,用fromXML()方法. 在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应xml根元素的名字.而实际中

  • 安装ppstream后出现的ppsap.exe进程解决办法

    出品者:PPS网络电视 属于:ppstream 系统进程:否 后台程序:否 使用网络:是 硬件相关:否 常见错误:未知N/A 内存使用:7.496MB 高峰内存使用:20MB 能否终止:能 安全等级(0-5):0 间谍软件:否 广告软件:否 广告软件:否 木马:否 停止ppsap.exe进程的具体操作:打开ppstream,然后:"工具"->"选项"->"点播服务"->勾掉"允许pps加速器".不过这样一来观

  • php错误提示failed to open stream: HTTP request failed!的完美解决方法

    google或者baidu一下,好多这样的问题,解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On 这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可.)重启服务器. 但是有些还是会有这个警告信息,想用完美的解决

  • 使用IIS Live Smooth Streaming技术搭建流媒体直播系统

    IIS Live Smooth Streaming(实时平滑流式处理)是微软下一代流媒体解决方案.该技术是在IIS web中集成媒体传输平台IIS media services,实现利用标准 HTTP Web 技术以及高级 Silverlight 功能,确保在互联上传输质量最佳.播放流畅音视频节目. 该技术以下优点: 1. 平滑流式处理是一种自适应流式处理技术,通过动态监视本地带宽和视频呈现性能,平滑流式处理可实时切换视频质量来优化内容的播放,具有高带宽连接和先进计算机的观众可体验完全高清质量的

  • 用Windows Media Service打造的流媒体直播系统

    明天将继续为大家分享 微软下一代流媒体解决方案 IIS Live Smooth Streaming(实时平滑流式处理) 下面进入我们的正题 所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式.和需要将整个视频文件全部下载之后才能观看的传统方式相比,流媒体技术是通过将视频文件经过特殊的压缩方式分成一个个的小数据包,由视频服务器向用户计算机连续.实时传送,用户不需要将整个视频文件完全下载之后才能观看,只需经过短暂的缓冲就可以观看这部分已经下载的视频文件,文件的剩余部分将继续下载.常见的

  • 利用nginx与ffmpeg搭建流媒体服务器过程详解

    需求 本文介绍的是利用nginx和ffmpeg搭建流媒体服务器的过程.例如这种场景:公司内部需要同时观看在线直播时,如果每个人直接观看必然给出口带宽带来压力,影响正常访问外网的同事.所以可以在内网通过nginx+ffmpeg拉一路直播流,然后内网的用户访问内网的这台流媒体服务器即可.通过nginx+ffmpeg还可以实现推流.拉流.转推甚至利用FFmpeg实时切片.视频处理等,实现一套直播服务模型. 环境 系统环境:CentOS release 6.7 (Final) 步骤 安装ffmpeg 安

  • 使用Nginx搭建流媒体服务器实现直播功能

    写在前面 最近几年,直播行业比较火,无论是传统行业的直播,还是购物.游戏.教育,都在涉及直播.作为在互联网行业奋斗了多年的小伙伴,你有没有想过如果使用Nginx搭建一套直播环境,那我们该如何搭建呢?别急,接下来,我们就一起使用Nginx来搭建一套直播环境. 安装Nginx 注意:这里以CentOS 6.8服务器为例,以root用户身份来安装Nginx. 1.安装依赖环境 yum -y install wget gcc-c++ ncurses ncurses-devel cmake make pe

  • Laravel搭建后台登录系统步骤详解

    本文实例讲述了Laravel搭建后台登录系统的方法.分享给大家供大家参考,具体如下: 今天想用laravel搭建一个后台系统,就需要最简单的那种,有用户登录系统,试用了下,觉得laravel的用户登录这块做的还真happy.当然,前提就是,你要的用户管理系统是最简单的那种,就是没有用户权限,能登录就好. 我这里就不用默认的user表做例子了,那样很容易和laravel的一些默认设置混淆. 首先确认,后台的用户表,我设计表叫做badmin,每个管理员有用户名(username),有昵称(nickn

  • 基于EJB技术的商务预订系统的开发

    技术已经越来越多地应用到大型网络系统开发中,本文中,笔者将介绍EJB(Enterprise Java Beans)的定义.基于EJB技术的应用系统结构模型以及EJB组件的内容和分类,最后结合基于EJB的结构模型和EJB组件开发了一个商务预订系统.EJB从技术上而言不是一种"产品",而是一种技术规范.SUN公司对EJB的定义是:EJB的结构是开发和配置基于组件的分布式商务应用程序的一种组件结构.用EJB结构开发的应用程序是可伸缩的.事务型的.多用户安全的.这些应用程序可能只需编写一次,却

  • Java 用Prometheus搭建实时监控系统过程详解

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念也会精炼出提及下.系列主要分为以下几块 Prometheus各个概念介绍和搭建,如何抓取数据(本次分享内容)

  • 超简单实现Docker搭建个人博文系统

    安装Docker yum 包更新到最新:sudo yum update 安装需要的软件包:sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置yum源为阿里云,否则巨慢:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker(ee版是企业版收费,ce是社区版

  • 基于Docker搭建ELK 日志系统的方法

    背景需求: 业务发展越来越庞大,服务器越来越多 各种访问日志.应用日志.错误日志量越来越多,导致运维人员无法很好的去管理日志 开发人员排查问题,需要到服务器上查日志,不方便 运营人员需要一些数据,需要我们运维到服务器上分析日志. ELK介绍: ELK是三个开源软件的缩写,分别为:Elasticsearch . Logstash以及Kibana , 它们都是开源软件. 目前由于原本的ELK Stack成员中加入了 Beats 工具所以已改名为Elastic Stack. Beats,它是一个轻量级

  • docker搭建CMS点播系统带播放器功能

    目录 正文 一.准备机器 二.安装docker 1. 安装依赖包 2. 设置阿里云镜像源 3. 执行安装命令 4. 验证是否安装成功 三.拉取镜像 四.运行镜像创建容器 五.访问Web点播首页 六.上传点播文件 七.管理后台界面 八.注册并登陆前台账户 九.操作视频文件 结尾 [导读]我相信这么多年,你一定看过各式各样的视频网站,不管内容怎么样,你有没有想过拥有一个属于自己的视频网站?如果想那就跟我来吧!今天这篇文章就能满足你的这个愿望. 如果你细心的话,也许不需要任何编程能力也可以完成这样愿望

随机推荐