| 5 | 1/1 | 返回列表 |
| 查看: 2060 | 回復: 8 | |||
| 【獎勵】 本帖被評價2次,作者zyj8119增加金幣 1.4 個 | |||
| 當前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | |||
[資源]
【轉(zhuǎn)帖】用Delphi開發(fā)視頻聊天軟件 已有1人參與
|
|||
|
一、引言 我們知道視頻聊天軟件的關鍵技術在于采集視頻,并實時傳輸給聊天軟件在線的人。對于視頻的采集,這里采用微軟公司的關于數(shù)字視頻的一個軟件包VFW(Video for Windows)。相信很多人對它都很熟習,VFW能使應用程序通過數(shù)字化設備從傳統(tǒng)的模擬視頻源得到數(shù)字化的視頻剪輯,VFW的一個關鍵思想是播放時不需要專用硬件。為了解決數(shù)字視頻數(shù)據(jù)量大的問題,需要對數(shù)據(jù)進行壓縮,而VFW引進了AVI的文件標準。該標準未規(guī)定如何對視頻進行捕捉、壓縮及播放,僅規(guī)定視頻和音頻該如何存儲在硬盤上及在AVI文件中交替存儲視頻幀和與之相匹配的音頻數(shù)據(jù)。通過VFW,開發(fā)人員通過發(fā)送消息或設置屬性來捕捉、播放和編輯視頻剪輯。當用戶在安裝VFW時,安裝程序會自動地安裝配置視頻所需要的組件,如設備驅(qū)動程序、視頻壓縮程序等。VFW主要由6個模塊組成。VFW功能模塊: AVICAP.DLL 包含執(zhí)行視頻捕捉的函數(shù),它給AVI文件的I/O處理和視頻、音頻設備驅(qū)動程序提供一個高級接口 MSVIDEO.DLL 包含一套特殊的DrawDib函數(shù),用來處理屏幕上的視頻操作 MCIAVI.DRV 包括對VFW的MCI命令解釋器的驅(qū)動程序 AVIFILE.DLL 包含由標準多媒體I/O(mmio)函數(shù)提供的更高的命令,用來訪問.AVI文件 ICM 壓縮管理器,用于管理的視頻壓縮/解壓縮的編譯碼器(Codec) ACM 音頻壓縮管理器,提供與ICM相似的服務,適用于波形音頻 對于視頻的傳輸,我們使用UDP來傳,因為UDP傳輸速度快,TCP是面向連接的,建立連接時雙方需經(jīng)過三次握手,數(shù)據(jù)傳輸可靠,F(xiàn)TP、telnet等就是基于TCP的,UDP是面向非連接的,發(fā)出信息不需對方確認,但這樣速度比TCP快,但有可能丟失數(shù)據(jù),象SMTP、tftp等就是基于UDP的。另外UDP還支持廣播,UDP廣播兩種,一種是directed broadcast,比如你的網(wǎng)段是192.168.0.X,你就往192.168.0.255發(fā)就可以了。另一種是limited broadcast,廣播地址是255.255.255.255 |
程序語言箱 |
|
二、視頻聊天軟件的開發(fā)步驟 2.1 創(chuàng)建捕捉窗口,采集視頻 在進行視頻捕捉之前必需要先創(chuàng)建一個捕捉窗口,并應以此為基礎進行所有的捕捉及設置操作。捕捉窗口可用AVICap窗口類的"CapCreateCaptureWindow"函數(shù)來創(chuàng)建,其窗口風格可設置為WSCHILD和WS_VISIBLE參數(shù)。 有了捕捉窗口,我們就可以將視頻流和音頻流捕捉到一個AVI文件中;動態(tài)地同視頻和音頻輸入器件連接或斷開;用Overlay或Preview模式對輸入的視頻流進行實時顯示,設置捕捉速率,顯示控制視頻源、視頻格式及視頻壓縮的對話框,創(chuàng)建、保存或載入調(diào)色板,將圖像和相關的調(diào)色板拷貝到剪貼板,將捕捉的單幀圖像保存到BMP格式文件中。 2.2 捕捉窗口和驅(qū)動程序的關聯(lián) 僅僅一個捕捉窗口是不能工作起來的,它必須要與一個設備相關聯(lián)才能取得視頻信號。用函數(shù)CapDriverConnect可使捕捉窗與其設備驅(qū)動程序相關聯(lián)。 2.3設置視頻設備的屬性 通過設置TcaptureParms結構變量的各個成員變量,可以控制設備的采樣頻率、中斷采樣按鍵、狀態(tài)行為。設置好TcaptureParms結構變量后,可以用函CapCaptureSetSetup使設置生效。之后還可以用CapPreviewScale、CapPreviewRate設置預覽的比例與速度,也可以直接使用設備的默認值。 2.4打開預覽 利用函數(shù)CapOverlay可選擇是否采用疊加模式預覽,以使系統(tǒng)資源占用小,視頻顯示速度加快。然后用CapPreview啟動預覽功能,這時就可以在屏幕上看到來自攝像頭的圖像了。 2.5使用捕捉窗回調(diào)函數(shù) 前的四個步驟就可以建立一個基本的視頻捕捉程序了,如果想自己處理從設備捕捉到的視頻數(shù)據(jù),則要使用捕捉窗回調(diào)函數(shù)來處理,比如一幀一幀地獲得視頻數(shù)據(jù),也可以以流的方式獲得視頻數(shù)據(jù)等等。 2.6傳輸視頻流 使用回調(diào)函數(shù)可以取得第一幀的數(shù)據(jù),我們使用網(wǎng)絡技術將數(shù)據(jù)發(fā)給其它機器,其它機品將接收的數(shù)據(jù)顯示出來。 2.7接收視頻 接收UDP數(shù)據(jù),同時將接收到的數(shù)據(jù)回顯出來,這樣就可以看到遠處傳來的視頻了。 三、用Delphi編寫程序代碼 微軟的VFW SDK只有VC和VB版,并沒有Delphi版,不過在網(wǎng)上可以找到VFW.PAS文件,F(xiàn)W.PAS文件聲明了調(diào)用DLL中的各個函數(shù)和變量。(注:源代碼中提供了VFW.PAS文件) 下面就以Delphi7開發(fā)一個網(wǎng)絡視頻聊天軟件,聊天軟件分兩個程序,一個是視頻采集程序并進行UDP廣播的視頻聊天軟件服務器,另一個是接收UDP廣播程序顯示傳來的視頻數(shù)據(jù)的視頻聊天軟件客戶端。 3.1建立視頻聊天軟件服務器 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 286分人工智能專業(yè)請求調(diào)劑愿意跨考! +3 | lemonzzn 2026-03-17 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 294求調(diào)劑材料與化工專碩 +14 | 陌の森林 2026-03-18 | 14/700 |
|
|
[考研] 324分 085600材料化工求調(diào)劑 +3 | llllkkkhh 2026-03-18 | 3/150 |
|
|
[考研] 一志愿中海洋材料工程專碩330分求調(diào)劑 +7 | 小材化本科 2026-03-18 | 7/350 |
|
|
[考研] 332求調(diào)劑 +3 | ydfyh 2026-03-17 | 3/150 |
|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +3 | 生物工程調(diào)劑 2026-03-17 | 7/350 |
|
|
[考研] 一志愿武理材料305分求調(diào)劑 +5 | 想上岸的鯉魚 2026-03-18 | 6/300 |
|
|
[考研] 085600材料與化工 +5 | 安全上岸! 2026-03-16 | 5/250 |
|
|
[考研] 085601專碩,總分342求調(diào)劑,地區(qū)不限 +5 | share_joy 2026-03-16 | 5/250 |
|
|
[考研] 299求調(diào)劑 +5 | △小透明* 2026-03-17 | 5/250 |
|
|
[考研] 0703化學求調(diào)劑 總分331 +3 | ZY-05 2026-03-13 | 3/150 |
|
|
[考博] 26博士申請 +3 | 1042136743 2026-03-17 | 3/150 |
|
|
[考研] 332求調(diào)劑 +6 | Zz版 2026-03-13 | 6/300 |
|
|
[考研] 290求調(diào)劑 +3 | p asserby. 2026-03-15 | 4/200 |
|
|
[考研] 考研調(diào)劑 +3 | 淇ya_~ 2026-03-17 | 5/250 |
|
|
[考研] [導師推薦]西南科技大學國防/材料導師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|
|
[考研] 070300化學學碩求調(diào)劑 +6 | 太想進步了0608 2026-03-16 | 6/300 |
|
|
[考研] 327求調(diào)劑 +6 | 拾光任染 2026-03-15 | 11/550 |
|
|
[考研] 26考研一志愿中國石油大學(華東)305分求調(diào)劑 +3 | 嘉年新程 2026-03-15 | 3/150 |
|
|
[考研] 材料與化工 323 英一+數(shù)二+物化,一志愿:哈工大 本人本科雙一流 +4 | 自由的_飛翔 2026-03-13 | 5/250 |
|