热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

用WindowsMediaService打造的流媒体直播系统

明天将继续为大家分享 微软下一代流媒体解决方案 IIS Live Smooth Streaming(实时平滑流式处理) 下面进入我们的正题

明天将继续为大家分享 微软下一代流媒体解决方案 IIS Live Smooth Streaming(实时平滑流式处理)

下面进入我们的正题

所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。和需要将整个视频文件全部下载之后才能观看的传统方式相比,流媒体技术是通过将视频文件经过特殊的压缩方式分成一个个的小数据包,由视频服务器向用户计算机连续、实时传送,用户不需要将整个视频文件完全下载之后才能观看,只需经过短暂的缓冲就可以观看这部分已经下载的视频文件,文件的剩余部分将继续下载。常见的流媒体文件格式有mov .asf .3gp .viv .swf .rt .rp .ra .rm等。

Windows Media Service(Windows媒体服务,简称WMS)是微软用于在企业Intranet和Internet上发布数字媒体内容的平台,通过WMS,用户可以便捷的构架媒体服务器,实现流媒体视频以及音频的点播播放等功能。新一代多媒体内容发布平台WMS 2008可以在32位和64位的Web版、标准版、企业版和数据中心版的Windows Server 2008 R2中进行安装。WMS 2008的应用环境非常广泛,在企业内部应用环境中,可以实现点播方式视频培训,课程发布,广播等。在商业应用中,可以用来发布电影预告片,新闻娱乐,动态插入广告,音频视频服务等。

下面我将进入实战,在Windows Server 2008 R2中安装WMS 2008,构建一台流媒体服务器,并进行视频直播。

解决方案布署图:

WMS 2008并不集成于Windows Server 2008 R2系统中,而是单独作为插件,可以通过微软官方网站免费下载。

一、安装

1、下载并安装Microsoft Update Standalone Package(msu)

下载地址:

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=B2CDB043-D611-41C9-91B7-CDDF6E5FDF6B

下载成功后,点击文件安装即可

2、添加流媒体服务器角色

打开2008的服务器管理器,在左侧窗格中右键点击“角色”,选择“添加角色”,打开角色添加向导

在服务器管理角色里选择“流媒体服务器”,下一步

选择windows媒体服务器、基于Web方式的管理工具和日志代理功能。如果选择安装Web方式管理工具,需要安装IIS组件。下一步

勾选 实时流协议(rtsp) ,下一步

由于和IIS端口冲突,无法选择 超文本传输协议(http),可后期更改端口设置,解决冲突

点击 “安装”

安装完成后,点击“关闭”

二、配置

1、服务器端配置

点击“开始”—“Windows Media服务”,打开媒体服务控制台

在左侧导航栏,点击并展开发布点

右键点击“示例_广播”发布点,选择“重命名”

注:此步中也可以右键发布点,选择“添加发布点(向导)”来新创建一个发布点。

将发布点重命名为 live,点击“确定”

选择live发布点,并切换到“源”选项卡

点击“更改按钮”,修改发布点传输的内容类型为“编码器(推)”,并在位置(L)中输入“Push:*”,(表示推送采集点采集的所有内容),点击“确定”

此处会出现错误警告:该发布点只可在采集点的编码器开始推动流是启动,无法由服务器管理员启动。点击“确定”,完成发布点设置。

点击左侧窗格中的 Windows Media 服务器WMS01,右侧窗格中,切换到“属性”选项卡,在左侧类别窗口中,点击“授权”,右侧插件窗口,双击“wms发布点acl授权”

在wms发布点acl授权属性对话框中点击添加增加windows media server 的WMUS匿名用户

给予WMUS匿名用户,读取、写入、创建权限。

然后在点击 控制协议,右侧窗口中双击 WMS HTTP 服务器控制协议

更改端口为其他任意端口,如1450

右键点击,选择 启用

2、视频采集计算机配置

安装Expression Enconder 4.0

下载地址:

http://www.microsoft.com/expression/try-it/Default.aspx

expression encoder是windows media encoder的升级版本,Expression Enconder 4.0可以免费下载使用,但部分功能需要付费版的Expression Enconder 4.0 pro,如IIS平滑流式媒体。

下载完成后,首先解压提取文件,同时会提示需要.net4的支持,根据提示下载安装

开始安装Expression Enconder 4.0,接受 许可协议

我们使用Expression Enconder 4.0的功能,此次跳过输入产品密钥,点 下一步

 

 

 

安装成功后,点击 完成

启动Expression Enconder 4.0,选择 实时广播项目

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

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

右侧预设窗格中,选择系统编码类型,中间部分切换到 输出 选项卡,勾选 “流式处理”,选中 “发布点”,在位置中输入http://servername:portnumber/publishingport,如:http://192.168.1.105:1450/live ,然后点击 连接

切换到编码选项卡,进行视频及音频自定义设置,完成后,点击中间的 开始 按钮,即开始了实时广播,广播结束后 点击 关闭 即可。

3、客户端实时收看直播

直播开始后,用户可通过两种方式收看节目

IE浏览器中输入 http://servername/publishingport.htm,使用IE浏览器内嵌的windows medis player收看

如:http://192.168.1.105/live.htm

另外一种是点击 开始 – 运行 输入mms://servername/publishingport ,打开本地的windows medis player播放器收看。

如:mms://192.168.1.105/live


推荐阅读
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 探讨在开发Windows应用程序时,如何高效地管理和存储大量库存及生产需求数据的方法。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • LeetCode 102 - 二叉树层次遍历详解
    本文详细解析了LeetCode第102题——二叉树的层次遍历问题,提供了C++语言的实现代码,并对算法的核心思想和具体步骤进行了深入讲解。 ... [详细]
  • JavaScript 中引号的多层嵌套使用技巧
    本文详细介绍了在 JavaScript 编程中如何处理引号的多级嵌套问题,包括双引号、单引号以及转义字符的正确使用方法。 ... [详细]
  • 在使用 PyInstaller 将 Python 应用程序打包成独立的可执行文件时,若项目中包含动态加载的库或插件,需要正确配置 --hidden-import 和 --add-binary 参数,以确保所有依赖项均能被正确识别和打包。 ... [详细]
author-avatar
张琇萍家云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有