亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種流媒體集中存儲系統(tǒng)設計與實現

        2015-06-05 09:50:58楊文娟段洪秀
        電視技術 2015年19期
        關鍵詞:視頻流存儲系統(tǒng)硬盤

        楊文娟,湯 銘,周 靈,段洪秀,楊 艷

        (中國傳媒大學南廣學院 傳媒技術學院,江蘇 南京 211172)

        一種流媒體集中存儲系統(tǒng)設計與實現

        楊文娟,湯 銘,周 靈,段洪秀,楊 艷

        (中國傳媒大學南廣學院 傳媒技術學院,江蘇 南京 211172)

        從網絡吞吐量、磁盤讀寫性能等關鍵指標上分析了流媒體集中存儲的需求,并以此為基礎設計實現了一種流媒體集中存儲系統(tǒng)。結合實現過程中遇到的問題,著重圍繞存儲進程的管理模式、索引的建立、存儲文件的分配與調度、存儲介質的保護等幾個關鍵點展開了討論。

        視頻;并發(fā);效率;索引

        視頻監(jiān)控系統(tǒng)由接入、分發(fā)、控制、存儲、回放等5大服務組成[1],其中分發(fā)和存儲服務是系統(tǒng)的核心。而存儲和回放服務在設計和實現階段必須統(tǒng)一考慮,才能夠安全高效地利用存儲介質,實現快速精準的回放定位。從降低系統(tǒng)耦合性的設計原則出發(fā),存儲和回放服務可以從視頻監(jiān)控系統(tǒng)中剝離出來,成為獨立的存儲與系統(tǒng)。

        對于視頻點播系統(tǒng),其主要功能是將各種編碼格式和封裝格式的視頻文件轉換成便于在電信或廣電網絡上傳播的流數據[2];而對于安防視頻監(jiān)控系統(tǒng)或者賽事實況轉播系統(tǒng),其主要功能則是一邊從前端設備接收流數據,一邊向客戶端分發(fā),一邊將接收到的流數據按照某些格式保存成文件,以備視頻點播系統(tǒng)進行查詢和回放[3]。后者是本文重點討論的對象。

        流媒體集中存儲系統(tǒng)在設計時至少需要考慮以下幾個問題:需要多大的帶寬和存儲介質?流數據以何種方式寫入?如何建立便于快速定位的流數據索引?如何為視頻文件分配空間并進行調度?本文將在逐一回答上述問題的同時,完成流媒體集中存儲系統(tǒng)的設計與實現。

        1 數據吞吐量及存儲消耗量需求計算

        普通安防監(jiān)控一般設置為12 f/s(幀/秒)可使人影不拖沓;25 f/s能表現快速運動的物體,常用于道路監(jiān)控或賽事直播。隨著分辨率、幀率、畫質以及畫面內容復雜度的不同,一路原始視頻流的碼率可能介于512 kbit/s~10 Mbit/s之間。為便于敘述,下文中一律按常見的4 Mbit/s計算。

        通過計算可以得出:100路視頻每秒鐘寫入磁盤總量約為50 Mbyte(4 Mbit/s×100/8);一路視頻流每天需要消耗存儲介質約為42.187 5 Gbyte(4 Mbit/s×3 600×24/8/1 024);100路視頻每月消耗存儲123.6 Tbyte(42.187 5×100×30/1 024)。 至此可以明確本文視頻存儲系統(tǒng)的目標是如當100路4 Mbit/s視頻流并發(fā)寫入時,如何提升磁盤寫入效率,保證并發(fā)寫入的速度之和(包括建立索引的消耗)超過50 Mbyte。

        2 流數據并發(fā)寫入存儲介質

        集中存儲系統(tǒng)具有多路并發(fā)接收、并發(fā)保存、接收和保存同時持續(xù)進行的特點。在此前提下,接收流數據并存入文件可行的方式有3種,如圖1所示。

        圖1 流數據存入文件方式示意圖

        2.1 獨立進程方式

        如圖1a所示,每一個進程接收一路視頻流,該進程使用保留64 Mbyte內存,其中32 Mbyte用于保存接收的數據,當存滿后一次性寫入到硬盤,寫入硬盤期間使用另外的 32 Mbyte 保存接收的數據,2部分內存交替使用。使用 32 Mbyte 的大緩存機制能夠降低機械硬盤磁頭的物理運動頻率,既提高了系統(tǒng)IO效率,也能對磁盤起到基本的保護作用。

        為考察這種方式能否支持數據吞吐量的需求,本文使用市面上常見的希捷7 200轉SATA硬盤(存儲容量1 Tbyte,實驗前已通電使用5 684 h,約合263天)開展了100路數據并發(fā)寫入實驗。為減少機械硬盤的尋道時間,提高硬盤使用效率,降低對硬盤的損傷,不同進程之間通過信號量實現了對硬盤的互斥訪問。經過30次測試,單次凈寫入時間(不含互斥等待時間)、單次總寫入時間(含互斥等待時間)如表1所示。

        表1 獨立進程方式100路視頻流存儲效率測試結果s

        寫入時間最大值最小值平均值單次凈寫入時間074028042單次總寫入時間368087230

        從表2的實驗數據可以得出,100個隨機接收數據的獨立進程中,每一個都可以在不大于3.68 s的時間內完成 32 Mbyte 視頻數據的寫入;而通過計算也可以得出使用 32 Mbyte 緩存接收4 Mbit/s的流數據可以持續(xù)緩存64 s。由此可以證明,常見機械硬盤可以滿足系統(tǒng)的上述設計性能需求。

        當滿負荷運行時,系統(tǒng)啟100個進程,共消耗內存約 6.4 Gbyte。 該方式中各路視頻流相互獨立、不會互相影響,程序結構簡單,魯棒性好;而且使用了32 Mbyte大緩存機制減少訪問硬盤的頻率,使用互斥進程鎖防止并發(fā)寫硬盤造成IO操作碎片化。

        2.2 單一進程方式

        如圖1b所示,由單一進程完成數據接收和寫入的全部工作。該進程包含若干個線程,其中多個Recv線程接收來自前端設備的流數據,存入各自的緩存中;Write線程通過輪詢或接收信號方式訪問這些緩存,將其中的內容依次寫入硬盤。

        系統(tǒng)始終保持只啟動1個進程,當滿負荷運行時,該進程包含100個Recv線程和1個Write線程,共占用6.4 Gbyte內存。該方式優(yōu)點在于Write線程實現了硬盤訪問串行化,完全杜絕了硬盤并發(fā)訪問操作,結合緩存機制,實現硬盤使用效率的最優(yōu)化,寫入速度最高;缺點是線程數龐大,調度易出錯,且發(fā)生錯誤后可能對所有視頻都產生影響,另一方面由于單一進程占用內存過大,無法在32位處理器或安裝了32位操作系統(tǒng)的設備上運行。

        2.3 共享內存方式

        如圖1c所示,每個Recv進程接收1路視頻流,將其緩存在共享內存的某一區(qū)域;統(tǒng)一的Write進程通過輪詢或接收信號方式訪問這塊共享內存的各個區(qū)域,將其中內容依次寫入硬盤。

        當滿負荷運行時,系統(tǒng)啟動101個進程,其中包含100個Recv進程和1個Write進程,所有進程訪問同一塊共享內存。該方案結合了方案a中各路視頻流相互獨立、不會互相影響,程序結構相對獨立的優(yōu)點,和方案b中硬盤訪問串行化,防止硬盤并發(fā)訪問,優(yōu)化硬盤使用效率,提高寫入速度的優(yōu)點;缺點是由于Windows系統(tǒng)共享內存采用文件映射機制,訪問共享內存效率低下,故而只能運行于Linux系統(tǒng),且程序復雜度仍然大于方案a。

        綜上所述,通過對獨立進程方式的性能考察,結合對系統(tǒng)跨軟平臺特性、可靠性、穩(wěn)定性、可維護性的要求,決定暫定方案a。

        3 索引的建立與維護

        對于流媒體信息而言,存儲的目的是為了回看,存儲時編制索引的目的是為了在回看時能夠快速精準地實現定位[4]。對錄像進行檢索的過程分為4步:1)確定攝像機;2)確定時間范圍;3)返回錄像時間軸;4)跳轉到指定位置播放。

        本文設計采用3級索引,如表2所示。第1級索引保存在配置庫中,通過配置記錄哪一路視頻流存儲在哪一臺存儲主機上;第2級索引保存在各臺存儲主機上的持久化文件數據庫中,為了減少文件的大小,每一路視頻的索引獨自保存為一個單獨的文件,以視頻名稱作為文件名,記錄該路視頻在不同文件中的起止時間;第3級索引保存在每個視頻數據文件的末尾,記錄每一個關鍵幀所對應的絕對時間和在文件中的偏移量。

        表2 索引結構設計示意

        級別存放介質結構信息1配置庫視頻名稱,存儲主機名2文件數據庫視頻名稱(文件名),文件編號,起始時間,終止時間3文件末尾絕對時間,偏移量

        系統(tǒng)先按照1 Gbyte為單位為每個視頻文件劃分大小。按照極端情況,分別考慮碼率為10 Mbit/s和100 kbit/s,則 1 Gbyte 可保存最短13.6 min,最長可保存22.75 h。通過上述計算可知,1 Gbyte最長存儲時間應不超過1天。

        3級索引的維護:同一個數據文件中只保存同一路視頻。每秒鐘內,每接收到1個關鍵幀添加一條3級索引。系統(tǒng)的檢索信息中每秒鐘不超過1個關鍵幀,按每天一個文件計算,每個文件最多83 600條索引。第3級別索引每條占用空間 12 byte (時間占8 byte,偏移量占4 byte),每個文件最多不大于0.98 Mbyte,故每個文件尾部預留2 Mbyte空間用于存放3級索引已經足夠了。由此也可以推算出該系統(tǒng)最低支持 50 kbit/s 的極低碼率。

        數據文件中的數據和索引如圖2所示,其中SPS,PPS,I,P,B表示標準H264編碼的視頻流中的各種幀數據,DataEPos和IndexEPos表示數據和索引的實際長度,Blank表示在文件中留空白或任意內容。

        圖2 數據文件內容示意圖

        其中,CameraName占32 byte,DataEPos、IndexEPos分別占4 byte。Data EPos指向最后一幀數據末尾的地址,其等于數據長度;Index Epos指向最后一幀索引末尾的地址,該數值-(文件實際長度-2M預留長度)-12 byte=索引長度。每一個索引由12 byte組成,前8 byte為time_t類型,后4 byte為int類型指向關鍵幀的首地址,即SPS/PPS前幀分隔符的起始位置。

        2級索引的維護:當開始錄制一路視頻的時候,以視頻名稱為文件名生成文件數據庫索引文件。視頻數據文件寫滿發(fā)生切換或進程退出時(連續(xù)60秒未收到關鍵幀進程即退出),添加一條2級索引。在極端情況下每1 min視頻斷1次,即每路視頻每1 min產生1條長度為20 byte的記錄,每天不超過1 440條記錄,共計28.125 kbyte,即每月最多843.75 kbyte,每年最多300.75 Mbyte。設計容量300路同時寫入,保存1年的索引需要88 Gbyte索引文件,與數據文件對存儲空間的需求相比,可以忽略不計。

        1級索引的維護:首先通過配置確定1臺攝像機的所有錄像文件只保存在同1臺主存儲網絡設備上(同一個IP),該信息作為一級索引保存在數據庫中。

        4 存儲空間預分配與文件調度

        由于機械硬盤在反復創(chuàng)建文件的過程中會產生磁盤碎片,越來越多的碎片會嚴重影響磁盤讀寫效率并加劇磁頭平均旋轉距離影響磁盤使用壽命[5]。為解決這個問題,一種可行的方法就是預先在硬盤上劃分好等大小的文件,流數據直接寫入到已分配好的這些文件中,當錄像文件過期后也不刪除文件,而是通過標志位將其標記為可回收重復使用的文件。

        存儲空間預分配程序首先在根磁盤上創(chuàng)建index目錄和data目錄。然后根據磁盤容量減去88 Gbyte計算出數據文件可用容量,根據可用容量創(chuàng)建文件vss000000.h264~vss999900.h264,其中數字連續(xù)遞增不重復(不同目錄下都從000000開始),理論上1臺存儲設備的文件數量最大為 100 000, 即約為100 Tbyte。index目錄中的88 Gbyte空間為2級索引SQLite文件預留。剩余12 Gbyte存放其他文件,例如不同的掛載點通過“掛載點-路徑映射表”預分配及文件調度進程,其中包含1組由3位整數和字符串路徑組成的映射對。2級索引中的文件編號為10位整數,其中第1位是保留位, 2~4位為路徑編號,后5~10位指向vss012345.h264中的數字。

        集中存儲系統(tǒng)管理的存儲空間大小可以達到100 Tbyte,甚至1 Pbyte級別,按每個文件1 Gbyte計算最多可以有接近1 000 000個文件。所以系統(tǒng)中運行一個單獨的進程管理這些文件,提供文件調度功能,稱之為文件池。

        在文件池中維護一塊共享內存Shm-A,用以表明某一路視頻當前正在寫入某個文件,其內容為一個大小等于最大支持視頻并發(fā)數量的線性數組,數組的內容為1對“字符串 - 數值”,表示某1路視頻名稱和其對應的正在寫入的文件編號;同時記錄最近使用的文件編號。調度進程輪詢文件數據庫。找到刪除2級索引中終止時間早于過期時間的記錄。

        文件池管理系統(tǒng)需要提供1個接口用于輸出文件,該接口功能為:啟動某1路視頻錄制時,先在Shm-A中查找該路視頻是否存在未寫完的文件,如果存在,直接返回文件編號;否則查找最近使用的文件編號+1的文件,查看其最近修改時間,如果已過期則返回該文件編號;否則判斷其是否為新創(chuàng)建文件,是則返回該文件編號;否則查看下一個文件重復上述操作(如果已輪詢完所有文件則返回距今最久遠的文件編號,并提示磁盤空間不足)。上述4種情況下返回文件編號后,在Shm-A中對應的位置上進行標記,并更新最近使用的文件編號。

        錄制進程調用文件池接口獲取空閑文件向其中寫入流數據,當寫操作結束時,如果是文件已寫滿,則在Shm-A中對應位置置為-1;如果視頻存儲進程退出(因視頻中斷等原因),則在Shm-A中對應位置仍保留原文件編號以備下次使用(即不作任何處理)。

        5 系統(tǒng)運行效果分析

        存儲系統(tǒng)管理機通過配置庫中關于每一路視頻由哪一臺存儲主機保存的信息,調用該臺存儲主機上的錄制進程[6]。錄制進程調用文件池接口獲得當前適用的存儲文件開始寫入視頻流,寫入的同時檢測關鍵幀建立3級索引,由于3級索引精確到秒,將3級索引放置在數據文件尾部,可以提高創(chuàng)建索引效率,減少磁盤IO操作。當一個文件寫滿或因為異常中斷時,錄制進程在自身退出前紀錄2級索引。當需要回放時,回放服務程序根據全局唯一的1級索引找到存儲主機,根據索引主機上的有視頻名稱指定的2級索引找到文件編號, 根據文件編號從文件路徑映射表中定位到數據文件,打開文件后根據3級索引定位到具體的一個關鍵幀開始回放。

        本系統(tǒng)已經應用在多套變電站輔助控制系統(tǒng)和報警安防系統(tǒng)中,經過工程項目的實際運行檢驗,達到了滿意的效果,也印證了本文所述流媒體存儲系統(tǒng)的下列設計思想:1)通過內存緩沖與I/O互斥機制滿足了大量高清視頻數據并發(fā)寫入磁盤的需求;2)通過文件預分配技術避免了磁盤碎片化,保障了機械硬盤在更長時間內的高效運轉,延長了機械硬盤的使用壽命;3)通過多級索引的合理設計提供了秒級的快速精確定位,同時兼顧了存儲硬盤的得盤率(用于存儲視頻數據的空間占硬盤總空間的比率)。

        [1] 蔡明,任綺年,易劍光. 視頻監(jiān)控系統(tǒng)中的視頻存儲系統(tǒng)的設計與實現[J].江南大學學報, 2003(6):115-118.

        [2] 屠添翼,石躍祥. 視頻監(jiān)控系統(tǒng)中的圖像采集和視頻有效存儲[J].計算機應用研究, 2005(8):241-242.

        [3] 徐景皓. P2P分布式數據容錯存儲機制[J]. 廣播與電視技術,2006(6):72-75.

        [4] 王寧.硬盤播控系統(tǒng)與二級存儲系統(tǒng)設計[J]. 廣播與電視技術,2007(7): 82-84.

        [5] 何炬,袁宇.基于SAN的視頻監(jiān)控存儲文件系統(tǒng)設計[J]. 電視技術,2011,35(13):98-101.

        [6] 王文彬,王文革,王松.海量存儲技術在變電站視頻監(jiān)控中的應用[J]. 電視技術,2011, 35(17):97-100.

        楊文娟(1986— ),女,碩士,講師,本文通信作者,主要從事信息與傳媒技術教學與研究工作;

        湯 銘(1973— ),碩士,高級工程師,主要從事網絡安全及安防技術教學與研究工作;

        周 靈(1984— ),女,博士生,講師,主要從事數字媒體技術教學與研究工作;

        段洪秀(1981— ),女,碩士,講師,主要從事信息技術的教學與研究工作;

        楊 艷(1975— ),女,碩士,講師,主要從事計算機應用的教學與研究工作。

        責任編輯:閆雯雯

        Design and Implementation of Centralized Streaming Storage System

        YANG Wenjuan, TANG Ming,ZHOU Ling,DUAN Hongxiu,YANG Yan

        (MediaInstituteofTechnology,CommunicationUniversityofChina,Nanjing211172,China)

        Some key indicators, such as network throughput and disk I/O performance, are measured for analyzing the needs of centralized streaming storage system. On this base, a kind of centralized streaming storage system is designed and implemented. Combined with problems encountered during the implementation, the following key points are discussed with emphasis: process management, indexes building, files allocation and scheduling, storage media protection.

        video; parallel; efficiency; indexing

        TN957.52

        A

        10.16280/j.videoe.2015.19.019

        2015-03-04

        【本文獻信息】楊文娟,湯銘,周靈,等.一種流媒體集中存儲系統(tǒng)設計與實現[J].電視技術,2015,39(19).

        猜你喜歡
        視頻流存儲系統(tǒng)硬盤
        邊緣實時視頻流分析系統(tǒng)配置動態(tài)調整算法研究
        基于視頻流傳輸中的擁塞控制研究
        分布式存儲系統(tǒng)在企業(yè)檔案管理中的應用
        哈爾濱軸承(2020年2期)2020-11-06 09:22:36
        HiFi級4K硬盤播放機 億格瑞A15
        Egreat(億格瑞)A10二代 4K硬盤播放機
        天河超算存儲系統(tǒng)在美創(chuàng)佳績
        美國視頻流市場首現飽和征兆
        我區(qū)電視臺對硬盤播出系統(tǒng)的應用
        華為震撼發(fā)布新一代OceanStor 18000 V3系列高端存儲系統(tǒng)
        一種基于STM32的具有斷電保護機制的采集存儲系統(tǒng)設計
        国产360激情盗摄一区在线观看| 91亚洲国产成人aⅴ毛片大全| 亚洲午夜成人片| 亚洲熟妇av乱码在线观看| 精品久久人人妻人人做精品| 蜜桃视频一区二区三区在线观看| 国产xxxx99真实实拍| 国产成人九九精品二区三区 | 人妻夜夜爽天天爽三区麻豆av| av影片手机在线观看免费网址| 国精产品一区一区二区三区mba| 久久久久99精品成人片| 久久精品中文闷骚内射| 亚洲a∨无码男人的天堂| 少妇私密会所按摩到高潮呻吟| 99久久人妻精品免费二区| 美丽的熟妇中文字幕| 亚洲级αv无码毛片久久精品| 国产爆乳无码一区二区在线| aa视频在线观看播放免费| 丝袜美女美腿一区二区| 亚洲精品国产亚洲av| 国产综合色在线精品| 国产成人精品一区二区三区免费| 精品国产一区二区三区香蕉| 在线观看女同一区二区| 日本一区人妻蜜桃臀中文字幕| 性色国产成人久久久精品二区三区| 91久久香蕉国产熟女线看| 在线免费看91免费版.| 人妻精品在线手机观看| 一本色道久久88综合日韩精品| 美女又色又爽视频免费| 亚洲精品无码高潮喷水在线| 久久久久久一本大道无码 | 亚洲精品国产一区二区| 成人综合网亚洲伊人| baoyu网址国产最新| av免费观看网站大全| 妺妺窝人体色www看人体| 亚洲裸男gv网站|