作者felaray (傲娇鱼)
看板Cloud
标题Fw: [开发] 媒体服务与串流实况概念 (偷渡问题)
时间Tue Jul 1 16:35:43 2014
※ [本文转录自 WindowsPhone 看板 #1JibMnIp ]
作者: felaray (傲娇鱼) 看板: WindowsPhone
标题: [开发] 媒体服务与串流实作概念(偷渡问题)
时间: Tue Jul 1 14:31:07 2014
这两个礼拜在研究实作实况串流 + CDN,因为之前完全没概念,撞了很多墙.
所以想写成一篇文章~给有需要的人参考,当然也有问题想提出来讨论~
前言: 一开始以为只要有个
server或
cloud service就可以输出,所以打算使用
Windows Azure Media Service (WAMS) 就可以解决.事实上也是如此,在既有档案
的情况下这是最佳解.
但是实况串流(Live Smooth Streaming)的情况下 WAMS 似乎还不支援?
看了许多MSDN论坛上的古老文章都说Live Smooth is coming sooooon...
并且
建议用IIS装Media service这个IIS扩充功能来解决.
(论坛上08~13年的文章都这麽说,奇怪的是2014却没相关文章)
最後脑羞的决定先来架个 IIS + Media serivce 看看.後来才稍微搞懂要怎麽做.
概念: 以往如果要给人看影片的话,丢到 Server 上,再提供对方 url 或是用 html tag
来呈现就好,所以原本觉得这实在没甚麽难度.
後来经过几天的鬼打墙才搞懂 影片要先经过
编码 -> 发布点 -> 用户端
方案:
A: 本机上传 -> 云服务 Azure Media service(编码/发布) -> client
B: 本机编码 -> 远端主机 IIS + Media service(发布) -> client
C: 云主机 Azure VM 跑IIS (编码/发布) -> client
实作:
A: 首先到 Azure 入口网站,右上角选择中文,创个
媒体服务 http://ppt.cc/o0Fr
然後到了媒体服务的项目,在里面其实有精灵可以简单让你上传影片,并且直接
在
云端上编码,并用串流输出 这些都蛮简单的我就不说了.而且创好以後也有
范例程式码可以即时下载回去研究.
但注意到了吗?那只是上传影片,
和实况一点关系都没有啊!
当时还不太懂,但是
猜测要用动态编码的概念将本机的要实况的内容即时编码
然後输出到WAMS上.不过我在这边打墙太多天 加上觉得WAMS的费用好像蛮贵
的,所以暂时先打住,换到了
方案B (WAMS费用:
http://ppt.cc/TlLN )
B: 想要实作这个方案,需要编码和装载媒体服务的IIS远端主机(当然要本机也可以)
。
编码工具用 Microsoft Expression Encoder 4
官方载点
http://ppt.cc/4n~x Dreamspark可以下载到进阶功能版
。
发布工具用 IIS Media Services 4.1 请看
http://ppt.cc/chd4
IIS 架设的部分麻烦自己找教学,就算win7/8也可以装
首先安装好Encoder 4,开启的时候选择实况方案.这时候就可以选择内容来源
要从电脑装置或是影片.选好以後设定输出格式还有发布点即可.
回到IIS的部分,也是安装好 IIS 以後开启主控台,并且到预设网站下会看到
Media Service的选项,选择 Live Smooth Streaming,建立好发布点,并且启动
发布点.
这时候就可以在Encoder 4 进行编码,即时输出到IIS上.再透过web/装置去收看
(以上说得很简略,因为
详细教学在这:http://ppt.cc/-CGI 简体字 但很详细)
C: 既然
B方案可以在本机上执行,那把
B方案给移植到了Azure VM如何?
首先安装了上述的软体,并且在本机编码发布到 Azure VM 的 IIS 上,
初步实作应该可行,但是我家网路上传512k太慢,这过程到在还没看到讯号之前
就挂掉惹ww
所以有了C方案,想说我在云端VM上编码,同时间也在本机当作发布点如何?
其实过程差不多都跟B一样,但是一开 Encoder 4.....就悲剧惹
系统提示说
找不到 wmvcore.dll,研究了一个小时,才知道是和桌面体验有关的.
新增系统功能
Desktop Experience 就解决了.如果是Win2012的话就要看这篇
http://ppt.cc/mbFs 才找到那个功能.
最後总算开起来啦! 也都设定好 然後一编码就....当惹ww
说是
程式没有回应 试了两三次还是不行 我就跑去看
德国踢球了 =.=||
小结: 花了一个多礼拜加上无数次的鬼打墙,目前还是达不到我的要求,我希望不透过任
何硬体就可以做到实况串流.当然会有人说:干嘛这麽累?用实况网站就好啦
但是那个和我要做的东西不同,所以还是只能自己做XD
但经过步骤B 总算对实况串流有些概念了.如果有人能够用A方案做出来,麻烦跟
我说! T.T
稍後应该会继续来尝试看看动态编码.不过前几天在家跑WAMS提供的范例console
居然也会出现远端500的错误! 找问题找很久,後来去外面咖啡厅想来debug,居然
又正常了! 当下觉得应该又是和网路速度有关系.
所以对我来说A方案是最佳解,C方案也能解决我网速的问题.B方案就是下下解,
只能用来验证概念而已.当然也最简单 :)
测试工具: 这是一个验证你串流成功与否的好网站 , 请注意网址有特定的格式.
http://smf.cloudapp.net/healthmonitor
http:/ <stream server> / <push file>.ism/manifest
参考资料:
WP7 串流影音播放简单做 (IIS Smooth Streaming + MMPPF)
http://ppt.cc/bJLL 虽然是WP7的 但是依旧可以参考
使用画面撷取作为现场广播装置 (Encoder 4)
http://ppt.cc/t0jr
准备伺服器进行 Live Smooth Streaming 广播 (Encoder 4)
http://ppt.cc/DZGt
IIS Smooth Streaming 影音串流媒体的建立与发布
http://ppt.cc/RsWR
DEMO Azure Media Services – convert .mp4 to smooth streaming format
http://ppt.cc/1Bv0
How to: Deliver streaming content (Azure)
http://ppt.cc/OTa9
---
看完球赛 只睡不到三小时
现在又花了两个多小时打了这篇文章 整个又饿又困又累呀><
只希望这篇赚到1000P去买一份鸡排来吃了..
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 124.10.80.50
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/WindowsPhone/M.1404196273.A.4B3.html
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: felaray (124.10.80.50), 07/01/2014 16:35:43
1F:推 dahanhsi:nice practice, 虽然大部分人应该还是用aws 07/01 22:18
查了一下 AWS的是 Digital-media service
http://aws.amazon.com/cn/digital-media/
※ 编辑: felaray (124.10.80.50), 07/06/2014 02:44:27
2F:推 qrtt1:一般来说都是搭配 CDN 或第 3 方预建的 AMI 来做的. 07/07 15:04
谢谢~
後来有找到WOWZA 他後面是用AWS来做的~
4F:→ qrtt1:不过好奇怎麽想算 Smooth Streaming ?只需服务 Windows 的 07/07 15:05
5F:→ qrtt1:Device 吗?若以 iOS 和 Android 4.+ 那麽大的数量,一般会 07/07 15:06
6F:→ qrtt1:选用 HLS 为主。 07/07 15:06
在Encode的时候有HLS的选项,不过我想先在web端实作看看.所以先转成Smooth Streaming
,到时候就可以直接透过测试工具去看看我处理实况的code正不正确~
不过Azure Media service後来吃光了我帐户的额度,光Encode就花上不少 後来这件事情
就因为没有额度而暂缓了
※ 编辑: felaray (124.10.80.50), 07/08/2014 09:28:09
※ 编辑: felaray (124.10.80.50), 07/08/2014 09:29:37