Windows Media 网络直播 HOWTO 上海交通大学网络信息中心 姜开达 2009.5.1
Windows Media系统架构 负载均衡 Media Encoder OS:Windows XP 卫星信号 CATV 现场直播信号 Media Encoder OS:Windows XP 网络流媒体 Media Server OS:Windows Server 2003 / 2008
Windows Media 技术 支持 IPv4、IPv6、unicast、multicast 高性能,可扩展性好,能够支持数万并发流 可以接收转发部分网络流 (http、rtsp) Windows Server 操作系统自带组件,无需再投入 微软技术支持,有生命力
应用场景 电视台网络直播 广播电台网络直播 校内外活动网络直播 课程、讲座、报告、晚会、访谈、大型活动……
学生宿舍收看网络电视 交大学生在宿舍通过校园网收看十七大报告网络直播
小规模使用转播电视 电视卡 电视盒+视频捕捉卡
大规模使用转播电视(一) 对内存要求不高,主要是依靠CPU软压 输入一路CATV RF 射频信号, 多台编码PC 每台配1~3块视频捕捉卡 多路电视解调器 输入一路CATV RF 射频信号, 输出多路电视频道的视频和音频信号到多块视频捕捉卡
大规模使用转播电视(二) 另一种推荐的成本更低,效果不错的方案是使用电视卡 每台PC配1~2块电视卡 如果1块电视卡,1路音频输出进本机集成声卡 如果2块电视卡,有2路音频输出,需要再加1块声卡
Media Encoder 编码器 推荐这个 x32的 这个不推荐
Media Encoder 编码设置(一)
Media Encoder 编码设置(二) 在这里调频道 这里视频源用电视卡示例
Media Encoder 编码设置(三) 推荐服务器主动来连接Encoder HTTP 端口可自行定义
Media Encoder 编码设置(四) 先点下一步跳过设置,之后还是要做很多调整的 既然是网上直播,还是CBR固定码率(恒定比特率)比较合适
Media Encoder 编码设置(五) 看需要选择是否存档
Media Encoder 编码设置(六) 添加相关备注信息, 这些信息在用户收看直播时可以看到
Media Encoder 编码设置(七) 点击视频源-配置 在弹出窗口可以更换频道
Media Encoder 编码设置(八) 压缩默认比特率太低 需要重新加以编辑调整
建议编解码器都使用 Windows Media 9 Media Encoder 编码设置(九) 建议编解码器都使用 Windows Media 9 这个务必要记住勾选
Media Encoder 编码设置(十) 多核CPU可以支持 720×576,1000k bps 以上码率进行编码
Media Encoder 编码设置(十一) 对于大尺寸画面(比如640*480以上) 取消隔行扫描是必选的 否则输出可能出现严重的拉丝现象
Media Encoder 编码设置(十二) 平均 fps 要尽量 接近预计 fps, 否则就要做调整 来降低CPU负载 务必把CPU负载 控制在85%以内 避免出现CPU来 不及处理而引起 的丢帧现象
Media Encoder 编码设置(十三) 如果丢帧数在快 速持续增长,就 必须采取措施来 降低CPU负载
Media Encoder 编码设置(十四) 降低CPU负载的几种方式 1.使用主频更高的多核CPU 2.降低输出分辨率到640×480或576×432或384×288 3.视频编码使用 Windows Media Video 8(不建议这么做) 4.关闭视频面板,取消预览 5.一台PC只开一个Encoder,压缩一路源
Media Encoder 编码设置(十五) 如果出现 红色区间 黄色区间 表示 输入音频 信号过强 需要调整 如果保持 绿色区间 表示 输入音频 信号正常 调节音量控制 可以改变输入 音频信号强度
Media Encoder 编码设置(十六) 如果CPU足够强,在 Encoder 的 工具-选项-性能 -广播时:可以把滑块(红色区域)向较好质量方向拖动 这样可以提高输出视频质量,但同时会加大CPU利用率, 注意CPU利用率务必不要超过85% ,以避免丢帧
电视卡的频道更换 vbs 脚本 CHANNEL.vbs 内容,可改写为ASP来配合远程自动调用 (需要适当修改 DCOM 配置 Encoder部分) Dim Encoder Dim EncoderAgent Dim EncoderNames Dim sName Dim srcVid Set EncoderAgent = CreateObject("WMEncAgt.WMEncoderAgent", "\\127.0.0.1") Set EncoderNames = EncoderAgent.EncoderNamesCollection sName = EncoderNames.Item(0) Set Encoder = EncoderAgent.GetEncoder(sName) set srcVid=encoder.SourceGroupCollection("wmv").Source(2, 0) srcVid.channel=25
用户自由选择控制 Encoder 换频道
广播电台网络直播(一) 1台PC可接多块 声卡做多路音频接收 信号源可以为调频收音机、带FM的MP3等
广播电台网络直播(二) 选择适当声卡
广播电台网络直播(三) 128 kbps立体声已接近CD音质
广播电台网络直播(四) 由于仅涉及到音频编码,对编码PC性能要求较低 1台P4 1.7 G,256M 内存的PC可以同时编码 5 路128kbps广播
广播电台网络直播(五)
校内外活动直播示例 校园网 笔记本 Encoder 特技台 使用特技台可以实现多机位切换, 字幕叠加等各种特效,大型活动必备 1394线 Media Server DV
校内已网上直播几百场校园活动
现场实时加字幕,各种特效切换 2008年10月 校迎新晚会 直播画面
Media Server 配置获取 Encoder 的信号
Media Server 支持三种传输协议 HTTP 默认关闭 MMS 默认开启 RTSP
大部分网上mms信号都可以用rtsp方式获取 mms://video.bupt.edu.cn/HNWS= rtsp://video.bupt.edu.cn/HNWS = mms://你的MediaServer地址/HNWS 可以用来转发 其他网络电视 的mms信号到 本地网络
廉价的 WindowsMedia 编码 PC 编码用一批 PC 就可以了 最近买的几台编码PC报价单如下,单台总价不过 2099 CPU:Intel 酷睿2双核处理器 E7400(2.8GHz) 799.00 内存:2G DDR2 138.00 主板:Intel G31 /LGA 775 379.00 硬盘:160G SATAII 299.00 电视卡:PCI接口 175.00 电源:额定300W,最大功率400W 209.00 机箱 100.00
PC编码输出画面接近模拟电视 使用多核CPU压缩,可以输出 720×576 分辨率画面
视频直播服务器性能分析 随着服务器硬件性能显著提升, CPU,内存都不再成为瓶颈 服务器接入带宽成为瓶颈 通常服务器为2块千M网卡,无法发挥全部能力
廉价的 WindowsMedia 直播服务器 2009年4月22日截图:老机器 单CPU P4 主频 2.8G(HT) 2G内存 输出800M 视频直播流量时 CPU利用率仅为 25% 全新的更高性能的使用酷睿2四核CPU的 PC 价格在 2500 以内
高性能的 Windows Media Server 峰值输出 3Gbps 流量
校内某台视频服务使用二层接入万M交换机日流量图 高性能服务器可以输出高带宽 下图的输出流量主要由两台四核1U服务器产生 校内某台视频服务使用二层接入万M交换机日流量图
使用多块网卡来均衡输出流量 服务器使用多块千M网卡
PCI Express 扩展接口简介 PCI Express 是新一代的总线接口 支持热插拔 PCI Express 1x 500MB/S PCI Express 2x 1GB/S PCI Express 4x 2GB/S PCI Express 8x 4GB/S PCI Express 16x 8GB/S 目前主流服务器扩展接口普遍采用了PCI-E 4x 或 8x
服务器静态路由均衡流量(一) route print 命令获取所有网卡的 Interface List 每块网卡对应一个类似 0x10003的编号
服务器静态路由均衡流量(二) 每块网卡配置一个IP,服务器上写一个bat批处理脚本 每次重新启动后需要重新运行一遍脚本 可以精确控制每块网卡的流量 脚本示例如下,对不同网段用户返回的流量从不同网卡出去 其中 202.120.2.254 为网关,0x10003 - 0x10006 为网卡编号 route delete 202.120.0.0 route add -p 202.120.0.0 mask 255.255.248.0 202.120.2.254 IF 0x10003 route delete 202.120.8.0 route add -p 202.120.8.0 mask 255.255.248.0 202.120.2.254 IF 0x10004 route delete 202.120.16.0 route add -p 202.120.16.0 mask 255.255.248.0 202.120.2.254 IF 0x10005 route delete 202.120.24.0 route add -p 202.120.24.0 mask 255.255.248.0 202.120.2.254 IF 0x10006
多网卡聚合均衡流量(一) Intel 网卡(PROSet 分组功能) 静态链接聚合、IEEE 802.3ad 动态链接聚合
多网卡聚合均衡流量(二) Broadcom 网卡(Broadcom Advanced Control Suite 3)
DNS 域名多IP负载均衡 同一域名对应多个IP地址 下面例子 media4.sjtu.edu.cn 对应 2 个 IPv6 地址
一步到位,使用万M网卡 PCI-E 4x 接口就可以提供 2GB/秒的带宽 价格稍贵(多模光网卡<1万) 多核服务器性能足够,值得考虑
IPTV 在校园网内大有发展前景
更多介绍请访问 http://ipv6.sjtu.edu.cn/doc.php
谢 谢! kaida@sjtu.edu.cn