[開發] 媒體服務與串流實況概念 (偷渡問題)

作者: felaray (傲嬌魚)   2014-07-01 14:31:07
這兩個禮拜在研究實作實況串流 + 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
Encoding and Serving Choices and Migration Considerations (IIS)
http://ppt.cc/F1kO (有講到AWMS)
MP4 to Smooth Streams.xml
http://www.getcodesamples.com/src/10B9ABF3/A1DBF577
Encoding an MP4 file to Smooth Streaming and Apple HLS in the cloud
http://ppt.cc/qCnm (MSDN blog)
DEMO Windows Azure Media Services – how to convert .mp4 to stream
http://mingfeiy.com/hello-windows-azure-media-services
Demo Windows Azure Media Service - how to convert .mp4 to streaming
part 1 : http://vimeo.com/46275436 (影片)
part 2 : http://vimeo.com/46299862 (影片)
Published video does not have .ism manifest
http://ppt.cc/57v3 (Azure論壇)
Windows Azure 媒体服务和 2012 年伦敦奥运会
http://ppt.cc/R6Wz
PlayReady
http://playready.directtaps.net/smoothstreaming/
Announcing Release of Windows Azure Media Services
http://ppt.cc/DQsg
作者: songla1204 (TTP)   2014-07-01 17:36:00
推! 正好要學 azure

Links booklink

Contact Us: admin [ a t ] ucptt.com