艾小馬
摘要:該文以湖南科技學院圖書館為例,對音視頻資源管理現狀進行了分析探討,對視頻管理系統進行了需求分析,設計并實現了基于RTMP協議的多媒體管理系統。以期在圖書館視頻資源建設管理和多媒體管理系統開發方面,為高校圖書館提供參考和借鑒。
關鍵詞:圖書館;高校圖書館;RTMP協議;視頻管理系統
中圖分類號: TP315 文獻標識碼:A
文章編號:1009-3044(2019)08-0032-03
開放科學(資源服務)標識碼(OSID):
視頻資源建設是高校圖書館數字化建設的重要內容之一,視頻資源以圖文并茂、動靜結合、聲形并茂等獨特的方式直觀地展示給讀者,其在閱讀推廣、特色資源建設等方面更加符合新時代讀者的需求[1],逐漸向傳統資源建設發起挑戰。高校圖書館越來越重視視頻資源建設。隨著時間的推移,圖書館收集的音頻和視頻資源越來越多,以湖南科技學院圖書館為例,收藏的音視頻資料包括地方文獻音視頻資源、精品課程錄音錄像、隨書音視頻以及購買的其他資源等,經過10多年的建設已達幾千部(個)。視頻資源涉及教學、科研、文史等方面,利用好這些資源,對師生的教學、科研能有一定的幫助,同時也能豐富業余、課余生活。湖南科技學院圖書館對于視頻的管理還處于初級階段,采用文件保存的手段,還沒有相關的軟件和系統對其進行管理,因此,就存在管理和查看不方便等問題。盡快解決視頻資源管理和使用的不便,更加有效合理地管理利用視頻資源,成為圖書館急需解決的任務。因此,開發與設計圖書館音視頻管理系統是必要的。
1 需求分析
以湖南科技學院圖書館為例,通過查閱相關資料、實際調查,參考其他的系統,從我館的實際情況出發,確定了系統的具體需求。圖書館多媒體管理系統為我校師生提供圖書館收藏的音視頻點播服務,不限制終端,手機和電腦都能順利訪問,為圖書館管理員提供音視頻管理服務。涉及的業務對象為游客和管理員。
游客的功能需求有:
1)能查詢音視頻:能根據標題、作者、簡介、發布日期等查詢音視頻;能進行高級查詢,多個條件組合檢索;能瀏覽音視頻的所有信息、播放相關音視頻。
2)能對音視頻排序:能根據發布日期、點擊量排序,包括順序、倒敘。
3)能分類瀏覽:能按照學科或者中圖法進行分類瀏覽。
管理員的功能需求有:
1)管理音視頻:能上傳音視頻;增刪改查音視頻資源。
2)分類管理:增刪改查學科分類;增刪改查中圖法分類。
3)專題管理:能對某一專題對音視頻進行歸類,如黨建專題等。
4)管理員管理:操作管理員用戶以及權限分配。
5)能對音視頻信息進行統計:對瀏覽量按照年份進行統計;對信息的建設情況按照年份統計等。
2 系統設計與實現
2.1 系統架構設計
本系統是面向師生的音視頻管理系統,提供音視頻點播服務,為圖書館管理員提供多媒體資料管理服務。主要包括2個服務,視頻服務和WEB服務。整體架構如圖1所示。
2.1.1 數據庫
數據庫是系統的底層,實現除音視頻文件以外其他信息的保存,通常采用關系型數據庫。
2.1.2 數據訪問層
數據訪問層封裝了對數據庫的操作,為業務操作提供支持。業務操作就不用擔心數據的具體細節。數據訪問層實現數據庫具體表的增刪改查操作。
2.1.3 視頻服務
搭建視頻服務器,采用C/S模式,與客戶端通信,實現音視頻的點播服務。
2.1.4 WEB服務
采用B/S 模式,將音視頻的有關信息呈現給客戶端,同時為管理員實現管理功能。
2.1.5 客戶端
客戶端采用B/S模式,通過訪問網頁以實現查詢、播放視頻、管理等所有功能。游客不限制PC和手機訪問,管理員只能通過PC端來管理。
2.2 系統模塊設計
本系統由視頻查詢、視頻分類瀏覽、專題瀏覽、管理后臺4個模塊組成。視頻查詢,分成簡單和復雜查詢,設置條件檢索視頻信息。視頻分類瀏覽,集成查詢功能,按照學科分類或中圖法分類顯示信息。專題瀏覽,按照主題顯示信息列表。所有的信息列表都能按照發布時間、點擊量順序或倒敘排列。管理后臺,包括視頻管理、分類管理、專題管理、用戶管理、統計4個子模塊,分別實現對應的功能。
2.3 數據庫設計
系統涉及的主要實體有音視頻信息、用戶信息、分類信息。考慮到數據冗余及設計的復雜度(如專題設計為音視頻實體的屬性,權限作為用戶實體的屬性),數據表基本與實體一一對應,系統的主要數據表為音視頻信息表(表1)、分類信息表(表2)、用戶信息表。
2.4 系統實現
2.4.1 開發環境與技術選擇
數據庫采用sql server2008,視頻服務采用基于RTMP協議的開源的RED5,WEB服務使用微軟visual studio2013工具C#語言實現。
視頻點播是本系統的核心部分, 視頻通信協議采用的RTMP協議。RTMP即Real Time Messaging Protocol實時消息傳送協議,是Adobe提出的用于Flash平臺之間傳遞音視頻及其他數據的一種實時網絡傳輸協議,是為數不多的已經公布細節的實時流式傳輸協議之一。RTMP是基于TCP協議的,具有傳輸可靠的特點,能保證視頻傳輸的質量。RTMP支持端對端的可靠鏈接和完整的時間戳序列, 采用TCP方式傳輸FLV報文, 面向連接提供可靠的數據傳輸來減少丟包, 降低了媒體流傳輸中丟包對播放質量的影響和失真[2]。另外,RTMP協議傳輸是在Flash之間進行,超過95%的PC機都安裝了Flash插件,要使用RTMP協議傳輸視頻,不用另外安裝客戶端[3],基于HTML5的瀏覽器也支持RTMP協議。
基于RTMP協議的流媒體服務器有Adobe公司的Flash Media Server、RED5等,RED5是開源的,本系統采用RED5作為視頻服務的服務器。RED5使用JAVA語言編寫,使用RTMP作為流媒體傳輸協議,與FMS完全兼容[4]。使用RED5做流媒體服務器,可以不用修改任何配置使用自帶的demo或者進行簡單的配置,不需要編寫復雜的代碼,也不需了解RTMP協議的實現細節。
視頻點播的客戶端可以使用ActionScript開發的flash程序,也可以選擇已經成熟的產品,比如JW Player,或者其他方式(如包含video.js),本系統采用JW Player實現客戶端視頻的播放。具體做法是在網頁中包含支持JW Player的腳本文件jwplayer.js,再嵌入下面的js代碼,就能實現視頻的播放。
[ jwplayer('mediaspace').setup({//mediaspace是控件ID
'flashplayer': 'player.swf',
'file': 'BladeRunner2049.flv',// BladeRunner2049.flv是文件名
// rtmp://172.20.147.112/lib是服務器路徑
'streamer': 'rtmp://172.20.147.112/lib',
'controlbar': 'bottom',
'width': '720',
'height': '480'
});]
2.4.2 實現數據訪問層
數據訪問層封裝了對所有數據表的所有操作,為具體的業務操作提供數據服務。把sql server的操作封裝成一個靜態類sqlHelper。運用面向對象的思維把所有的業務實體轉化成實體類,實體類成員與數據表字段一一對應。定義各實體功能的操作類,調用sqlHelper實現實體信息的數據庫增刪改查操作。以分類功能操作中的“按層級獲取分類列表”功能為例,代碼如下。
[ public DataTable getClassListByLevel(int level,string classType)
{
string strSql = "SELECT * FROM class_info WHERE level="+level+" and classType=@classType";
SqlParameter[] parameters =
{
SqlHelper.MakeInParam("@classType",SqlDbType.VarChar,50,classType)
};
using (SqlConnection ConnDtmis = new SqlConnection(DAConfig.ConnString))
{
try
{
return SqlHelper.ExecuteDataset(ConnDtmis, CommandType.Text, strSql, parameters).Tables[0];
}
catch (Exception ex)
{
throw ex;
}
}
}]
2.4.3 實現WEB服務
WEB服務調用數據層的實體操作類與底層數據庫的交互(查詢信息,插入新信息,更新修改的信息),具體的業務邏輯放在WEB服務(展示數據庫信息給客戶端,接收客戶端提交的請求)。基于系統的訪問量和數據規模,WEB服務采用ASP.NET基本的網站開發模式,采用的代碼和頁面分離的辦法,具體的業務操作代碼放在代碼文件(.cs),展示內容和樣式放在頁面文件(.aspx)。PC端和手機端的頁面分別設計,通過判斷瀏覽器的類型實現自動跳轉。
實現了數據訪問層和WEB服務,就實現了整個系統。
3 結束語
本文通過分析湖南科技學院圖書館師生對多媒體管理系統的功能需求,確定了系統的功能,然后進行系統的架構和數據庫設計,采用RTMP協議作為系統的核心功能視頻點播的通信協議,最后實現了系統。
基于RTMP協議的圖書館多媒體管理系統的實現,滿足了圖書館和讀者的需求,方便了圖書館視頻資源的管理,同時也方便了師生查詢和觀看視頻,從一定程度上豐富了圖書館的館藏建設手段,對于圖書館的視頻資源建設起到一定的促進作用。未來,還要根據實際情況不斷完善和擴展新功能,如與微信的對接功能等。
參考文獻:
[1] 趙陽. 高校數字圖書館特色視頻數據庫建設淺論[J]. 科技情報開發與經濟,2011,21(25): 43-45.
[2] 王艷. Android系統中RTMP流媒體直播的設計與實現[J]. 電視技術,2017,41(1):64-67.
[3] RED5_百度百科[EB/OL]. https://baike.baidu.com/item/Red5. 2019.
[4] 雷霄驊, 姜秀華, 王彩虹. 基于RTMP協議的流媒體技術的原理與應用[J]. 中國傳媒大學學報: 自然科學版, 2013,20(6):59-64.
【通聯編輯:謝媛媛】