| 研究生: |
蔡侑縉 Tsai, Yu-Chin |
|---|---|
| 論文名稱: |
Web作業系統環境音訊傳輸機制之設計與實作 The Design and Implementation of Audio Transmission Mechanism for Web Operating System |
| 指導教授: |
陳 敬
Chen, Jing |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 電腦與通信工程研究所 Institute of Computer & Communication Engineering |
| 論文出版年: | 2011 |
| 畢業學年度: | 99 |
| 語文別: | 中文 |
| 論文頁數: | 101 |
| 中文關鍵詞: | 雲端運算 、HTML5 、影音同步化 、Linux 、嵌入式手持式裝置 |
| 外文關鍵詞: | Cloud Computing, HTML5, Video and Audio Synchronization, Linux, Handheld Mobile Devices |
| 相關次數: | 點閱:101 下載:2 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
隨著科技發展,嵌入式手持式裝置漸漸成為生活中不可或缺的一部分。然而,時代的演進,人們對於行動裝置之要求越來越高。如能將需大量運算之應用交由功能較強之伺服器處理,將會降低行動裝置之負擔,因此衍伸出雲端運算(Cloud Computing)之概念。
本論文以雲端運算環境Web作業系統音訊機制之設計與實作為主題,主要為使用者使用沒有任何多媒體影音播放外掛之瀏覽器,透過網頁介面之操作,執行遠端伺服器程式。本論文之焦點集中在音訊播放與影音同步化。本論文建構在「Web Operating System for Embedded Systems」之成果,加入音訊之功能。目標為使用行動裝置,透過瀏覽器網頁之操作,執行遠端伺服器之影音程式;使用者可以透過瀏覽器之畫面,體驗自遠端伺服器下載之多媒體影音播放效果。
本論文重點分為三部分,第一部分為伺服器端之音訊資料擷取:此部份著重在多個使用者同時於遠端伺服器執行影音服務。由於本論文之伺服器端以個人電腦為平台,使用Ubuntu桌面版本之作業系統,因此必須確保客戶端之音訊不會相互干擾,故本論文之實作將各音訊串流其音訊資料複製一份副本,以確保各個客戶端之音訊品質。第二部分為網頁與伺服器間多媒體資料之傳輸:此部分主要將伺服器端產生之多媒體影音檔案,透過網際網路,傳送到客戶端瀏覽器之網頁,供後續播放之用。第三部分為影像與音訊之同步化,主要將伺服器端所傳送至客戶端瀏覽器之多媒體影音,進行同步化之播放,此部分採多媒體影音檔案產生之時間標籤為同步化依據,使客戶端瀏覽器網頁之影音播放可以更加流暢。
一般瀏覽器網頁播放多媒體影音,往往採用影音播放外掛。本論文以HTML5音訊標籤之使用,取代影音播放外掛。藉由HTML5之音訊標籤,播放遠端伺服器傳送之音訊,並以網頁語言Javascript維持影音同步化播放之運作,讓使用者可以在不同運作模式下,也可以享受影音多媒體之服務。
Handheld mobile devices of embedded system products are prevailing in our daily life. With the emerging cloud computing, the general issue of limited computing resources in these devices might be solved by shifting the execution of application software to the cloud side. However, delivering audio data or multimedia streaming data produced on the server side to be played on mobile devices is very challenging and many issues remain to be addressed. This thesis presents an approach to playing, on client side devices, audio streaming data produced at the server side in the web operating system environment. The goals include playing audio streaming data and its synchronization with playing video streaming data on mobile devices by operating a browser software without plug-in support.
In achieving the goals, the work in this thesis consists of three parts of which one part is implemented on the server side and the other two are implemented on the device side. In addition, to avoid incurring compatibility issues, the implementation employs currently available standards as much as possible. On the server side, the audio data produced by running application software is captured and sliced into small files with timestamps encoded into their file names. These files are delivered to the mobile device in response to the requests issued from the browser running on the device. On the device side, with the browser supporting Javascript and HTML5, a web page is implemented using Javascript. The web page is responsible for interacting with the server by launching an application and requesting the sliced audio data files produced on the server side. Playing audio data is done using the audio tag supported by HTML5. When playing multimedia data stream, the web page also takes charge of maintaining the synchronization between video data and audio data. No plug-in for the browser on the device is required.
The implementation is done based the results of “Web Operating System for Embedded Systems” and enhances its functionality. It demonstrates that the presented approach effectively offloads the execution of multimedia applications from mobile devices to the server side and helps transit to cloud computing.
[1] 蘋果排擠Adobe,趕盡殺絕Flash真有理?
http://www.ectimes.org.tw/Shownews.aspx?id=100425193211.
[2] Adobe、蘋果談Flash:各說各話…? http://mag.udn.com/mag/digital/storypage.jsp?f_MAIN_ID=322&f_SUB_ID=2920&f_ART_ID=246149.
[3] Flash、HTML5誰比較吃資源?數字會說話
http://www.techbang.com.tw/posts/2126-flash-html5-who-compare-eating-resources-the-numbers-say.
[4] HTML5 wiki, http://zh.wikipedia.org/wiki/HTML5.
[5] RDP, http://en.wikipedia.org/wiki/Remote_Desktop_Protocol.
[6] VNC, http://en.wikipedia.org/wiki/Virtual_Network_Computing.
[7] Yen-Hsiang Chen, Shu-Song Chen, and Shanq-Jang Ruan,
“Integrating Bi-Direction Audio and Video Transmission for ultraVNC”,
Fourth International Conference on Networked Computing and Advanced Information Management, Sept. 2008.
[8] 聰明的雲需要豐富的端,才是好用的雲端,
http://www.gvm.com.tw/Board/Content.aspx?ser=16225.
[9] How it works: Linux audio explained,http://www.tuxradar.com/content/how-it-works-linux-audio-explained.
[10] HTML5 W3Schools, http://www.w3schools.com/html5/default.asp.
[11] WHATWG, http://www.whatwg.org/.
[12] W3C, http://www.w3.org/.
[13] HTML 5 與 HTML4 的差異與特色 , http://inspire.twgg.org/c/programming/html-css/html-5-differences-and-characteristics-with-html4.html.
[14] 數位音訊檔案格式, http://www.hmes.kh.edu.tw/~jona/infoteach/multimedia/audio_file.html.
[15] Sketchpad, http://mugtug.com/sketchpad/.
[16] Biolab Disaster, http://www.canvasdemos.com/2010/10/01/biolab-disaster.
[17] Javascript, http://www.w3schools.com/js/default.asp.
[18] Javascript Wiki, http://en.wikipedia.org/wiki/JavaScript.
[19] Netscape, http://en.wikipedia.org/wiki/Netscape.
[20] Java, http://en.wikipedia.org/wiki/Java_(programming_language).
[21] JQuery, http://www.w3schools.com/jquery/default.asp.
[22] XML, http://en.wikipedia.org/wiki/XML.
[23] SGML, http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language.
[24] GML, http://en.wikipedia.org/wiki/Geography_Markup_Language.
[25] XML Tutorial, http://www.w3schools.com/xml/default.asp.
[26] DTD, http://en.wikipedia.org/wiki/Document_Type_Definition.
[27] XSLT, http://en.wikipedia.org/wiki/XSLT.
[28] RSS, http://en.wikipedia.org/wiki/RSS.
[29] XML-DOM, http://www.w3schools.com/dom/default.asp.
[30] XML-RPC, http://www.xmlrpc.com/.
[31] PHP, http://zh.wikipedia.org/zh-hant/PHP.
[32] AJAX, http://www.w3schools.com/Ajax/Default.Asp.
[33] Sound Server Function, http://www.pulseaudio.org/wiki/AboutPulseAudio#Details.
[34] OSS, http://en.wikipedia.org/wiki/Open_Sound_System.
[35] OSS v4 Programmer's guide, http://manuals.opensound.com/developer/.
[36] OSS(Open Sound System) Tutorial, http://system.cmlab.csie.ntu.edu.tw/linux/tiroguide/OSS_tutorial.doc.
[37] ALSA wiki, http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture.
[38] ALSA Project, http://www.alsa-project.org/main/index.php/Main_Page.
[39] A Tutorial on Using the ALSA Audio API, http://www.equalarea.com/paul/alsa-audio.html.
[40] Introduction to Sound Programming with ALSA, http://www.linuxjournal.com/article/6735.
[41] PulseAudio, http://www.pulseaudio.org/.
[42] POSIX, http://en.wikipedia.org/wiki/POSIX.
[43] JACK Project, http://jackaudio.org/.
[44] JACK, http://en.wikipedia.org/wiki/JACK_Audio_Connection_Kit.
[45] Play Sound using Virtual MIDI Piano Keyboard,
http://selainsoft.blogspot.com/2010/10/play-sound-using-virtual-midi-piano.html.
[46] AUDIO Extension for the X Window System, http://www.chaoticmind.net/~hcb/murx/xaudio/index.html.
[47] XMMS, http://www.xmms.org/.
[48] VLC, http://www.videolan.org/vlc/.
[49] Sliding Window, http://wiki.iiietc.ncu.edu.tw/mediawiki/index.php?title=Sliding_Windows.
[50] RTSP Spec, http://www.cs.columbia.edu/~hgs/rtsp/draft/draft-ietf-mmusic-rtsp-09.pdf.
[51] 何謂 RTSP ?
http://dslab.ee.ncku.edu.tw/~lily/learning/learning_ch2-1.html.
[52] RTSP Introduction, http://www.informit.com/articles/article.aspx?p=169578&seqNum=3.
[53] RTP, http://en.wikipedia.org/wiki/Real-time_Transport_Protocol.
[54] Fadi Abdelqader, “Examples to create your Conferencing System in .NET, C# VOIP & Video Conferencing Systems using H.323 and TAPI 3”, http://www.codeproject.com/KB/IP/Video_Voice_Conferencing.aspx?msg=2688325, Jan 2007.
[55] RTP/AVP audio and video payload types, http://en.wikipedia.org/wiki/RTP_audio_video_profile.
[56] RTCP, http://en.wikipedia.org/wiki/RTP_Control_Protocol.
[57] SIP, http://en.wikipedia.org/wiki/Session_Initiation_Protocol.
[58] Understanding SIP-Based VoIP, http://www.packetizer.com/ipmc/sip/papers/understanding_sip_voip/.
[59] VoIP, http://en.wikipedia.org/wiki/Voice_over_IP.
[60] RFB, http://www.realvnc.com/docs/rfbproto.pdf.
[61] 戴驛權, “X視窗應用程式分享系統之設計與實作”, 碩士論文, 國立成功大學, 2010.
[62] 石振豪, “WebOS操作環境之行動裝置虛擬桌面系統”, 碩士論文, 國立成功大學, 2010.
[63] padevchooser, http://0pointer.de/lennart/projects/padevchooser/.
[64] libpulse, https://launchpad.net/ubuntu/lucid/+package/libpulse-dev.
[65] sox, http://sox.sourceforge.net/.
[66] Jingfeng Zhang, Ying Li, Yanna Wei, “Using Timestamp to Realize Audio-Video Synchronization in Real-time Streaming Media Transmission”, ICALIP 2008.