簡易檢索 / 詳目顯示

研究生: 蔡侑縉
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章 緒論 1 1.1 研究背景 1 1.2 研究動機與目的 3 1.3 研究方法 3 1.4 章節規劃 5 第2章 相關研究 6 2.1 網頁技術相關研究 6 2.1.1 HTML5 7 2.1.2 Javascript與JQuery 12 2.1.3 XML與XML-RPC 12 2.1.4 PHP 14 2.1.5 AJAX 14 2.1.6 討論 16 2.2 Linux音訊機制相關研究 17 2.2.1 OSS 18 2.2.2 ALSA 19 2.2.3 PulseAudio 20 2.2.4 JACK 22 2.2.5 X視窗系統音訊擴充專案 23 2.2.6 討論 24 2.3 網路多媒體即時傳輸相關研究 25 2.3.1 RTSP 25 2.3.2 RTP 28 2.3.3 RTCP 30 2.3.4 多媒體資料傳輸之流程 32 2.4 相關實例研究 32 2.4.1 以SIP協定為基礎的VoIP網路電話 32 2.4.2 在ultraVNC下整合雙向語音及影音傳輸之多媒體系統 35 2.5 討論 37 第3章 系統架構與設計 39 3.1 系統架構 41 3.2 伺服器端音訊串流擷取 42 3.2.1 伺服器端音訊串流擷取機制 42 3.2.2 伺服器之音訊捕捉程序(Audio Capture Process) 43 3.2.3 管理者執行緒 44 3.2.4 計時器執行緒 45 3.2.5 監控者執行緒 46 3.2.6 伺服器之音訊捕捉程序之整體運作 48 3.3 多媒體串流傳輸機制 51 3.4 嵌入式手持式裝置之多媒體影音同步化 54 第4章 系統實作 58 4.1 系統環境 58 4.1.1 伺服器端 58 4.1.2 客戶端 59 4.2 整體運作流程 60 4.3 伺服器之音訊捕捉程序之實作 63 4.3.1 註冊執行緒 63 4.3.2 管理者執行緒之實作 65 4.3.3 計時器執行緒之實作 67 4.3.4 監控者執行緒之實作 68 4.4 多媒體影音傳送機制之實作 69 4.4.1 多媒體資料傳送機制之整體流程 69 4.4.2 伺服器端之多媒體影音檔案之檔名傳送 70 4.4.3 客戶端之多媒體影音檔案下載 73 4.5 多媒體影音同步化之實作 76 第5章 系統測試與效能量測 82 5.1 測試平台簡介 82 5.2 系統測試 84 5.3 效能量測 89 5.3.1 伺服器端之音訊檔案產生時間 89 5.3.2 不同客戶端平台之多媒體處理效能 90 第6章 結論與未來展望 94 6.1 結論 94 6.2 未來展望 95 參考文獻 97

    [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.

    下載圖示 校內:2014-09-07公開
    校外:2014-09-07公開
    QR CODE