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

電視臺節(jié)目遷移技術(shù)的研究與實現(xiàn)

2012-09-25 04:33:02文丨李繼青唐繼勇白新躍
中國傳媒科技 2012年20期
關鍵詞:方法

文丨李繼青 唐繼勇 白新躍

(電子科技大學,成都 611731)

現(xiàn)今電視臺已經(jīng)用視頻服務器的硬盤播出系統(tǒng)取代了傳統(tǒng)的錄像機播出,并逐漸形成電視全臺制作播出網(wǎng)絡,目前電視臺所有節(jié)目有三種存儲方式:在線存儲(On-Line)、近線存儲[1](Near-Line)和離線存儲(Off-Line),也分別稱為一級、二級、三級存儲。在線存儲[2]方式是將所有的節(jié)目都用硬盤保存起來,直接存儲在視頻服務器中,當有播出請求時,就可以立即取得數(shù)據(jù),訪問速度快,但視頻服務器存儲容量有限制;離線存儲使用磁盤陣列、光盤、磁帶作為節(jié)目存儲的載體,其最大的優(yōu)點就在于其廉價的存儲成本,以及其靈活的擴展性能,但訪問速度較慢,效率較低。近線存儲方式有機將離線存儲和在線存儲的優(yōu)點結(jié)合,能實現(xiàn)較大容量節(jié)目的存儲,而且遷入在線存儲速度也比離線遷入快。由于高清/標清節(jié)目所需要磁盤容量較大,目前在電視臺中一般用多臺節(jié)目存儲服務器作為二級存儲設備。如圖1,在電視全臺網(wǎng)的節(jié)目播出和節(jié)目管理中,需要在一級、二級和三級存儲間進行相互的遷入和回遷。本文重點以二級存儲遷移到在線存儲為討論對象,其它情況的遷移與此類似。

圖1 電視臺節(jié)目存儲三級架構(gòu)

1 節(jié)目遷移需求分析

近線存儲方式的節(jié)目當需要進行播出時需要遷移到視頻服務器(在線存儲方式),或者對于有主備二級存儲的電視全臺網(wǎng)系統(tǒng)中,二級存儲之間也需要進行節(jié)目的遷移。目前電視臺節(jié)目的遷移過程一般是基于FTP協(xié)議先下載再上傳。要實現(xiàn)遷移任務,現(xiàn)在較為通用遷移步驟如下(以近線遷移到在線為例):(1)將近線存儲的節(jié)目下載到節(jié)目遷移服務器磁盤的特定目錄下。(2)將遷移服務器中已下載的節(jié)目遷移到視頻服務器(在線存儲),如果有主備冗余機制,則同時遷移到主備視頻服務器進行在線存儲。(3)如果遷移到視頻服務器成功,則刪除自動遷移服務器中下載的節(jié)目,完成遷移任務。

從以上步驟可以看出,遷移服務器作為中間橋梁實現(xiàn)遷移,每個節(jié)目的遷移都需要首先存入遷移服務器,完成任務后又刪除節(jié)目。由于現(xiàn)在電視臺節(jié)目一般都是大容量的音視頻文件,遷移過程中對遷移服務器要求高,要頻繁的讀寫磁盤,導致遷移速度慢,如果遇到臨時應急情況,需要緊急遷移,基于以上的遷移過程在效率上得不到保證。針對先下載后上傳的遷移方法中的不足之處,對于采用分級存儲[3-4]的遷移系統(tǒng)功能分析如下:(1)下載和上載過程并發(fā)執(zhí)行,下載一部分文件數(shù)據(jù)的同時,上載這部分數(shù)據(jù)到目標存儲服務器,以提高遷移效率。(2)傳統(tǒng)遷移方法利用硬盤作為臨時存儲空間,但磁盤速度遠遠低于內(nèi)存讀寫速度,故應使用內(nèi)存作為臨時存儲空間,提高遷移的速度。(3)內(nèi)存容量的有限性,對于大容量文件,不能分配與文件大小匹配的內(nèi)存作為臨時存儲區(qū),因而需設計一塊內(nèi)存空間供循環(huán)讀寫,實現(xiàn)內(nèi)存空間的高效利用。

針對以上需求分析,在實際電視廣播工程實踐開發(fā)中,提出了循環(huán)內(nèi)存流遷移的方式來滿足以上需求,避免了頻繁的磁盤I/O讀寫操作,設計合適的循環(huán)內(nèi)存流,能有效實現(xiàn)多個遷移任務并發(fā)執(zhí)行。

2 循環(huán)內(nèi)存流設計與實現(xiàn)

循環(huán)內(nèi)存流設計的基本思想是:在內(nèi)存空間中開辟出指定大小的內(nèi)存塊(例如10M),一個Writer線程從局域網(wǎng)中某FTP服務器不斷下載數(shù)據(jù)到該內(nèi)存塊中;另一個Read線程源源不斷從內(nèi)存塊中取出數(shù)據(jù)進行遷移到局域網(wǎng)中另外的FTP服務器。兩個線程共用一塊內(nèi)存區(qū),并能循環(huán)對此內(nèi)存區(qū)進行讀寫。如圖2所示,沿著循環(huán)流的方向,Read線程讀取數(shù)據(jù)總在Write線程寫入之后,以保證每次能讀到數(shù)據(jù);Write線程每次寫到流末尾,即進行跳轉(zhuǎn)到流開始處,從頭開始寫入數(shù)據(jù),Read線程與Write線程類似。為了能保證循環(huán)讀寫的順利進行,假設每次讀寫的數(shù)據(jù)量為Count(一般為32K),每次讀數(shù)據(jù)時要求不超過已寫入數(shù)據(jù)的位置,而每次寫時要求寫入的位置的數(shù)據(jù)已經(jīng)讀出,每次寫完時,總有Write線程所指向內(nèi)存流的位置比讀線程所指向位置大于或者等于Count成立。兩個線程同步進行,不停循環(huán)進行讀寫操作,從而實現(xiàn)文件基于循環(huán)內(nèi)存流的遷移過程。

為了實現(xiàn)數(shù)據(jù)的準確傳輸,不會產(chǎn)生數(shù)據(jù)的丟失和讀寫誤操作,必須進行線程間同步,即保證讀數(shù)據(jù)之前,已經(jīng)有數(shù)據(jù)寫入,循環(huán)再次寫入時,該內(nèi)存塊數(shù)據(jù)已經(jīng)被讀出。實現(xiàn)中采用面向?qū)ο蠹夹g(shù),編寫了TMemoryStream類實現(xiàn)循環(huán)內(nèi)存流,以下對循環(huán)內(nèi)存流的實際工作原理關鍵性節(jié)點進行闡述。

圖2 循環(huán)內(nèi)存流原理示意圖

類中部分關鍵字段定義。Memory Capacity:設定內(nèi)存流的大小;Count:每次讀出或者寫入流的大小。FPosition:本次進行讀或者寫流的位置指針; WritePosition :寫位置指針,指向遷移文件已經(jīng)寫入了的文件位置;ReadPosition:讀位置指針,指向遷移文件已經(jīng)讀出了的文件位置;IdMutex:保證讀寫線程同步的互斥量。例如,要實現(xiàn)從二級存儲A服務器遷移到一級存儲B視頻服務器,某次遷移的文件大小為1G,假設內(nèi)存流設置為10M,每次讀入或者寫入流的數(shù)據(jù)為32K。依據(jù)字段定義Memory Capacity為10*1024*1024(單位為字節(jié));Count為32768;WritePosition和ReadPosition取值范圍為0到1*1024*1024*1024(1G),且為Count的整數(shù)倍;F Position每次讀出或者寫入時需要計算,計算方法為WritePosition或者ReadPosition對F Capacity求余,這樣能順利實現(xiàn)讀寫到末尾重新從內(nèi)存流頭部開始,實現(xiàn)循環(huán)內(nèi)存流。

圖3 循環(huán)內(nèi)存流類Write方法流程

類中關鍵方法實現(xiàn)。SetCapacity方法,該方法主要在初始化內(nèi)存流時指定內(nèi)存大小,即指定MemoryCapacity大小,并用malloc函數(shù)開辟循環(huán)內(nèi)存流所需空間。Seek方法用于實現(xiàn)每次寫入或者讀出時計算FPositon,以確定要每次進行操作的內(nèi)存流位置。Write和Read方法分別用于下載近線存儲文件到內(nèi)存流和上載內(nèi)存流到在線存儲服務器。

由于需要并發(fā)進行遷移,讀寫也要求并發(fā)進行,循環(huán)內(nèi)存流設計中用IdMutex互斥量保證并發(fā)時數(shù)據(jù)讀寫的準確性。以Write方法流程作為詳細闡述,簡化流程如圖3,讀過程類似。進行某次數(shù)據(jù)寫入之前,必須保證寫指針在讀指針之前,這樣做能有效保證寫入數(shù)據(jù)安全性,因而寫流程進入后首先需要判斷是否滿足寫的條件,具體為WritePosition和ReadPosition之差是否大于或者等于Count。如果不滿足,則進行等待,一直等不到條件成立,7秒后退出,滿足則進入互斥量保護的寫入過程。寫過程首先找到本次要寫入的位置,然后判斷這次寫入是否在流的最后位置,如果在最后位置,最后位置又沒有Count容量供本次寫入,則需要進行分次寫入,先寫滿流末尾部分,之后再流的開始部分再寫入本次剩余的數(shù)據(jù),不需要分次直接一次寫滿Count數(shù)據(jù)到內(nèi)存流。最后改變WritePosition位置,釋放互斥量,返回寫入數(shù)據(jù)量,結(jié)束寫過程。

3 測試及小結(jié)

圖4 循環(huán)內(nèi)存流遷移方法測試結(jié)果對比圖

圖4為測試對比結(jié)果,測試環(huán)境為兩臺FTP服務器,一臺遷移服務器,三臺機器配置如下:windowsServer2003系統(tǒng),CPU型號為Pentium(R) Dual-Core E5200,內(nèi)存2G,F(xiàn)TP軟件為Server-U。對比先下載后上傳方法和循環(huán)內(nèi)存流遷移方法可以發(fā)現(xiàn),循環(huán)內(nèi)存流效果比先下載再上傳速度要快了將近一倍。對于自動遷移服務器來說,采用循環(huán)內(nèi)存流的遷移方法大大減輕了遷移服務器的負擔,遷移服務器可以工作更為穩(wěn)定且延長磁盤使用壽命,在實際應用過程中,基于循環(huán)內(nèi)存流的遷移系統(tǒng)能在遷移過程中實現(xiàn)任務并發(fā)操作,已經(jīng)成功在多個地方電視臺上線使用,具有較大的實際意義。

[1]肖艷平.數(shù)字電視播出系統(tǒng)中的近線存儲[J].中國數(shù)字電視,2011(2):82.

[2]何建,唐繼勇.硬盤播出數(shù)據(jù)存儲技術(shù)分析[J].中國有線電視,2005(1):19.

[3]趙曉楠,李戰(zhàn)懷.分級存儲管理技術(shù)研究[J].計算機研究與發(fā)展,2011(3):48.

[4]羅敏.數(shù)據(jù)分級存儲策略[J].城建檔案,2009(5).

猜你喜歡
方法
中醫(yī)特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數(shù)學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 美女一级毛片无遮挡内谢| 成人韩免费网站| 国产福利小视频在线播放观看| 免费一级无码在线网站| 91无码视频在线观看| 91精品人妻一区二区| 日韩中文精品亚洲第三区| 亚洲永久免费网站| 国产日韩欧美一区二区三区在线| 色综合久久综合网| 成人av手机在线观看| 亚洲大学生视频在线播放| 美女一区二区在线观看| 亚洲永久精品ww47国产| 91国内视频在线观看| 久久夜色撩人精品国产| 亚洲美女一级毛片| 日韩在线视频网| 国产人人射| 成·人免费午夜无码视频在线观看| 日韩一区二区在线电影| 国产在线观看99| 欧美亚洲综合免费精品高清在线观看| 亚洲一级毛片免费观看| 国产另类视频| 欧美一级高清视频在线播放| 午夜日b视频| 一本大道无码高清| 国产成人高清精品免费5388| 亚洲男人在线天堂| 色婷婷综合在线| 99爱视频精品免视看| 波多野结衣第一页| 青青草a国产免费观看| 亚洲精品天堂自在久久77| 国产国产人成免费视频77777| A级毛片高清免费视频就| 91破解版在线亚洲| 情侣午夜国产在线一区无码| 红杏AV在线无码| 亚洲一区二区成人| 亚洲精品动漫在线观看| 全午夜免费一级毛片| 九九精品在线观看| 极品私人尤物在线精品首页| 无码中文字幕加勒比高清| 波多野结衣无码AV在线| 亚洲国产系列| 久久综合丝袜日本网| 亚洲天堂福利视频| 日韩毛片在线播放| 国产精品成人一区二区不卡| 亚洲 日韩 激情 无码 中出| 亚洲中文字幕无码爆乳| 久久综合色视频| 欧美色99| a毛片在线| 国产成年女人特黄特色毛片免 | 国产三级毛片| 国产在线视频导航| 日本日韩欧美| 欧美精品啪啪一区二区三区| 麻豆国产在线观看一区二区 | a级毛片视频免费观看| 国产本道久久一区二区三区| 亚瑟天堂久久一区二区影院| 国产成人一二三| 国产在线一二三区| 精久久久久无码区中文字幕| 欧美日韩资源| 天堂av综合网| 免费激情网址| 亚洲愉拍一区二区精品| 丁香五月亚洲综合在线| 五月六月伊人狠狠丁香网| 亚洲天堂久久久| 日本欧美精品| 91精品视频播放| 色AV色 综合网站| 亚洲天堂久久| 国产亚洲精品91| 91成人在线免费视频|