| 5 | 1/1 | 返回列表 |
| 查看: 2081 | 回復(fù): 8 | |||
| 【獎(jiǎng)勵(lì)】 本帖被評(píng)價(jià)2次,作者zyj8119增加金幣 1.4 個(gè) | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
[資源]
【轉(zhuǎn)帖】用Delphi開發(fā)視頻聊天軟件 已有1人參與
|
|||
|
一、引言 我們知道視頻聊天軟件的關(guān)鍵技術(shù)在于采集視頻,并實(shí)時(shí)傳輸給聊天軟件在線的人。對(duì)于視頻的采集,這里采用微軟公司的關(guān)于數(shù)字視頻的一個(gè)軟件包VFW(Video for Windows)。相信很多人對(duì)它都很熟習(xí),VFW能使應(yīng)用程序通過數(shù)字化設(shè)備從傳統(tǒng)的模擬視頻源得到數(shù)字化的視頻剪輯,VFW的一個(gè)關(guān)鍵思想是播放時(shí)不需要專用硬件。為了解決數(shù)字視頻數(shù)據(jù)量大的問題,需要對(duì)數(shù)據(jù)進(jìn)行壓縮,而VFW引進(jìn)了AVI的文件標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)未規(guī)定如何對(duì)視頻進(jìn)行捕捉、壓縮及播放,僅規(guī)定視頻和音頻該如何存儲(chǔ)在硬盤上及在AVI文件中交替存儲(chǔ)視頻幀和與之相匹配的音頻數(shù)據(jù)。通過VFW,開發(fā)人員通過發(fā)送消息或設(shè)置屬性來捕捉、播放和編輯視頻剪輯。當(dāng)用戶在安裝VFW時(shí),安裝程序會(huì)自動(dòng)地安裝配置視頻所需要的組件,如設(shè)備驅(qū)動(dòng)程序、視頻壓縮程序等。VFW主要由6個(gè)模塊組成。VFW功能模塊: AVICAP.DLL 包含執(zhí)行視頻捕捉的函數(shù),它給AVI文件的I/O處理和視頻、音頻設(shè)備驅(qū)動(dòng)程序提供一個(gè)高級(jí)接口 MSVIDEO.DLL 包含一套特殊的DrawDib函數(shù),用來處理屏幕上的視頻操作 MCIAVI.DRV 包括對(duì)VFW的MCI命令解釋器的驅(qū)動(dòng)程序 AVIFILE.DLL 包含由標(biāo)準(zhǔn)多媒體I/O(mmio)函數(shù)提供的更高的命令,用來訪問.AVI文件 ICM 壓縮管理器,用于管理的視頻壓縮/解壓縮的編譯碼器(Codec) ACM 音頻壓縮管理器,提供與ICM相似的服務(wù),適用于波形音頻 對(duì)于視頻的傳輸,我們使用UDP來傳,因?yàn)閁DP傳輸速度快,TCP是面向連接的,建立連接時(shí)雙方需經(jīng)過三次握手,數(shù)據(jù)傳輸可靠,F(xiàn)TP、telnet等就是基于TCP的,UDP是面向非連接的,發(fā)出信息不需對(duì)方確認(rèn),但這樣速度比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)建捕捉窗口,采集視頻 在進(jìn)行視頻捕捉之前必需要先創(chuàng)建一個(gè)捕捉窗口,并應(yīng)以此為基礎(chǔ)進(jìn)行所有的捕捉及設(shè)置操作。捕捉窗口可用AVICap窗口類的"CapCreateCaptureWindow"函數(shù)來創(chuàng)建,其窗口風(fēng)格可設(shè)置為WSCHILD和WS_VISIBLE參數(shù)。 有了捕捉窗口,我們就可以將視頻流和音頻流捕捉到一個(gè)AVI文件中;動(dòng)態(tài)地同視頻和音頻輸入器件連接或斷開;用Overlay或Preview模式對(duì)輸入的視頻流進(jìn)行實(shí)時(shí)顯示,設(shè)置捕捉速率,顯示控制視頻源、視頻格式及視頻壓縮的對(duì)話框,創(chuàng)建、保存或載入調(diào)色板,將圖像和相關(guān)的調(diào)色板拷貝到剪貼板,將捕捉的單幀圖像保存到BMP格式文件中。 2.2 捕捉窗口和驅(qū)動(dòng)程序的關(guān)聯(lián) 僅僅一個(gè)捕捉窗口是不能工作起來的,它必須要與一個(gè)設(shè)備相關(guān)聯(lián)才能取得視頻信號(hào)。用函數(shù)CapDriverConnect可使捕捉窗與其設(shè)備驅(qū)動(dòng)程序相關(guān)聯(lián)。 2.3設(shè)置視頻設(shè)備的屬性 通過設(shè)置TcaptureParms結(jié)構(gòu)變量的各個(gè)成員變量,可以控制設(shè)備的采樣頻率、中斷采樣按鍵、狀態(tài)行為。設(shè)置好TcaptureParms結(jié)構(gòu)變量后,可以用函CapCaptureSetSetup使設(shè)置生效。之后還可以用CapPreviewScale、CapPreviewRate設(shè)置預(yù)覽的比例與速度,也可以直接使用設(shè)備的默認(rèn)值。 2.4打開預(yù)覽 利用函數(shù)CapOverlay可選擇是否采用疊加模式預(yù)覽,以使系統(tǒng)資源占用小,視頻顯示速度加快。然后用CapPreview啟動(dòng)預(yù)覽功能,這時(shí)就可以在屏幕上看到來自攝像頭的圖像了。 2.5使用捕捉窗回調(diào)函數(shù) 前的四個(gè)步驟就可以建立一個(gè)基本的視頻捕捉程序了,如果想自己處理從設(shè)備捕捉到的視頻數(shù)據(jù),則要使用捕捉窗回調(diào)函數(shù)來處理,比如一幀一幀地獲得視頻數(shù)據(jù),也可以以流的方式獲得視頻數(shù)據(jù)等等。 2.6傳輸視頻流 使用回調(diào)函數(shù)可以取得第一幀的數(shù)據(jù),我們使用網(wǎng)絡(luò)技術(shù)將數(shù)據(jù)發(fā)給其它機(jī)器,其它機(jī)品將接收的數(shù)據(jù)顯示出來。 2.7接收視頻 接收UDP數(shù)據(jù),同時(shí)將接收到的數(shù)據(jù)回顯出來,這樣就可以看到遠(yuǎn)處傳來的視頻了。 三、用Delphi編寫程序代碼 微軟的VFW SDK只有VC和VB版,并沒有Delphi版,不過在網(wǎng)上可以找到VFW.PAS文件,F(xiàn)W.PAS文件聲明了調(diào)用DLL中的各個(gè)函數(shù)和變量。(注:源代碼中提供了VFW.PAS文件) 下面就以Delphi7開發(fā)一個(gè)網(wǎng)絡(luò)視頻聊天軟件,聊天軟件分兩個(gè)程序,一個(gè)是視頻采集程序并進(jìn)行UDP廣播的視頻聊天軟件服務(wù)器,另一個(gè)是接收UDP廣播程序顯示傳來的視頻數(shù)據(jù)的視頻聊天軟件客戶端。 3.1建立視頻聊天軟件服務(wù)器 |
| ☆ 無星級(jí) ★ 一星級(jí) ★★★ 三星級(jí) ★★★★★ 五星級(jí) |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
百度網(wǎng)盤 |
360云盤 |
千易網(wǎng)盤 |
華為網(wǎng)盤
在新窗口頁面中打開自己喜歡的網(wǎng)盤網(wǎng)站,將文件上傳后,然后將下載鏈接復(fù)制到帖子內(nèi)容中就可以了。 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求調(diào)劑 +10 | 張zz111 2026-03-27 | 11/550 |
|
|---|---|---|---|---|
|
[考研] 295求調(diào)劑 +5 | wei-5 2026-03-26 | 5/250 |
|
|
[考研] 材料與化工328分調(diào)劑 +9 | 。,。,。,。i 2026-03-23 | 9/450 |
|
|
[考研] 085600,材料與化工321分求調(diào)劑 +10 | 大饞小子 2026-03-28 | 10/500 |
|
|
[考研] 317分 一志愿南理工材料工程 本科湖工大 求調(diào)劑 +10 | 芋泥小鈴鐺 2026-03-28 | 10/500 |
|
|
[考研] 311求調(diào)劑 +6 | 冬十三 2026-03-24 | 6/300 |
|
|
[考研] 一志愿:西北大學(xué),英一數(shù)一408-284分求調(diào)劑 +4 | 12.27 2026-03-27 | 4/200 |
|
|
[考研] 2026年華南師范大學(xué)歡迎化學(xué),化工,生物,生醫(yī)工等專業(yè)優(yōu)秀學(xué)子加入! +3 | llss0711 2026-03-28 | 6/300 |
|
|
[考研] 356求調(diào)劑 +3 | gysy?s?a 2026-03-28 | 3/150 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研]
|
y7czhao 2026-03-26 | 10/500 |
|
|
[考研] 一志愿南京航空航天大學(xué)材料學(xué)碩求調(diào)劑 +3 | @taotao 2026-03-28 | 3/150 |
|
|
[考研] 安徽大學(xué)專碩生物與醫(yī)藥專業(yè)(086000)324分,英語已過四六級(jí),六級(jí)521,求調(diào)劑 +4 | 美味可樂雞翅 2026-03-26 | 4/200 |
|
|
[考研] 305求調(diào)劑 +5 | 哇盧卡庫 2026-03-26 | 5/250 |
|
|
[考研] 081200-11408-276學(xué)碩求調(diào)劑 +4 | 崔wj 2026-03-26 | 4/200 |
|
|
[考研] 343求調(diào)劑 +4 | 贈(zèng)我一本書 2026-03-23 | 4/200 |
|
|
[考研] 0703化學(xué)求調(diào)劑 +3 | 丹青奶蓋 2026-03-26 | 5/250 |
|
|
[考研] 材料專碩 335 分求調(diào)劑 +4 | 拒絕冷暴力 2026-03-25 | 4/200 |
|
|
[考研] 277分求調(diào)劑,跨調(diào)材料 +3 | 考研調(diào)劑lxh 2026-03-24 | 3/150 |
|
|
[考研] 344求調(diào)劑 +3 | desto 2026-03-24 | 3/150 |
|