• 沒有找到結果。

6.1 結論

遠端桌面程式共有的問題-播放影片造成網路流量暴增,本研究利用串流技術解決

資料暴增的問題。但由於RDP Server 為微軟所掌握,無法取得相關資訊。所以透過外

加的串流伺服器,將 Server 端的影像資料傳送到 Client 端播放。本研究採用開放程式 碼RDP Client-rdesktop;多媒體播放器-MPlayer,完成 Client 端實作。Server 端實作 則是自行撰寫的程式。

本論文第三章解析MPlayer 多媒體播放程式,包含開檔模組、Cache2 機制、影像濾 波器和影像輸出模組。解說開檔模組、影像濾波器和影像輸出模組使用的資料結構,而

這結構成員有許多函式指標指到特定模組的操作函式。在播放影片前,將建立 video

chain,這會決定影像解碼器、影像濾波器和影像輸出模組。最後說明影像在解碼後,圖 像資料是如何在影像濾波器和影像輸出模組間傳遞。

第四章,在Client 端撰寫 MPlayer 的 rdp 影像輸出模組,將影像畫面輸出到 fifo 檔。

rdesktop 程式,加入 MPlayer 播放控制和影像接收並顯示。前者負責接收 Server 的播放 命令並執行MPlayer 程式;後者則是從 fifo 檔讀取影像資料並且將影像顯示到視窗上。

在Server 端,撰寫 Rdesktop Media Server,裡面包含 TCP Socket Server-負責傳送播放 指令和Web Server-傳送使用者點選的影片。

RDP 和 VNC 在播放影片時,影片的畫面並非單調而是複雜的,此時都是採用非失

真壓縮的方式傳送,所以耗費的網路流量會非常大。由於我們是利用 Progressive

Download 的串流方式,所以網路流量取決於影片的編碼率。編碼率對於非失真壓縮的 圖像,即是影片的壓縮率。所以Progressive Download 串流的方式網路流量會小很多!

6.2 未來發展

本研究利用串流技術解決遠端桌面程式播放影片造成的資料暴增和不順暢的問 題。但還是有改進的空間。

z 使用遠端桌面時,點選影片可以很順暢地播放,但是控制只有播放而沒有停止或快 倒轉功能。影像畫面嵌入到遠端桌面程式,子視窗內影像大小無法調整。未來可以 增加控制介面和影像畫面縮放功能。

z 由於是使用一般的 Web Server 來進行 Progressive Download 的串流方式,所以影片 的解析度、編碼率或是取樣率並沒辦法調整。

z 嵌入式平台使用的 Intel XScale PXA270 影片解碼能力不足,可以改用運算更快或是 內建硬體解碼的CPU。

參考文獻

[1] Tristan Richardson, “The RFB Protocol”, ORL/AT&T Labs Cambridge, June, 2008 [2] rdesktop: A Remote Desktop Protocol Client

http://www.rdesktop.org/

[3] Oliver Jones 著,Introduction to the X Window System,黃豐隆譯,松崗電腦圖書資料 股份有限公司,民國82 年,台北

[4] David Austerberry, The Technology of Video and Audio Streaming, 2nd edition ,Focal Press, 2004

[5] VLC media player - Open Source Multimedia Framework and Player http://www.videolan.org/vlc/

[6] MPlayer - The Movie Player http://www.mplayerhq.hu/

[7] Windows Media Player 11

http://www.microsoft.com/windows/windowsmedia/player/11/default.aspx [8] Introduction to Interprocess Communication Using Named Pipes

http://developers.sun.com/solaris/articles/named_pipes.html

[9] 李宗學,“終端服務的桌面影像壓縮”,國立交通大學,碩士論文,2008 [10] Doug Abbott, Linux for Embedded and Real-time Applications, Newnes, 2003 [11] 江元新,Linux 核心開發與實務-INTEL XScale PXA270,長高科技圖書,2006 [12] 華亨科技股份有限公司,XSBase270(EELiod) ADS/Linux/WinCE 實驗開發與實務 [13] Hypertext Transfer Protocol -- HTTP/1.1

http://www.w3.org/Protocols/rfc2616/rfc2616.html

附錄一:加入 rdp 影像輸出模組

要在MPlayer 加入自己的影像輸出模組有下列幾個步驟 第一步:建立檔案libvo/vo_rdp.c。

第二步:按照輸出模組的函式撰寫程式。紅框部分是模組的簡稱,這是要讓MPlayer

可以呼叫此模組。

第三步:更改libvo/video_out.c。這邊有兩個地方要加入。

第四步:更改libvo/Makefile 這樣在 make 的時候才會將程式編譯。

附錄二

:Build rdesktop & MPlayer for ARM rdesktop

第一步:網路下載openssl-0.9.6m.tar.gz,解壓縮後,輸入下面指令

[root@localhost openssl-0.9.6m]# ./Configure linux-elf-arm no-shared

第二步:開啟Makefile,將"CC=gcc"改成"CC=arm-elf-gcc"。CFLAG 的後面"-O3"改成

"-O2",並加上"-D__PIC__ -fpic -msingle-pic-base -Wl,-elf2flt=-z",然後 make

[root@localhost openssl-0.9.6m]# make

第三步:編譯完成後,將libcrypto.a 和 libssl.a 放到/opt/xscalev1/lib/下。

第四步:網路下載rdesktop-1.6.0.tar.gz,解壓縮 rdesktop 後,輸入下面指令。

[root@localhost rdesktop-1.6.0]# ./configure --host=arm-linux CC=arm-linux-gcc --with-sound=oss

第五步:更改rdesktop 下的 Makefile,將 LDFLAGS 後面改成-L/opt/xscalev1/lib -lcrypto –lpthread。如此重新 make,可以成功編譯 rdesktop for ARM。

第六步:編譯程式

[root@localhost rdesktop-1.6.0]# make

MPlayer

下載MPlayer 並且解壓縮後,輸入下面指令

[root@localhost MPlayer-1.0rc2]# ./configure --prefix=/usr --target=arm-linux-gnu --cc=arm-linux-gcc --host-cc=gcc --as=arm-linux-as --disable-md5sum --disable-pnm --disable-tga --disable-dvdnav --disable-dvdread --disable-dvdread-internal --disable-ftp --disable-tv --disable-dvbhead --disable-mmx --disable-mmxext --disable-3dnow --disable-3dnowext --disable-sse --disable-sse2 --disable-ssse3 --disable-shm --disable-altivec --disable-armv5te --disable-armv6 --disable-iwmmxt --disable-fastmemcpy --disable-dynamic-plugins --enable-alsa --enable-ossaudio --enable-select [root@localhost MPlayer-1.0rc2]# make