• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Hadoop與FFmpeg的多媒體分布式處理系統(tǒng)的設(shè)計

    2018-05-24 12:55:54徐劉杰
    安陽師范學(xué)院學(xué)報 2018年2期
    關(guān)鍵詞:轉(zhuǎn)碼視頻文件分片

    鄭 娟 ,徐劉杰,吳 豹,李 彪

    (1.滁州學(xué)院 教務(wù)處,安徽 滁州 23000;2.湖南科技學(xué)院 信息技術(shù)與教育系,湖南 永州 425100;3.滁州學(xué)院 計算機與信息工程學(xué)院,安徽 滁州 239000)

    互聯(lián)網(wǎng)媒體元素在當(dāng)代社會發(fā)揮越來越重要的作用,數(shù)據(jù)產(chǎn)生方式由原來被動式的內(nèi)容定制,變成主動式的用戶原創(chuàng)。在眾多的網(wǎng)絡(luò)資源中,視頻媒體占據(jù)著互聯(lián)網(wǎng)網(wǎng)絡(luò)資源的半壁河山。隨著用戶對視頻資源的點播需求越來越多,通過手機、平板等各種終端來快速獲取視頻資源,已經(jīng)成為當(dāng)下一種資源獲取的主流形式。如何快速處理這些海量視頻文件變得極具迫切性。

    國內(nèi)外相關(guān)領(lǐng)域的研究人士對于處理大數(shù)據(jù)提出了很多的解決方案,但是目前得到最廣泛使用的是Hadoop并行計算技術(shù)[1]。Hadoop主要包括HDFS和MapReduce兩大部分[2]。HDFS提供了完善的分布式存儲方案,幫助用戶分布式地存儲大文件,而MapReduce是種優(yōu)秀的并行程序框架,幫助用戶輕松的寫出分布式處理代碼[3]。為了應(yīng)對越來越多的視頻在線點播,萬維網(wǎng)理事會推薦使用內(nèi)置的視頻標(biāo)簽代替?zhèn)鹘y(tǒng)的Flash插件進行在線視頻點播。但是瀏覽器廠商對于可點播視頻的格式支持力度有限,目前得到最廣泛支持的是由H.264編碼的MP4格式。面對種類繁多的視頻大文件,如何快速地將它們轉(zhuǎn)換為在線播放所支持的編碼類型,在當(dāng)下變得尤為重要。

    Hadoop在大文件存儲和處理方面有著獨特的優(yōu)勢,通過HDFS可以快速地對視頻大文件進行分布式存儲,通過編寫MapReduce程序?qū)DFS系統(tǒng)中的文件進行并行轉(zhuǎn)碼[4]。本系統(tǒng)主要是在Hadoop環(huán)境和FFmpeg軟件下設(shè)計分布式視頻轉(zhuǎn)碼系統(tǒng),幫助用戶實現(xiàn)在線并行轉(zhuǎn)碼操作[5]。利用分布式處理可以降低視頻轉(zhuǎn)碼所需要的時間,提高視頻處理的效率,快速地為用戶文件提供在線點播服務(wù)。

    1 系統(tǒng)分析與設(shè)計

    1.1 系統(tǒng)架構(gòu)

    本系統(tǒng)總體采用B/S結(jié)構(gòu),用戶使用瀏覽器即可完成所有的后臺操作。服務(wù)器端通過對用戶狀態(tài)進行實時監(jiān)聽,及時響應(yīng)用戶的操作,調(diào)控服務(wù)器端資源,針對用戶的視頻文件進行分布式轉(zhuǎn)碼操作[6]。

    在瀏覽器端,用戶首先需要登錄后臺,后臺操作界面分為“文件功能區(qū)”和“轉(zhuǎn)碼功能區(qū)”。文件功能區(qū)主要包括“文件上傳”和“文件管理”,而轉(zhuǎn)碼功能區(qū)主要為用戶提供“創(chuàng)建轉(zhuǎn)碼任務(wù)”和“查看轉(zhuǎn)碼進度”。在文件上傳部分,系統(tǒng)設(shè)計了分片上傳結(jié)構(gòu),當(dāng)用戶上傳視頻文件時,系統(tǒng)先將用戶的文件分割成一個個文件分塊,分別發(fā)送到服務(wù)器指定存儲位置,最終在服務(wù)器內(nèi)歸并為原始的視頻文件,結(jié)構(gòu)如圖1 中的圖A。

    在服務(wù)器端,設(shè)計并行工作結(jié)構(gòu),當(dāng)系統(tǒng)檢測到用戶提交轉(zhuǎn)碼請求后,首先會把用戶需要轉(zhuǎn)碼的大文件進行分割,然后把分割后較小的文件存入HDFS中,存儲完畢后調(diào)用MapReduce程序?qū)γ總€小文件進行轉(zhuǎn)碼操作[7],最終把HDFS中存儲的小文件合并為一個最終視頻文件,通過分布式工作結(jié)構(gòu)完成視頻的并行轉(zhuǎn)碼工作,結(jié)構(gòu)如圖1中的圖B。

    圖1 系統(tǒng)結(jié)構(gòu)圖

    1.2 功能模塊

    1.2.1 用戶操作端功能模塊

    用戶操作端為用戶提供一個完善的后臺操作平臺,幫助用戶順利的使用平臺,平臺功能主要包括“系統(tǒng)設(shè)置模塊”、“文件功能模塊”和“轉(zhuǎn)碼功能模塊”,具體的結(jié)構(gòu)圖如圖2所示。

    (1) 系統(tǒng)設(shè)置模塊:此模塊主要完成對于操作后臺的相關(guān)設(shè)置,主要包括對于菜單、導(dǎo)航、賬戶、角色的管理和相關(guān)權(quán)限分配。

    (2) 文件功能模塊:主要為用戶提供“存儲總覽”、“文件上傳”、“文件管理”等功能。

    (3) 轉(zhuǎn)碼功能模塊:主要為用戶提供“添加轉(zhuǎn)碼任務(wù)”、“查看轉(zhuǎn)碼進度”、“轉(zhuǎn)碼任務(wù)管理”。

    圖2 后臺結(jié)構(gòu)圖

    1.2.2 服務(wù)器端功能模塊

    服務(wù)器端的主要責(zé)任是針對用戶的視頻文件進行分布式存儲和并行轉(zhuǎn)碼操作,服務(wù)器端通過不斷監(jiān)聽后臺數(shù)據(jù)庫的數(shù)據(jù)變化獲取并創(chuàng)建新的任務(wù),然后對任務(wù)進行資源分配,最終完成視頻的并行轉(zhuǎn)碼[8]。其主要功能模塊包括用戶任務(wù)監(jiān)控、視頻文件分割、文件分布式存儲、文件分布式轉(zhuǎn)碼、文件塊合并等操作,具體的功能結(jié)構(gòu)如圖3所示。

    圖3 轉(zhuǎn)碼后端結(jié)構(gòu)圖

    2 系統(tǒng)設(shè)計

    2.1 用戶操作端實現(xiàn)

    用戶操作端基于PHP和ThinkPHP框架設(shè)計了動態(tài)操作界面,利用MYSQL數(shù)據(jù)庫進行數(shù)據(jù)管理。用戶操作端主要包括“系統(tǒng)設(shè)置”、“文件功能區(qū)”和“轉(zhuǎn)碼功能區(qū)”三大部分。

    2.1.1 系統(tǒng)角色管理

    系統(tǒng)默認包含超級管理員、管理員和系統(tǒng)用戶三種角色,同時系統(tǒng)也支持自定義角色,不同的賬戶角色在系統(tǒng)中代表著不同的使用權(quán)限,系統(tǒng)用戶只能查看自己操作權(quán)限下的相關(guān)內(nèi)容。

    (1)角色管理界面實現(xiàn)。在角色管理界面中,主要包括角色的添加、編輯、刪除和角色權(quán)限設(shè)定等功能。

    (2)角色管理主界面功能實現(xiàn)。系統(tǒng)通過查詢用戶角色表,顯示角色列表,并創(chuàng)建相應(yīng)的按鈕事件,用戶通過點擊相應(yīng)的按鈕即可對用戶角色進行管理。

    2.1.2 文件分片上傳

    由于系統(tǒng)處理的數(shù)據(jù)對象是視頻文件,而視頻文件通常體積巨大,傳統(tǒng)的HTTP文件上傳不具備很好的穩(wěn)定性,系統(tǒng)設(shè)計了分片模式,針對視頻文件進行分片上傳。

    (1)客戶端文件分片。由于視頻文件存儲較大,用戶在系統(tǒng)中選擇視頻文件后,系統(tǒng)首先會調(diào)用客戶端腳本程序把文件進行一系列的分割,系統(tǒng)的分割單位為1MB,文件分割過程中,會向服務(wù)器發(fā)送一個個碎片文件。

    (2)服務(wù)器文件融合??蛻舳藭掷m(xù)向服務(wù)器端發(fā)送已經(jīng)被分割好的碎片文件,服務(wù)器腳本接受文件后會等待最后一個文件碎片,當(dāng)最后的數(shù)據(jù)接收完畢后,服務(wù)器執(zhí)行文件融合功能,把一系列小文件融合為大的數(shù)據(jù)文件。

    2.1.3 添加轉(zhuǎn)碼任務(wù)

    用戶上傳視頻文件完畢后,可以對視頻文件添加轉(zhuǎn)碼任務(wù),通過點擊文件列表后的“添加轉(zhuǎn)碼任務(wù)”按鈕即可打開任務(wù)向?qū)?。用戶通過選擇轉(zhuǎn)碼文件的格式類型并點擊“下一步”按鈕,即可完成轉(zhuǎn)碼任務(wù)的添加。用戶提交視頻轉(zhuǎn)碼請求后,服務(wù)器會啟動分布式轉(zhuǎn)碼模塊,對視頻資源進行并行轉(zhuǎn)碼,并及時更新任務(wù)狀態(tài),用戶可以在后臺查看任務(wù)轉(zhuǎn)碼進度。用戶在系統(tǒng)后臺,可以對已經(jīng)存在的轉(zhuǎn)碼任務(wù)進行歷史狀態(tài)查詢、刪除等管理操作。

    2.1.4 視頻在線播放

    當(dāng)轉(zhuǎn)碼任務(wù)執(zhí)行完畢后,用戶可以通過后臺對轉(zhuǎn)碼后的視頻資源進行在線播放,通過引用HTML視頻播放插件,并編寫相應(yīng)的控制器代碼[9],實現(xiàn)對指定的文件進行在線播放。

    2.2 服務(wù)器端實現(xiàn)

    系統(tǒng)利用JAVA語言、Hadoop大數(shù)據(jù)處理框架、FFmpeg音視頻處理軟件設(shè)計了針對視頻文件的分布式處理系統(tǒng),系統(tǒng)的操作對象是用戶視頻,具體操作包含“任務(wù)創(chuàng)建”、“文件分割”、“分布式存儲”和“并行轉(zhuǎn)碼”。

    2.2.1 任務(wù)創(chuàng)建

    當(dāng)用戶提交轉(zhuǎn)碼任務(wù)后,系統(tǒng)會即時感應(yīng)到數(shù)據(jù)庫內(nèi)容的變化,并獲取相應(yīng)的任務(wù)列表,執(zhí)行任務(wù)創(chuàng)建操作。

    2.2.2 文件分割并上傳HDFS

    轉(zhuǎn)碼任務(wù)創(chuàng)建成功后,系統(tǒng)會把視頻文件進行切片處理,文件在分割過程中,會保持每個小視頻文件仍具備視頻的二進制格式,保證每個數(shù)據(jù)文件的完整性,視頻切片完畢后,系統(tǒng)會把每個切片視頻存儲進HDFS中。

    2.2.3 MapReduce分布式轉(zhuǎn)碼

    當(dāng)文件均存入HDFS后,主控程序開始調(diào)用MapReduce分布式模塊對HDFS中存儲的視頻文件進行轉(zhuǎn)碼操作。主要是四個步驟,分別是主控進程任務(wù)分配、分布式轉(zhuǎn)碼、結(jié)果集合并、轉(zhuǎn)碼文件合并[10]。

    3 測試結(jié)果與分析

    本系統(tǒng)主要對文件分片上傳、轉(zhuǎn)碼任務(wù)創(chuàng)建、轉(zhuǎn)碼任務(wù)狀態(tài)、視頻在線播放進行測試并進行數(shù)據(jù)分析,具體內(nèi)容如下所述。

    3.1 文件分片上傳測試及分析

    系統(tǒng)后臺為了為用戶提供了文件上傳功能,就必須保證文件上傳的速度和穩(wěn)定性。在測試操作過程中,我們準備了大小為3GB的測試文件,然后通過Windows7系統(tǒng)中內(nèi)置的性能監(jiān)視器對網(wǎng)卡的發(fā)包狀況進行實時監(jiān)控。通過觀察可以發(fā)現(xiàn)在文件上傳過程中,分片系統(tǒng)能夠讓網(wǎng)卡發(fā)揮100%的工作效率,并且能夠長時間維持高速的文件上傳狀態(tài),結(jié)果說明文件的分片上傳模式可以為用戶提供良好的上傳體驗。

    3.2 轉(zhuǎn)碼任務(wù)創(chuàng)建測試及分析

    轉(zhuǎn)碼任務(wù)的創(chuàng)建過程包括用戶后臺操作和服務(wù)器后臺監(jiān)聽兩部分,用戶后臺操作主要包括任務(wù)向?qū)峤?,服?wù)器后臺通過監(jiān)聽用戶數(shù)據(jù)變化及時創(chuàng)建轉(zhuǎn)碼任務(wù)。

    服務(wù)器后臺程序通過監(jiān)聽用戶任務(wù)數(shù)據(jù)表狀態(tài),及時調(diào)動相應(yīng)的任務(wù)創(chuàng)建模塊,針對用戶提交的請求創(chuàng)建轉(zhuǎn)碼任務(wù)發(fā)現(xiàn)服務(wù)器后臺程序能夠及時響應(yīng)用戶的合法轉(zhuǎn)碼請求,并為用戶的轉(zhuǎn)碼任務(wù)分配必要的資源,最終幫助用戶完成視頻轉(zhuǎn)碼操作。

    3.3 任務(wù)轉(zhuǎn)碼狀態(tài)測試及分析

    轉(zhuǎn)碼任務(wù)狀態(tài)由管理后臺和服務(wù)器程序兩部分共同維護,狀態(tài)碼如表1所示。

    表1 任務(wù)狀態(tài)碼

    通過測試發(fā)現(xiàn)系統(tǒng)能夠很好地執(zhí)行監(jiān)控任務(wù),能夠給予用戶清晰的信息展示。

    4 總結(jié)

    系統(tǒng)針對用戶文件提供上傳和管理功能,對用戶的視頻資源提供轉(zhuǎn)碼任務(wù)創(chuàng)建、轉(zhuǎn)碼任務(wù)狀態(tài)監(jiān)控等功能。系統(tǒng)的設(shè)計目標(biāo)是為用戶上傳的視頻文件進行分布式轉(zhuǎn)碼操作,最終將用戶的視頻文件轉(zhuǎn)碼為H.264編碼的MP4格式[11]。在系統(tǒng)設(shè)計過程中需要解決用戶的文件上傳、文件管理、視頻文件分布式轉(zhuǎn)碼等關(guān)鍵技術(shù)。針對文件上傳部分,系統(tǒng)設(shè)計了分片上傳模式,針對用戶的上傳文件首先會進行分片處理,然后依次向服務(wù)器發(fā)送文件碎片,當(dāng)傳輸完畢后,服務(wù)器會對文件碎片進行融合,最終形成完整的數(shù)據(jù)文件。系統(tǒng)基于MYSQL數(shù)據(jù)庫和PHP動態(tài)網(wǎng)頁語言設(shè)計了用戶操作后臺,用戶可以在控制后臺進行文件管理、視頻文件轉(zhuǎn)碼和任務(wù)進度監(jiān)控等操作。針對分布式轉(zhuǎn)碼操作,系統(tǒng)首先架構(gòu)了HDFS分布式存儲環(huán)境,在HDFS基礎(chǔ)上編寫了MapReduce代碼[8],最終對用戶的視頻文件進行分布式存儲和轉(zhuǎn)碼操作。通過分布式的數(shù)據(jù)存儲和數(shù)據(jù)操作,幫助用戶快速地存儲視頻資源和對視頻資源進行快速轉(zhuǎn)碼。

    [參考文獻]

    [1]O’Driscoll A, Daugelaite J, Sleator R D. ‘Big data’, Hadoop and cloud computing in genomics [J]. Journal of Biomedical Informatics, 2013, 46(5): 74-81.

    [2](美)Tom White.Hadoop權(quán)威指南[M]. 周傲英, 曾大聃譯. 北京: 清華大學(xué)出版社, 2010.

    [3]蔡武, 陳湘萍. Hadoop技術(shù)內(nèi)幕[M]. 北京: 機械工業(yè)出版社, 2014.

    [4]王曉華. MapReduce 2.0源碼分析與編程實踐[M]. 北京: 人民郵電出版社, 2014.

    [5]蘇凱雄. 基于FFmpeg的H.264格式轉(zhuǎn)換器的設(shè)計與實現(xiàn)[J]. 電視技術(shù), 2016(07): 32-35.

    [6]楊帆, 沈奇威. 分布式系統(tǒng)Hadoop平臺的視頻轉(zhuǎn)碼[J]. 計算機系統(tǒng)應(yīng)用, 2011(11): 80-85.

    [7]丁峰. 嵌入式Linux平臺下基于FFmpeg庫視頻格式轉(zhuǎn)換設(shè)計[D]. 哈爾濱:哈爾濱工程大學(xué), 2013.

    [8]吳鋒. 基于Hadoop平臺的視頻轉(zhuǎn)碼系統(tǒng)設(shè)計與實現(xiàn)[D]. 上海:上海交通大學(xué), 2014.

    [9]劉笑. 基于Hadoop的視頻點播關(guān)鍵技術(shù)研究[D]. 成都:電子科技大學(xué), 2015.

    [10]黃曉成. 面向視頻云存儲的HDFS負載均衡工具設(shè)計與實現(xiàn)[D]. 杭州:浙江大學(xué), 2016.

    [11]羅文. 基于HTTP自適應(yīng)流媒體關(guān)鍵技術(shù)的研究及實現(xiàn)[D].南京:南京郵電大學(xué), 2014.

    猜你喜歡
    轉(zhuǎn)碼視頻文件分片
    移動云盤在線轉(zhuǎn)碼功能技術(shù)研究
    流媒體視頻文件相似性識別的方法
    上下分片與詞的時空佈局
    詞學(xué)(2022年1期)2022-10-27 08:06:12
    隨心定制視頻文件的縮略圖
    電腦報(2021年23期)2021-07-23 17:36:18
    視頻轉(zhuǎn)碼技術(shù)在廣播電視中的應(yīng)用研究
    締客世界(2020年1期)2020-12-12 18:18:28
    分片光滑邊值問題的再生核方法
    CDN存量MP4視頻播放優(yōu)化方法
    基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
    基于IPTV點播業(yè)務(wù)的視頻分段式轉(zhuǎn)碼方案的研究與應(yīng)用
    傳播力研究(2018年7期)2018-05-10 09:42:47
    基于Hadoop 的分布式視頻轉(zhuǎn)碼方案
    計算機工程(2015年8期)2015-12-02 01:12:50
    晴隆县| 昭通市| 南靖县| 广丰县| 砀山县| 伊宁县| 和平县| 浦城县| 吉林省| 神农架林区| 银川市| 松江区| 西藏| 南投市| 织金县| 郯城县| 北安市| 明星| 习水县| 舟山市| 区。| 宁城县| 龙山县| 五寨县| 永福县| 即墨市| 郧西县| 神池县| 高密市| 澄迈县| 连山| 汪清县| 磐安县| 津市市| 兴海县| 宿迁市| 河曲县| 彩票| 吉安市| 额尔古纳市| 遂昌县|