999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

支持隨機播放HTTP協議流式視頻點播系統的搭建

2010-12-31 00:00:00熊冬升
現代教育技術 2010年8期

【摘要】通過剖析支持隨機播放HTTP協議流式視頻點播系統在服務器端、客戶端以及內容源的關鍵要求,提出對應實現技術特點,全面介紹了一種基于HTTP協議傳輸flv流式視頻并且支持隨機定位播放的視頻點播系統搭建技術。

【關鍵詞】HTTP協議;流式視頻;點播系統;隨機播放

【中圖分類號】G40-057【文獻標識碼】A【論文編號】1009—8097(2010)08—0052—03

引言

視頻點播系統(Video On Demand ,VOD)是當前媒體應用的一個熱點,在現代遠程教育中也是一項重要應用。采用流式視頻點播系統來支持教學視頻的傳輸,是大多數遠程教育試點高校正在使用的技術。當前普遍的流式視頻點播系統都是基于一些專用網絡傳輸協議搭建的,主要有mms協議、rtsp協議和rtmp協議等,這些協議都可以實現流式視頻點播系統,但因為其是私有協議,在一些網絡環境中使用會遇到一些因為協議不支持而不能正常使用的麻煩,此外采用了這類實現方式就不得不采用其專門軟件,特別是昂貴的專門服務器軟件。為了突破這樣一些困難,現在逐漸興起了HTTP協議流式視頻點播系統,這些系統不采用專門的服務器軟件,對客戶端要求也只是一些基于普遍應用的嵌入式小程序,供點播的流式視頻源也可以方便的獲得,所以逐漸成為了當前流式視頻點播應用的主流。本文就將介紹這類系統實現的關鍵技術。

一 流式視頻點播應用與點播系統簡介

一個流式視頻點播應用的過程是客戶端發起一個對某段內容的點播請求,服務器響應該請求,依據請求向客戶端傳輸視頻內容,客戶端接收到內容后進行解碼播放。不同于非流式視頻點播就在于客戶端不需要接受完所有的文件內容就可以開始播放。

可見視頻點播系統實現主要包括3個要素:服務器端、客戶端、流式視頻內容,其系統結構圖如圖1所示。

服務器端主要提供響應客戶端請求,向客戶端傳輸流式視頻數據;客戶端向服務器發起對具體內容的請求,在接受到傳輸來的流式視頻數據后實時解碼,實現內容展示;流式視頻內容是以一定格式編碼的視頻數據文件,其在服務器端表現為獨立存儲的專門文件。

流式視頻點播系統與視頻實時廣播系統主要區別就在于流式視頻內容不同,流式視頻點播系統中的流式視頻內容是預先編碼存儲好的,而實時廣播系統是由專門的實時編碼軟件實時傳輸過來的。

流式點播應用還分支持隨機定位播放和不支持隨機定位播放兩種形式。不支持隨機定位播放的點播指文件數據只能嚴格按照固有的順序進行傳輸,客戶端只能看到已經傳輸并緩沖在本地的內容,不能隨意的請求更后面的內容。反之,支持隨機定位播放的點播就可以不嚴格依照固有順序,能從播放內容中隨意的一個時間點開始播放。

二 支持隨機定位播放的HTTP協議流式視頻點播系統搭建的三個關鍵

要實現支持隨機定位播放的HTTP協議流式視頻點播系統需要使視頻點播系統的三個要素都滿足一定的要求,這就成為了系統實現的三個關鍵點。

1 服務器端要求:服務器端的關鍵是能在普通HTTP流式傳輸基礎上,能根據特殊的請求隨機從內容文件中定位開始傳輸新的數據,即能響應帶隨機定位標記的點播請求。其實這就類似于支持斷點續傳的HTTP服務,只不過斷點續傳中的續傳標記是數據傳輸中隨機分隔的,這里的定位標記需要按一定計算才能獲得,使得播放能夠重新建立。

2客戶端的要求:客戶端的關鍵是能在普通流式播放基礎上能夠通過計算提出正確的請求定位參數,并能夠實現隨機定位后的播放——從中途開始的播放。

3 流式視頻內容方面要求:流式視頻內容的關鍵是能夠支持服務器和客戶端隨機定位的請求,這一般需要特殊的內部數據組織。

三 系統實現

分析了系統的關鍵點,實現系統就變得比較簡單了,主要涉及三個方面。

1 流式視頻內容格式的選擇 在系統實現中我們以flv(FLASH VIDEO)視頻作為流式視頻內容格式。流式flv是當前最流行的視頻格式,廣泛被各大視頻網站采用,比如YouTube、土豆網等等。其可以方便地采用免費開源轉換軟件如ffmpeg和mencoder等從各類其他視頻格式轉換獲得。需要注意的是經過轉換的flv其實還不能滿足隨機定位播放的要求,還需要采用yamdi或者flv tools2 工具對flv文件進行metadata數據注入修正,經過metadata注入,flv文件上就有了整個視頻文件播放總時間以及視頻每秒對應的文件位置數據等信息,這為后面在客戶端計算出隨機播放定位時的文件頭位置提供了條件。metadata數據還包括了視頻原始分辨率、采用的編碼格式等信息,這都為實現視頻的播放提供了保障。

2 客戶端的實現 客戶端就是可嵌入普通web頁面內的flash小程序,程序可以用很多工具開發,為了使程序小巧,推薦直接采用ActionScript3開發,使用Flex SDK編譯生成swf格式程序,這可以使得最后程序為10k左右。ActionScript3編程時采用Flash9的原生播放器庫中的NetConnection 類、NetStream類以及Video類等就可以創建采用漸進式流媒體方式播放flv格式視頻的播放類了,但要實現隨機定位還需要進行專門的定制處理,這也不復雜,主要有這樣的2個步驟:

(1) 首次開始播放時加載flv文件metadata數據,提取并緩存總播放時間和每秒對應文件頭信息等數據;另根據metadata中視頻分辨率、編碼格式等信息建立播放環境開始播放視頻;

(2) 按時間的定位操作分成兩種形式:形式一是數據已經緩沖到客戶端,直接使用NetStream類提供的seek函數實現定位播放;形式二是數據還未緩沖到,則需要計算出定位時間所對應的文件頭,向服務器發出新的數據請求,重新緩沖后開始播放。

這里判斷是否已經緩沖到定位時間的條件有:

StartOff < SeekOff ————條件1

SeekOff < StartOff + BufferLoaded————條件2

StartOff是此次請求的文件頭偏移地址,首次定位前為0;

SeekOff是對應定位時間的文件頭偏移地址,這個通過來源于metadata數據查表獲得;

BufferLoaded是本次播放已經緩沖的數據量。

如果條件1和條件2同時滿足,即StartOff路徑/文件名?定位頭參數標記=文件頭偏移量,例如 http://168.0.0.1/xxx.flv?start=12345,這其實就是在請求文件時附帶了一個關于文件頭偏移的參數,其中“定位頭參數標記”的具體名稱是可以自定的,需要服務器端支持,這里采用的是“start”,文件頭偏移量是查表獲得的,也就是前面條件中的SeekOff。

3 服務器端的選用。服務器端可以采用常見的開源HTTP服務器,只要其支持HTTP流式數據即可,推薦使用Nginx或者lighttpd,因為這兩種服務器對flv格式有專門的優化,而且對隨機播放支持也已經有了相應的服務器擴展實現,我們采用的是Nginx。 默認Nginx實現flv點播支持時采用“start”為定位頭參數標記,如果你想定義自己的標記可以修改 ngx_http_flv_module 模塊并編譯替換系統默認的。在Nginx中的相關配置是在某個server配置中添加:

Location ~ \\.flv {

root<服務端數據路徑>; #<服務端數據路徑>需要指向真實目錄

flv;

}

至此一個完整的支持隨機定位播放HTTP協議流式視頻點播系統已經搭建起來。

小結

本文介紹的支持隨機定位播放HTTP協議流式視頻點播系統實際搭建比較方便,應用范圍廣泛。且該系統支持Linux和win32平臺等可跨平臺部署和使用,這進一步拓展了系統的應用空間。因為數據傳輸只采用了HTTP協議,所以有最好的網絡適應性,而且管理更方便。此外使用到的軟件都是開源免費的,這也降低了系統部署成本。囿于系統形式的不足,這個系統只支持秒級的隨機定位,而不支持毫秒等更精細的定位,但筆者認為這在大多數的點播應用中是完全能夠滿足要求的。在這一系統基礎上進行擴展能夠建立起更廣泛的應用,例如現在網絡教育中常見的教師講授視頻和展示同步顯示的點播應用就可以在此基礎上擴展實現。此外這一系統還可以很方便地擴展為支持mp4流式格式。

參考文獻

[1] W3C .HTTP - Hypertext Transfer Protocol[EB/OL].

< http://www.w3.org/Protocols.>

[2] Ing. Fabio Sonnati. Flash Video Technology[M].美國: Progetto Sinergia, 2006 .

[3] ADOBE. ActionScript 3.0 編程[M].美國:Adobe Systems Incorporated,2008:439-473.

[4] ADOBE.使用ActionScript3.0組件[M].美國:Adobe Systems Incorporated,2008:117-147.

[5] Nginx Community. NginxhttpFlvStreamModule[EB/OL].

主站蜘蛛池模板: 亚洲精品午夜天堂网页| 国产成人综合欧美精品久久| 成人免费一级片| 国产白丝av| a级毛片免费网站| 国产午夜福利在线小视频| 米奇精品一区二区三区| 区国产精品搜索视频| 欧美日韩亚洲综合在线观看| 国产成人高精品免费视频| 国产色网站| 日韩毛片视频| 亚洲狠狠婷婷综合久久久久| 久久久久久久久18禁秘| 久久国产精品波多野结衣| 色噜噜久久| 亚洲成a人片77777在线播放| 伊人大杳蕉中文无码| 国产午夜在线观看视频| 中文字幕在线日本| 青青青视频蜜桃一区二区| 日韩国产 在线| 九色视频线上播放| 日本高清有码人妻| 欧美一级色视频| 午夜不卡福利| 免费看黄片一区二区三区| 午夜啪啪网| 亚洲男人的天堂视频| 国产在线精品99一区不卡| 亚洲有无码中文网| 97在线免费| 国产成人综合久久| 国产jizzjizz视频| 国产在线视频欧美亚综合| 久久毛片网| 在线中文字幕日韩| 亚洲狠狠婷婷综合久久久久| 一本色道久久88| 成人一区在线| 少妇精品在线| 日韩久久精品无码aV| 欧美三级不卡在线观看视频| 精品久久蜜桃| 亚洲欧美在线看片AI| 欧美中文字幕一区| 伊人狠狠丁香婷婷综合色| 久久久久免费看成人影片| 久久91精品牛牛| 无遮挡国产高潮视频免费观看 | 国产激情在线视频| 久久久久久尹人网香蕉| 久久久久久久蜜桃| 国产精品3p视频| 久久免费看片| 国产a网站| 无码中文字幕精品推荐| 2021精品国产自在现线看| 亚洲精品波多野结衣| 日韩东京热无码人妻| 午夜毛片免费观看视频 | 日本尹人综合香蕉在线观看| 日韩一二三区视频精品| 亚洲熟妇AV日韩熟妇在线| 欧美三级视频网站| 国产精彩视频在线观看| 九九热精品视频在线| 日韩亚洲高清一区二区| 国产亚卅精品无码| 亚洲第一中文字幕| 亚欧成人无码AV在线播放| 91啪在线| 亚洲av无码成人专区| 亚洲成肉网| 99久久99这里只有免费的精品| 制服丝袜一区| 五月天久久婷婷| 91视频精品| 国产人免费人成免费视频| 亚洲视频免| 91无码网站| 亚洲床戏一区|