国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C/S架構(gòu)和RTMP協(xié)議的機(jī)房教學(xué)系統(tǒng)

2019-05-24 14:11:40葉興汪彥肖金琢
電腦知識(shí)與技術(shù) 2019年4期
關(guān)鍵詞:教學(xué)系統(tǒng)信息化

葉興 汪彥 肖金琢

摘要:為了提高當(dāng)前高校機(jī)房實(shí)驗(yàn)教學(xué)的信息化管理水平,改善實(shí)驗(yàn)教學(xué)質(zhì)量,設(shè)計(jì)了一個(gè)機(jī)房教學(xué)管理系統(tǒng)。該系統(tǒng)利用C/S結(jié)構(gòu),以Visual Studio 2012作為開發(fā)工具,并使用SQL Server 2010作為數(shù)據(jù)庫(kù)。本系統(tǒng)實(shí)現(xiàn)了基本的機(jī)房實(shí)驗(yàn)教學(xué)管理功能,并采用較為新穎的RTMP協(xié)議配合FFmpeg工具進(jìn)行屏幕共享功能的實(shí)現(xiàn),在保證畫面質(zhì)量的同時(shí),實(shí)驗(yàn)教學(xué)效率有了進(jìn)一步的提高。

關(guān)鍵詞:教學(xué)系統(tǒng);信息化;C/S;屏幕共享; RTMP協(xié)議;FFmpeg

中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2019)04-0091-03

隨著信息時(shí)代的高速發(fā)展,高校教學(xué)思想與教學(xué)平臺(tái)發(fā)生了翻天覆地的變化[1]。越來越多的高校將機(jī)房規(guī)模擴(kuò)大以便適應(yīng)時(shí)代潮流,而在高校教學(xué)活動(dòng)當(dāng)中,機(jī)房實(shí)踐教學(xué)處于突出位置,這使得這種現(xiàn)代化實(shí)驗(yàn)教學(xué)面對(duì)著十分嚴(yán)峻的挑戰(zhàn)。不過囿于人力與資金的關(guān)系,現(xiàn)在許多高校仍然在使用比較傳統(tǒng)的教學(xué)管理方式,這不但使得教學(xué)質(zhì)量堪憂,也造成了較大的資源浪費(fèi)。因此,需要一種方便而實(shí)用的機(jī)房實(shí)驗(yàn)教學(xué)系統(tǒng)來解決當(dāng)前的問題。結(jié)合實(shí)際機(jī)房實(shí)驗(yàn)教學(xué)狀況,我們?cè)O(shè)計(jì)和實(shí)現(xiàn)了一個(gè)機(jī)房教學(xué)系統(tǒng),該系統(tǒng)使用Visual Studio 2012作為開發(fā)工具,使用SQL Server 2010實(shí)現(xiàn)后臺(tái)數(shù)據(jù)庫(kù)。

1 目前背景介紹

當(dāng)前國(guó)內(nèi)外同類的教學(xué)軟件大部分為機(jī)房實(shí)驗(yàn)教學(xué)系統(tǒng)[2-3],大都具有廣播教學(xué)、文件傳輸?shù)裙δ?,但有些系統(tǒng)已經(jīng)不能適應(yīng)如今信息化教學(xué)的潮流和軟硬件環(huán)境的變化,筆者認(rèn)為可以用更高效、更穩(wěn)定的技術(shù)進(jìn)行機(jī)房教學(xué)系統(tǒng)基本功能的改進(jìn)與擴(kuò)展。

2 系統(tǒng)分析

2.1 需求分析

經(jīng)調(diào)研分析,我們了解到現(xiàn)階段高校機(jī)房系統(tǒng)的管理需求主要存在于高效率的屏幕共享、文件傳輸、設(shè)備監(jiān)管與簽到簽退等方面,同時(shí)系統(tǒng)需具有良好的可兼容性、可維護(hù)性。

2.2 可行性分析

文件傳輸與設(shè)備監(jiān)管等需求可以使用傳統(tǒng)的Socket通信技術(shù)來實(shí)現(xiàn),作為授課主要功能的屏幕共享則使用更為穩(wěn)定、高效的RTMP協(xié)議來進(jìn)行實(shí)現(xiàn),而使用數(shù)據(jù)庫(kù)技術(shù)可以進(jìn)行后臺(tái)學(xué)生信息管理,實(shí)現(xiàn)課堂簽到、簽退等功能。這些技術(shù)都是比較成熟和穩(wěn)定的,因此該系統(tǒng)從技術(shù)的角度來看具有可行性。

3 系統(tǒng)設(shè)計(jì)

3.1 系統(tǒng)構(gòu)架設(shè)計(jì)

機(jī)房實(shí)驗(yàn)教學(xué)系統(tǒng)的總體框架結(jié)構(gòu)分為后臺(tái)數(shù)據(jù)庫(kù)、分發(fā)服務(wù)器、教師端軟件和學(xué)生端軟件四部分。后臺(tái)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)采用SQL Server 2010與分發(fā)服務(wù)器都運(yùn)行在Windows操作系統(tǒng)上。教師端軟件運(yùn)行在教師機(jī)上,學(xué)生端軟件則運(yùn)行在學(xué)生機(jī)上,教師端軟件與學(xué)生端軟件之間、運(yùn)行于不同學(xué)生機(jī)的學(xué)生端軟件之間通過Socket進(jìn)行網(wǎng)絡(luò)通信。教師端和學(xué)生端均采用EF(Entity Framework)框架訪問后臺(tái)數(shù)據(jù)庫(kù),EF框架在3.3節(jié)闡述。系統(tǒng)整體架構(gòu)如圖1所示。

3.2 系統(tǒng)功能模塊設(shè)計(jì)

如構(gòu)架圖所示,機(jī)房教學(xué)系統(tǒng)分為后臺(tái)數(shù)據(jù)庫(kù)、分發(fā)服務(wù)器、教師端軟件、學(xué)生端軟件四部分。教師可以通過教師端軟件廣播屏幕功能向?qū)W生機(jī)廣播自己的屏幕,共享文件功能對(duì)文件進(jìn)行發(fā)送,在線討論功能與學(xué)生進(jìn)行交流,并可以設(shè)置是否允許討論,還可以通過遠(yuǎn)程控制對(duì)學(xué)生端進(jìn)行遠(yuǎn)程控制,如關(guān)閉學(xué)生機(jī)上的某個(gè)程序,遠(yuǎn)程關(guān)機(jī)等等。學(xué)生通過學(xué)生端軟件可以進(jìn)行簽到,簽退,進(jìn)行討論,接收教師機(jī)共享文件,觀看教師機(jī)廣播屏幕等功能。系統(tǒng)功能結(jié)構(gòu)圖如圖2所示。

3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

機(jī)房教學(xué)系統(tǒng)數(shù)據(jù)庫(kù)除了使用功能強(qiáng)大的SQL Server 2010構(gòu)建外,還使用了微軟的EF(Entity Framework)框架。EF框架是ADO.NET (ActiveX Data Objects 活動(dòng)數(shù)據(jù)對(duì)象)中的一套支持開發(fā)面向數(shù)據(jù)的軟件應(yīng)用程序的技術(shù),是微軟的一個(gè)ORM(Object Relational Mapping對(duì)象關(guān)系映射)框架。此框架最大的作用就是夠使用特定于域的對(duì)象來處理數(shù)據(jù),而無(wú)需關(guān)注存儲(chǔ)在此數(shù)據(jù)的基礎(chǔ)數(shù)據(jù)庫(kù)表和列,簡(jiǎn)而言之就是使用更少的代碼創(chuàng)建和維護(hù)面向數(shù)據(jù)的應(yīng)用程序,使得訪問數(shù)據(jù)庫(kù)像使用一個(gè)class類一般簡(jiǎn)單。

合理利用數(shù)據(jù)庫(kù)可以大量減少日常工作任務(wù),結(jié)合實(shí)際情況分析,本系統(tǒng)數(shù)據(jù)庫(kù)共設(shè)計(jì)四張表,分別是教師信息表、學(xué)生信息表、實(shí)驗(yàn)記錄表、課堂記錄表。

1)學(xué)生信息表用于學(xué)生具體信息的記錄,包括學(xué)生學(xué)號(hào)、姓名、班號(hào)、性別、登錄密碼和院系名稱。

2)教師信息表用于記錄教師的具體信息,包括教師工號(hào)、姓名、性別、登錄密碼和院系名稱。

3)課堂記錄表是記錄本次課堂的詳細(xì)信息,包括機(jī)房編號(hào)、授課時(shí)間、教師工號(hào)、班號(hào)、到課人數(shù)、缺勤人數(shù)、缺勤學(xué)號(hào)。

4)學(xué)生實(shí)驗(yàn)記錄表是記錄具體每次上機(jī)實(shí)驗(yàn)的信息,包括學(xué)號(hào)、機(jī)房編號(hào)、實(shí)驗(yàn)編號(hào)、教師工號(hào)、班號(hào)、實(shí)驗(yàn)分?jǐn)?shù)。

4 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)

4.1 RTMP協(xié)議簡(jiǎn)介

RTMP (Real Time Messaging Protocol實(shí)時(shí)消息傳輸協(xié)議) 是專門用來傳輸音視頻數(shù)據(jù)的流媒體。它基于TCP/IP協(xié)議,是一個(gè)協(xié)議族,除了基本協(xié)議之外還包含RTMPT/RTMPS/RTMPE等多種變種。它最初由Macromedia公司創(chuàng)建, 后來歸Adobe公司所有, 是一種應(yīng)用非常廣泛的通信協(xié)議,其研發(fā)目的是為了更好地完成實(shí)時(shí)的數(shù)據(jù)通信任務(wù),實(shí)現(xiàn)音頻視頻文件的傳遞接收。但隨著流媒體技術(shù)的發(fā)展應(yīng)用,RTMP協(xié)議的使用范圍也在不斷擴(kuò)大,多個(gè)在音視頻傳播領(lǐng)域有廣泛影響力的,類似于Flash+AIR(Adobe Integrated Runtime )軟件中,RTMP協(xié)議都可以完美支持[4]。

4.2 利用RTMP協(xié)議實(shí)現(xiàn)屏幕共享

所謂屏幕共享,是指在網(wǎng)絡(luò)環(huán)境中,遠(yuǎn)程客戶端可以在較短的時(shí)間延遲內(nèi)重現(xiàn)主機(jī)屏幕界面的顯示內(nèi)容,并提供給遠(yuǎn)程用戶一種如坐在主機(jī)旁一樣的虛擬界面環(huán)境。屏幕共享是一種重要的數(shù)據(jù)共享應(yīng)用,已在視頻會(huì)議、遠(yuǎn)程教學(xué)、遠(yuǎn)程監(jiān)控和股票分析系統(tǒng)等領(lǐng)域中取得到了良好的應(yīng)用。

屏幕共享最開始源于蘋果公司所提出GUI (Graphic User Interface圖形用戶界面),后因?yàn)槠涑杀镜?、靈活和便于維護(hù)等優(yōu)越性得以迅速發(fā)展[5-6]。在本系統(tǒng)中,整個(gè)屏幕共享功能的簡(jiǎn)要流程如圖3所示。

其中本系統(tǒng)的分發(fā)服務(wù)器部分,利用SRS(Simple RTMP Server)搭建RTMP服務(wù)器,在配置方面較為簡(jiǎn)單方便,利于后面使用FFmpeg工具進(jìn)行推流與拉流。FFmpeg是一套非常強(qiáng)大的視頻、音頻開源轉(zhuǎn)換程序,能將視頻、音頻轉(zhuǎn)換成流,F(xiàn)Fmpeg內(nèi)置的gdigrab就可以進(jìn)行基于Win32 GDI(Graphics Device Interface圖形設(shè)備接口)的屏幕捕獲,只要一條ffmpeg -f gdigrab -i desktop指令即可,在采集教師端的桌面畫面后進(jìn)行壓縮轉(zhuǎn)碼操作,將其轉(zhuǎn)換成流。至此之后就是進(jìn)行推流的準(zhǔn)備,將流封裝成RTMP格式,且在傳輸時(shí)需要拆分成一個(gè)個(gè)的Chunk塊。RTMP流的傳輸不是用Message劃分的,而是用Chunk塊,接下來使用FFmpeg即可進(jìn)行推流,把利用RTMP協(xié)議封裝好后的RTMP流傳輸?shù)椒?wù)器上。其具體操作可概括為初始化、握手、建立連接和建立流等環(huán)節(jié),此處以本機(jī)服務(wù)器地址為例,F(xiàn)Fmpeg工具的推流的啟動(dòng)指令為ffmpeg -f gdigrab -i desktop–b4M –r 10 –preset ultrafast –turezerlatency–fflvrtmp:localhost:1935/live/room,在學(xué)生端同樣利用FFmpeg進(jìn)行拉流,此時(shí)也需要進(jìn)行轉(zhuǎn)碼操作。值得一提的是使用FFmpeg的C# BindingFFmpeg.AutoGen直接用指針來操縱流,所造成的延遲較低,大概在1秒左右。在整個(gè)屏幕共享過程中RTMP流的轉(zhuǎn)碼是重中之重,視頻文件的輸出轉(zhuǎn)碼過程如圖:

所謂轉(zhuǎn)碼即為視頻信號(hào)從一種格式轉(zhuǎn)換成另一種格式。這里即為視頻流與RTMP流之間的相互轉(zhuǎn)換,學(xué)生端只有正確地將RTMP流進(jìn)行轉(zhuǎn)碼才能觀看到教師端的畫面。

學(xué)生端轉(zhuǎn)碼的部分核心代碼如下:

_pFormatContext=ffmpeg.avformat_alloc_context();//創(chuàng)建一個(gè)內(nèi)存

varpFormatContext = _pFormatContext;

//寫入

ffmpeg.avformat_open_input(&pFormatContext, url, null, null).ThrowExceptionIfError();

ffmpeg.avformat_find_stream_info(_pFormatContext, null).ThrowExceptionIfError();

//查找第一個(gè)視頻流

AVStream* pStream = null;

for(vari = 0;i< _pFormatContext->nb_streams; i++)

//判斷是否為視頻流

if(_pFormatContext->streams[i]->codec->codec_type == AVMediaType.AVMEDIA_TYPE_VIDEO)

{

pStream = _pFormatContext->streams[i];

break;

}

//沒有找到視頻流就拋出異常

If(pStream == null) throw new InvalidOperationException("Could not found video stream.");

//設(shè)定流

_streamIndex = pStream->index;

_pCodecContext = pStream->codec;

//查找編碼和解碼

varcodecId = _pCodecContext->codec_id;

varpCodec=ffmpeg.avcodec_find_decoder(codecId);

if (pCodec==null)throw new

InvalidOperationException("Unsupported codec.");//不支持編碼類型

//解碼

ffmpeg.avcodec_open2(_pCodecContext, pCodec, null).ThrowExceptionIfError();

//設(shè)置解碼名

CodecName=ffmpeg.avcodec_get_name(codecId);

//設(shè)置幀的大小

FrameSize=new Size(_pCodecContext->width, _pCodecContext->height);

//設(shè)置像素格式

PixelFormat = _pCodecContext->pix_fmt;

//創(chuàng)建視頻

_pPacket = ffmpeg.av_packet_alloc();

_pFrame = ffmpeg.av_frame_alloc();

5 結(jié)束語(yǔ)

在計(jì)算機(jī)技術(shù)普及的時(shí)代,實(shí)驗(yàn)教學(xué)系統(tǒng)遇到更多的挑戰(zhàn)是必然的。想要有效提升高校機(jī)房教學(xué)管理水平,需要對(duì)網(wǎng)絡(luò)通信、數(shù)據(jù)庫(kù)和機(jī)房教學(xué)等方面有著比較深刻的認(rèn)知,了解機(jī)房具體管理運(yùn)作和系統(tǒng)功能塊上的優(yōu)缺點(diǎn),并結(jié)合日常機(jī)房實(shí)踐管理案例,針對(duì)性地將系統(tǒng)進(jìn)行修改與擴(kuò)展。本文所介紹的系統(tǒng),提高了實(shí)驗(yàn)課堂教學(xué)質(zhì)量,簡(jiǎn)化了日常教學(xué)工作, 也使機(jī)房實(shí)驗(yàn)教學(xué)工作更加井然有序,這對(duì)當(dāng)前高校信息化教學(xué)有著重要的現(xiàn)實(shí)意義和推動(dòng)作用。

參考文獻(xiàn):

[1] 邱兆新.基于機(jī)房教學(xué)模式下大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)改革[J].廣西民族師范學(xué)院學(xué)報(bào),2016,33(3):38-40,43.

[2] 孫濤,焦媛.提升機(jī)房教學(xué)效果的措施分析[J].黑龍江教育:理論與實(shí)踐,2016(Z1):83-84.

[3] 汪彥,劉智勇,龍振球.機(jī)房實(shí)驗(yàn)教學(xué)系統(tǒng)的優(yōu)化研究與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2017(2):49-51,54.

[4] 黃波,張先輝.基于RTMP協(xié)議的IPTV監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].廣播電視信息,2018(7) .

[5] 張宗飛.VB中屏幕共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(4):83-86,111.

[6] 汪彥,黃雪華,涂立.一種改進(jìn)的應(yīng)用于機(jī)房教學(xué)的屏幕共享方案[J].計(jì)算機(jī)與現(xiàn)代化,2011(9):82-85.

【通聯(lián)編輯:朱寶貴】

猜你喜歡
教學(xué)系統(tǒng)信息化
淄博市大力推進(jìn)交互式在線教學(xué)系統(tǒng)應(yīng)用
月“睹”教育信息化
基于Unity的計(jì)算機(jī)硬件組裝仿真教學(xué)系統(tǒng)設(shè)計(jì)
月“睹”教育信息化
幼兒教育信息化策略初探
甘肅教育(2020年18期)2020-10-28 09:06:02
“云會(huì)計(jì)”在中小企業(yè)會(huì)計(jì)信息化中的應(yīng)用分析
活力(2019年21期)2019-04-01 12:16:40
多地遠(yuǎn)程互動(dòng)同步教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于交互式雙板教學(xué)系統(tǒng)的高中地理教學(xué)研究
汽車配件營(yíng)銷實(shí)踐教學(xué)系統(tǒng)開發(fā)
信息化是醫(yī)改的重要支撐
翁牛特旗| 苏州市| 蛟河市| 于田县| 长垣县| 凤庆县| 敦煌市| 垣曲县| 旬邑县| 盖州市| 墨江| 漳州市| 安化县| 北流市| 志丹县| 清原| 翁牛特旗| 庄河市| 建宁县| 高淳县| 吉木乃县| 固安县| 黑山县| 彭阳县| 临泽县| 青神县| 惠安县| 宜川县| 长丰县| 西城区| 玉树县| 大英县| 闽侯县| 渝中区| 眉山市| 湟中县| 利辛县| 兰考县| 齐河县| 汤阴县| 永济市|