如何實(shí)現(xiàn)多碼率自適應(yīng)?
這篇文章介紹了Wowza®Media Server實(shí)現(xiàn)多碼率自適應(yīng)(ABR)的詳細(xì)步驟。

VOD點(diǎn)播業(yè)務(wù)的多碼率自適應(yīng)
面向Adobe Flash播放器、Apple iOS設(shè)備、Microsoft Silverlight播放器的多碼率自適應(yīng)(ABR)流媒體需要你事先按照需要的碼率大小,將一個(gè)視頻內(nèi)容預(yù)先編碼為多個(gè)不同碼率的視頻文件。為了保持正常和平滑的切換,不同碼率的多個(gè)文件的關(guān)鍵幀必須要對齊。這是必須在編碼的時(shí)候通過設(shè)置正確的關(guān)鍵幀間隔和幀率來完成的。當(dāng)你完成這些準(zhǔn)備后,請將這些視頻文件拷貝到[install-dir]/content 目錄下,然后創(chuàng)建一個(gè)同步多媒體集成語言(SMIL)文件將多個(gè)不同碼率的文件組織在一起。
例如,一個(gè)同樣的VOD內(nèi)容有下面四個(gè)不同碼率的文件:
· bigbuckbunny_450.mp4 (450kbps total bitrate)
· bigbuckbunny_750.mp4 (750kbps total bitrate)
· bigbuckbunny_1100.mp4 (1100kbps total bitrate)
· bigbuckbunny_1500.mp4 (1500kbps total bitrate)
用一個(gè)文本編輯器在[install-dir]/content文件夾下創(chuàng)建一個(gè)名字為bigbuckbunny.smil的SMIL文件,包含下面的內(nèi)容:
Code:
你可以看到在里面的 實(shí)體,它表示了每一個(gè)待播放的視頻內(nèi)容。system-bitrate 是這個(gè)文件的總碼率(單位bits-per-second)(包括音頻和視頻)。
注意:你最好按碼率大小從低向高的順序來組織不同的碼率,就像上面的例子那樣。如果你沒有從最低的碼率開始按增序組織,可能所有播放器都無法實(shí)現(xiàn)碼率自適應(yīng)功能。
Microsoft Smooth流媒體只能在視頻之間切換,音頻將采用下面第一個(gè)文件中的音頻軌道。如果你想采用第一個(gè)文件意外的另外一個(gè)音頻軌道,你可以在中添加一個(gè) 實(shí)體。例如:
注意:
· 當(dāng)使用Adobe HDS (San Jose) 或 Apple HLS(Cupertino) 流媒體技術(shù)時(shí), 實(shí)體將被忽略。
· JWplayer和Flowplayer采用客戶端側(cè)的XML文件來描述每一個(gè)碼率的內(nèi)容文件,不是本文上面介紹的服務(wù)端SMIL文件。它們都使用BWCheck 模塊。
VOD 播放
Adobe Flash 播放器 (San Jose/Adobe HDS)
針對Wowza Media Server 3.5.0及以上版本,雙擊[install-dir]/examples/VideoOnDemandStreaming/FlashHTTPPlayer/player.html, 輸入下面的信息,然后點(diǎn)擊Connect 按鈕。
Stream: http://[wowza-ip-address]:1935/vod/smil:bigbuckbunny.smil/manifest.f4m
Apple iOS 設(shè)備 (Cupertino/Apple HLS)
在iOS設(shè)備的Safari瀏覽器上輸入下面的URL:
URL: http://[wowza-ip-address]:1935/vod/smil:bigbuckbunny.smil/playlist.m3u8
Microsoft Silverlight (SmoothStreaming)
針對Wowza Media Server 3.5.0及更高版本,雙擊[install-dir]/examples/VideoOnDemandStreaming/SilverlightPlayer/player.html, 輸入如下信息, 然后點(diǎn)擊Connect按鈕。
Stream: http://[wowza-ip-address]:1935/vod/smil:bigbuckbunny.smil/Manifest
默認(rèn)情況下,Microsoft Smooth 流媒體將將為manifest data 實(shí)時(shí)地計(jì)算內(nèi)容我呢見的視頻碼率和音頻碼率. 如果你希望使用Wowza Media Server 使用SMIL文件中的碼率信息,你需要在[install-dir]/conf/[application]/Application.xml文件的HTTPStreamer/Properties添加下面的屬性設(shè)置:
Code:
smoothStreamingUseSMILBitrates
true
Boolean
當(dāng)在這個(gè)配置下運(yùn)行時(shí),Wowza Media Server 將認(rèn)為視頻和音頻的system-bitrate 的數(shù)值僅僅針對視頻和音頻自己。
Adobe Flash Player (RTMP)
針對Adobe Flash 的動(dòng)態(tài)流傳輸,則需要在客戶端做一定的工作。下面的資料展現(xiàn)了如何在Flash里實(shí)現(xiàn)動(dòng)態(tài)流傳輸?shù)脑敿?xì)步驟:Dynamic streaming in Flash (part 1)Dynamic streaming in Flash (part 2)Dynamic streaming in Flash (part 3)當(dāng)你采用Wowza Media Server的Adobe HTTP Dynamic Streaming (Adobe HDS)時(shí),最好打開dynamic stream 標(biāo)簽,它將提供更精確的帶寬計(jì)算能力。要打開dynamic stream 標(biāo)簽,請打開[install-dir]/conf/[application]/Application.xml文件,在Streams/Properties 里添加下面的屬性:
Code:
enableDynamicStreamMarkers
true
Boolean
注意: Dynamic stream 標(biāo)簽在Wowza Media Server 2.2.0及更高版本中是默認(rèn)打開的。
直播業(yè)務(wù)的多碼率自適應(yīng)
面向Adobe Flash播放器、Apple iOS設(shè)備、Microsoft Silverlight播放器的直播業(yè)務(wù)多碼率自適應(yīng)(ABR)需要你的編碼器能夠從一個(gè)直播源生成多個(gè)不同碼率的直播流并且關(guān)鍵幀要對齊。你同樣可以用一個(gè)SMIL文件將這些流組織在一起。
例如,假定編碼器輸出了三個(gè)不同的碼率的直播流:
· myStream_700 (700kbps total bitrate)
· myStream_350 (350kbps total bitrate)
· myStream_200 (200kbps total bitrate)
用一個(gè)文本編輯器,在[install-dir]/content文件夾下創(chuàng)建一個(gè)名稱為myStream.smil的SMIL文件。內(nèi)容如下:
你可以看到在中有一個(gè) 實(shí)體代表了每一個(gè)碼率的直播流。system-bitrate 的數(shù)值代表了每一個(gè)直播流的總碼率(單位bits-per-second)。
注意:你最好按碼率大小從低向高的順序來組織不同的碼率,就像上面的例子那樣。如果你沒有從最低的碼率開始按增序組織,可能所有播放器都無法實(shí)現(xiàn)碼率自適應(yīng)功能。
Microsoft Smooth流媒體只能在視頻之間切換,音頻將采用下面第一個(gè)文件中的音頻軌道。如果你想采用第一個(gè)文件意外的另外一個(gè)音頻軌道,你可以在中添加一個(gè) 實(shí)體。例如:
注意:
· 當(dāng)使用Adobe HDS (San Jose) 或 Apple HLS(Cupertino) 流媒體技術(shù)時(shí), 實(shí)體將被忽略。
· JWplayer和Flowplayer采用客戶端側(cè)的XML文件來描述每一個(gè)碼率的內(nèi)容文件,不是本文上面介紹的服務(wù)端SMIL文件。它們都使用BWCheck 模塊。
直播播放
Adobe Flash Player (SanJose/Adobe HDS)
針對Wowza Media Server 3.5.0及更高版本,雙擊[install-dir]/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html, 輸入如下信息,然后點(diǎn)擊Connect 按鈕。
Stream: http://[wowza-ip-address]:1935/live/smil:myStream.smil/manifest.f4m
Apple iOS 設(shè)備 (Cupertino/Apple HLS)
在iOS設(shè)備的Safari瀏覽器上輸入如下的URL:
URL: http://[wowza-ip-address]:1935/live/smil:myStream.smil/playlist.m3u8
Microsoft Silverlight (SmoothStreaming)
針對Wowza Media Server 3.5.0及更高版本,雙擊[install-dir]/examples/LiveVideoStreaming/SilverlightPlayer/player.html, 輸入下面的信息,軟后點(diǎn)擊Connect 按鈕。
Stream: http://[wowza-ip-address]:1935/live/smil:myStream.smil/Manifest
默認(rèn)情況下,Microsoft Smooth 流媒體將將為manifest data 實(shí)時(shí)地計(jì)算內(nèi)容我呢見的視頻碼率和音頻碼率. 如果你希望使用Wowza Media Server 使用SMIL文件中的碼率信息,你需要在[install-dir]/conf/[application]/Application.xml文件的HTTPStreamer/Properties添加下面的屬性設(shè)置:
smoothStreamingUseSMILBitrates
true
Boolean
當(dāng)在這個(gè)配置下運(yùn)行時(shí),Wowza Media Server 將認(rèn)為視頻和音頻的system-bitrate 的數(shù)值僅僅針對視頻和音頻自己。
Adobe Flash Player (RTMP)
針對Adobe Flash 的動(dòng)態(tài)流傳輸,則需要在客戶端做一定的工作。下面的資料展現(xiàn)了如何在Flash里實(shí)現(xiàn)動(dòng)態(tài)流傳輸?shù)脑敿?xì)步驟:Dynamic streaming in Flash (part 1)Dynamic streaming in Flash (part 2)Dynamic streaming in Flash (part 3)當(dāng)你采用Wowza Media Server的Adobe HTTP Dynamic Streaming (Adobe HDS)時(shí),最好打開dynamic stream 標(biāo)簽,它將提供更精確的帶寬計(jì)算能力。要打開dynamic stream 標(biāo)簽,請打開[install-dir]/conf/[application]/Application.xml文件,在Streams/Properties 里添加下面的屬性:
enableDynamicStreamMarkers
true
Boolean
注意: Dynamic stream 標(biāo)簽在Wowza Media Server 2.2.0及更高版本是默認(rèn)打開的。
Wowza Streaming Engine 4是業(yè)界功能強(qiáng)大、API接口豐富的流媒體Server產(chǎn)品,采用它作為流媒體服務(wù)器產(chǎn)品的案例很多,直播、在線教育、IPTV都有它的用武之地。
京ICP備09015132號-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫