國立台灣大學電機工程學系
網路與多媒體實驗

實驗三:影音聊天室

實驗內容

目的

本實驗主要是學習利用攝影機、麥克風來作影像與聲音的即時擷取、傳送和播放。進而瞭解影像擷取、壓縮、繪圖等相關函式庫的使用方法,以及熟悉UDP網路傳送,和相關的Windows Sockets函式庫。

設備

網路與多媒體實驗室將提供下列硬體供同學作實驗使用:

1.個人電腦(附網路卡)
2.數位攝影機(USB Camera)
3.耳機(附麥克風)

軟體部分:

原則上允許同學使用任何視窗程式發展軟體。實驗室另有提供 Microsoft Developer Network (MSDN) Library讓同學使用。

原理

本實驗是利用電腦週邊設備(攝影機、麥克風),來獲得影像和聲音的資訊後,再利用Microsoft所提供的VFW函式庫(Microsoft Video for Windows),來作影像擷取(Video Capture)、影像壓縮(Video Compression Manager),以及影像播放(DrawDib)的功能。聲音部分使用的是Waveform Audio函式庫。

在影像部分,主要是利用Video Capture函式庫擷取影像。攝影機所拍攝到的畫面,事實上是由許多張連續的圖片所構成。每一張圖片,稱為一個frame。每當本機擷取到一個frame之後,便使用Video Compression Manager 函式庫來對這個frame做壓縮,再利用文字聊天室實驗所學的Windows Sockets函式庫,將壓縮後的frame傳輸到遠端電腦上。遠端電腦接收到資訊後,同樣利用Video Compression Manager 函式庫將這一個frame解壓縮,然後利用DrawDib函式庫將影像即時播放在螢幕上。

而聲音部分的步驟也十分類似,不過不進行壓縮、解壓縮的程序。本實驗使用Waveform Audio函式庫擷取一段聲音,然後利用Windows Sockets函式庫將其送出;當收到一段聲音時再利用Waveform Audio函式庫將其播放出來。

影音函式庫簡介

Peer-to-Peer程式架構&程式流程提示


實驗要求

預報

本實驗無須撰寫預報。但請使用Windows中的NetMeeting或MSN視訊軟體,與同組人員相互測試瞭解其功能,體認影音資料的即時傳送、播放及相關功能。

程式

本實驗的程式主要依照下列三部分來做評分。

聲音部分:

影像部分:

  1. 存錄影像。
  2. 壓縮影像。
  3. 傳送影像。
  4. 還原影像。

影像聲音同步部分:

程式的評比(需demo):

結報

每組一份、打字。

結報問題(合寫一份)

在本實驗的過程中,絕大多數的組別都是採取分工的模式,很多同學也遇到了相當多的bug。每位同學請個別說明:

請簡單分析此實驗(簡述你(妳)認為重要的部份)。

請每人附上約半頁的實驗感想與心得(作為日後的建議與修正)。

最後,也是最重要的,你的參考資料為何?如果是前人的作品加以改良?請詳細說明來源(請記得參考不是罪惡,但必須有自己的東西或貢獻)。


參考資料

JAVA版1/JAVA版2
BCB版
C++版1/C++版2

©2010 網路與多媒體實驗室@國立台灣大學
Last Modified by Shih-Lung Chao, 2010/9/7