胡 斌
摘 要:現有的流媒體系統采用瀏覽器/服務器體系結構,為師生提供了方便實用的在線學習系統平臺,但缺少對學習的監督和評價機制?;贘SP技術和Oracle技術的視頻點播系統,在流媒體系統的基礎上增加了相應的教學支撐子系統,且提供對視頻內容的索引功能,實現視頻內容的相關介紹性信息同步呈現。其在有效利用流媒體技術為網絡教學服務同時,增強了在線學習的實用性和交互性。
關鍵詞:流媒體;視頻點播;JSP;B/S結構
中圖分類號:TP311文獻標識碼:B
文章編號:1004 373X(2009)02 111 03
Design and Implementation of Stream Medium System Based on Web
HU Bin
(College of Information Science and Engineering,Bohai University,Jinzhou,121000,China)
Abstract:Existing stream medium system uses browser / server architecture,provids a convenient and practical online learning system platform for teachers and students,which lacks of monitoring and evaluation mechanism for studying.It introduces a VOD system technology based on JSP and ORACLE,it adds the corresponding teaching support subsystem on the basis of stream medium system.The system provids video content indexing and the video content of relevant information on the show simultaneously.With the stream medium technology in teaching network services,it enhances the practical and interacive function of online learning.
Keywords:stream medium;video-on-demand;JSP;B/S structure
0 引 言
Internet的迅速普及和發展,給人們的生活和學習方式帶來了極大的變化,越來越多的人正通過遠程教育不斷提高自己的知識水平。傳統的主要基于課堂的教學方式需要在這種發展變化中進行革新。教學視頻資源的在線點播,能彌補單純課堂教學在時間和空間上的局限性,使學習者能靈活安排課余時間和學習場所,通過網絡教學視頻重溫課堂教學過程, 并且學生能及時的反饋, 同時,教師也能將教學視頻資料隨時上傳到該系統。由此可見,這種基于網絡環境下的流媒體系統是一種靈活、高效的教學方法,加強了師生對教學過程的參與度,
提高了教學質量。
1 系統總體結構的設計
1.1 系統設計的方案
作為網絡教學平臺中最為重要的組件之一流媒體系統,其目標是在Internet/Intranet上設計在線學習系統,所以首先要考慮的是系統的維護工作量,盡可能地減少客戶端的系統維護工作。因此,該系統的體系結構建立在Web的B/S基礎上,通過與B/S結構的數據庫管理系統結合,真正實現了瘦客戶機模型或稱客戶端零配置,使得系統的維護僅需在服務器端進行。良好的可擴展性是系統的另一個重要設計原則。系統采用模塊化的設計方法,選擇易于擴展、跨平臺的JSP編程語言環境,使用Oracle作為后臺數據庫。整個流媒體系統可劃分為若干個功能模塊,而且各個功能模塊之間是相互獨立的,因而各部分都可以獨立地進行功能的完善和擴展。系統采用Window 2000 Server作為網絡操作系統,Oracle作為數據庫服務器,Apache作為應用程序服務器,流媒體服務器使用 Helix Server 9.0開發,并用JavaScript腳本語言編寫客戶端的程序,以便配合JSP語言開發服務器端的應用程序。
1.2 數據庫設計
數據庫設計主要是為系統設計數據庫與表,該系統具有以下幾個表:學生基本信息表、教師管理員表、院系信息表、教學科目信息表、學生選課表、教師授課表、媒體信息表、留言信息表其中主要是媒體信息表和留言信息表,媒體信息表記錄媒體的相關信息,其屬性主要包括自動編號、路徑文件名、文件大小、類型、索引關鍵字1、索引關鍵字2、索引關鍵字3、所屬科目、所有者編號;留言信息表:記錄論壇的留言信息,包括留言的標題、內容、媒體編號、發表者、發表日期等內容。
2 系統功能模塊設計與實現
整個系統功能模塊如下圖1所示,主要功能模塊分為前臺瀏覽搜索模塊和后臺媒體管理模塊。
前臺程序部分主要實現學生登錄的身份驗證,分課程顯示相應的在線視頻。前臺首先要求學生輸入姓名、學號進行身份驗證,系統從學生信息表中檢索,若輸入的姓名和學號不在庫中,給出相關提示,要求重新輸入;考生成功登錄后,即可對自己感興趣的科目進行點播,系統將自動記錄學生登錄的時間及在線時長,以及給出下一步的學習策略。
系統后臺管理程序采用系統管理員和普通教師兩級管理模式。普通教師具有上傳、刪除視頻資料功能,修改視頻文件索引內容,學生對課程的一些看法管理,學生學習情況查詢和統計等功能;系統管理員具有系統的完全權限,具有教師的所有功能外還包括教師基本信息管理、學生信息管理、課程信息管理、系統設置。后臺管理功能可以在任意地方以Web方式進行在線的管理,登錄時首先進行身份認證,然后根據管理員表中的信息來進行相應的管理。因此,后臺管理功能主要分為兩大功能模塊:一方面是系統管理員(相當于教務處人員)的管理模塊,主要的功能是課程管理;學生信息管理;教師的基本信息管理;系統的版面設計等;另一方面是教師的管理模塊,主要是對視頻文件和學生留言的管理以及對學生學習情況的統計功能。
3 系統中關鍵技術的實現
3.1 關鍵代碼介紹
對于本流媒體系統來說,主要是利用Jbuilder9編寫JSP應用程序,其中主要是對Oracle中的數據庫中的數據進行增加、刪除、修改和統計輸出操作即數據庫的讀、寫操作,完成大部分的功能模塊的編寫。限于篇幅,下面主要介紹兩個關鍵部分的代碼如下所示:
<%@pageimport="java.sql.*"%>
<%
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stringurl="jdbc:oracle:thin:@10.10.14.97:1521:streaming";
Stringuser="bhdx";
Stringpassword="abcdefg";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch (ClassNotFoundException ex) {
} catch (SQLException e) {
e.printStackTrace();
} %>
該程序段的功能是JSP連接數據庫。其中streaming為數據庫名;user是該系統數據庫的用戶名;password是訪問數據庫的密碼。而前臺是提供學生一個視頻文件列表和提供按文件名或索引關鍵字進行查詢功能;后臺程序主要是對數據庫中數據進行增加、刪除和修改等功能,下列程序是視頻文件搜索模塊:
<% String filename="";
String sql="select filename,filepath from streaming_file where filename like ′"+filename+"′";
ResultSetrs=stmt.executeQuery(sql);
out.print("<table border=0><caption>流媒體文件列表</caption>");
if(rs.next()){
out.print("<tr><td><a href=rtsp:\10.10.14.91"+rs.getString(2)+""+rs.getString(1)+">"+ rs.getString(1)+"</a></td></tr>");
}else{
out.print("很遺憾,無視頻文件?。糰 href=javascript:history.go(-1)>返回</a>");
}
out.print("</table>");
rs.close();
stmt.close();
conn.close();
%>
3.2 流媒體服務器介紹
該系統采用的流媒體服務器是 Helix Server9.0。Helix Server不支持所有的流媒體文件,所以還要一些軟件支持,因此Helix Universal Platform提供了一個功能強大的工具Helix Producer。它可以將Helix Server 不支持的流媒體文件轉換成支持的流媒體文件。
Helix Server提供了多種類型服務:
(1) 點播(On-Demand)。
任何時候,用戶都可以通過單擊Helix Server管理員公布的Web連接,向Helix Server提出播放流媒體文件的要求,服務器再按照用戶的要求,以“流”的方式不斷地把數據傳給用戶。用戶可以像播放本地流媒體文件一樣,隨意控制文件播放。
(2) 直播(Live)。
網絡直播和現實生活中的電視直播方式是類似的。直播的過程大致如下:
① 用數/模轉換設備如視頻采集卡將采集的模擬信號轉換成數字信號;
② 數字信號經壓縮編碼軟件,如Helix Producer轉換成流媒體數據流,并送往Helix Server;
③ 用戶單擊連接時,Helix Server將接收到的數據流發送給用戶。與點播不同的是用戶收看的是實時信號,但用戶不能控制快進、暫停。
(3) 模擬直播(Simulated Live)。
模擬直播的過程如下:
① 流媒體文件儲存在服務器或其他PC機上;
② 利用Helix Server提供的輔助工具“SLTA”,將流媒體文件以數據流的形式發送給Helix Server;
③ 用戶單擊連接時,Helix Server將接收到的數據流發送給用戶。用戶看到的是事先制作好的流媒體文件,就象是日常生活中通過電視收看故事片一樣。
若采用Microsoft 公司的 Windows Media Technology,則上述代碼中“<a href=rtsp:\10.10.14.91”部分可改為“<a href=mms:\10.10.14.91”。Windows Media Technology 是 Microsoft 提出的信息流式播放方案,其主要目的是在Internet 和 Intranet 上實現包括音頻、視頻信息在內的多媒體流信息的傳輸。Windows Media Technology 由 Media Tools,Media Server 和Media Player 工具構成。MediaTools 是整個方案的重要組成部分, 它提供了一系列的工具幫助用戶生成 ASF 格式的多媒體流 ( 包括實時生成的多媒體流) ,分為創建工具和編輯工具兩種,創建工具主要用于生成ASF格 式 的多媒體流,包括:Media Encoder,Author,VidToASF,WavToASF,Presenter 五個工具;編輯工具主要對ASF格式的多媒體流信息進行編輯與管理,包括后期制作編輯工具ASFIndexer與ASFChop,以及對ASF流進行檢查并改正錯誤的 ASFCheck。Media Server提供 ASF流式媒體的網絡發布服務,包括兩大基本服務模塊:Unicast Server 和 Station Server。其中,Unicast Server為客戶提供了點對點連接方式服務,Station提供廣播式服務。Media Player是客戶端播放工具,提供強大的流信息的播放功能。
4 結 語
該系統解決了學生課余自學課程的問題。這種基于Web的流媒體系統問題的提出、設計和開發都是基于網絡環境下教學的實際需求而進行的,經過了一段時間的試用,大大提高了教學的信息化和網絡化程度,提高了教學效率。在此認為這是一個有價值的實用的在線教學系統平臺。在今后的使用過程中,教師和學生一定會對系統的功能提出更高的要求、反饋意見和建議,該流媒體系統也會進一步地實用和完善。
參考文獻
[1]楊波,廖建新,朱曉民,等.基于對等網結構的流媒體系統研究.計算機工程,2007,35(14):192-194.
[2]李桂香,吳元保,賀貴明.廣域網實時流媒體傳輸的質量控制.計算機工程,2007,35(9):225-227.
[3]李月.Real流媒體技術構建網絡教學系統.遼寧工程技術大學學報,2005,24(3):410-412.
[4]劉冬.應用于網絡學習的實時流媒體點播系統.中山大學學報:自然科學版,2002,41(Z1):4-6.
[5]梁晉.Windows流媒體技術與遠程教育設計.小型微型計算機系統,2000,21(10):1 108-1 111.
[6]史紅.談流媒體技術的應用.科技信息:學術版,2007(28):56.
[7]齊蕾.流媒體技術在校園網中的應用.中國科技信息,2005(12):21.
[8]馬俊國,魯偉義.淺談通信教育網絡的流媒體技術.中小學電教:教師版,2005(3):69.
[9]王一春,王國明.流媒體技術在現代網絡教學中的應用.教育信息化,2005(6):72.
[10]周德富.流媒體技術在遠程教育中的運用.現代遠距離教育,2005(2):60-63.
[11]劉建彪.基于流媒體技術的遠程教育系統的設計與實現.計算機工程,2002,28(10):264-266.
作者簡介 胡 斌 男,1977年出生,浙江安吉人,講師。研究方向計算機網絡。