1. 程式人生 > >手把手教你搭建視訊通訊系統——windows版

手把手教你搭建視訊通訊系統——windows版

前兩天介紹了iOS,今天就和大家說一下windows端如何搭建視訊通訊系統。

一、準備:

1、首先在圖鴨官網:http://tucodec.com 進行註冊,獲得SDK中所需要的APPKey、AppSecret,註冊登入後如下圖所示:


圖1 註冊後獲取AppKey、AppSecret
點選SDK下載按鈕跳轉到下載介面,選擇下載Windows中所需SDK和Demo。


圖2 SDK下載展示
如圖所示我們提供了vs2013版本和vs2015版本的SDK及相應的WinDemo。


圖3 SDK解壓後內容


2、下載visual studio開發工具並安裝,因為vs2013和vs2015自帶的一些庫和編譯選項有些許不同,所以必須選擇與SDK匹配的VS工具進行開發。

3、安裝完成後雙擊開啟圖3中的WinDemo.sln,便可以看到如圖4的工程介面,把生成型別調整為Debug/x86,然後編譯WinDemo專案。


圖4 WinDemo專案截圖


4、在vs中點選“本地偵錯程式”即可執行本demo,main函式的兩個引數已在工程配置選項中賦予,如圖5所示


圖5 專案裡的main引數設定


或者手動將opencv和Tucodec_SDK_Windows的bin目錄下的檔案拷貝到exe所在的目錄。然後在該資料夾下開啟“命令提示符”或者“Windows PowerShell”,在命令列下面賦予WinDemo.exe兩個引數,分別是自己的ID和對方的ID,然後執行即可。如圖6所示


圖6 在命令列中開啟WinDemo.exe,效果和上面一樣


5、SDK相關說明在《Windows端VoIP SDK使用說明》一文,已經做了詳細介紹,本文接下來主要介紹WinDemo的程式碼結構,方便開發者理清開發流程。

二、WinDemo介紹

總的來說,Windows端的音視訊通訊系統主要包括音視訊採集、音視訊播放和VoIP負責的音視訊傳輸三個模組。利用圖鴨科技提供的SDK及由圖鴨科技公司開源的轉發伺服器程式碼(http://www.tucodec.com),開發者可以搭建自己的音視訊通訊伺服器。因此,開發者主要面對的問題就是Windows端的音視訊採集與播放問題,也是本文著重介紹的地方。

1、視訊採集和播放

有經驗的開發者看到壓縮包內的opencv目錄便知道了在本Demo中對視訊的處理藉助了opencv的幫助,其優點是可以非常方便的進行視訊採集和播放,為開發者遮蔽了與Windows硬體互動的諸多繁雜任務。Demo中的CVideoCap和CVideoRender兩個類就是利用了opencv庫進行視訊的採集和渲染。

當然,opencv有一個比較大的缺點兒就是耗費系統資源比較多,如果電腦配置一般的話會發現開啟opencv渲染視訊後電腦的CPU負荷會出現大幅上漲。所以如果想把我們的SDK用於產品研發的話,推薦自己實現客戶端的採集和播放功能,常用的有DirectShow,SDL,DirectX SDK等官方提供的SDK。

2、音訊採集和播放

由於opencv不能完成音訊相關的處理任務,所以Demo中使用了微軟提供的Windows MultiMedia相關API完成音訊採集和渲染功能,詳見Demo中的CAudioCap和CAudioRender兩個類。

音視訊採集與播放的類關係如下圖所示:


圖7 音視訊採集和播放的UML類圖


3、CVoipManager類

這個類封裝了音視訊操作與VoIP之間的互動,是整個Demo的核心部分。其類圖如下所示:


圖8 CVoIPManager類圖


部分方法和屬性介紹:

m_clientNetwork:ClientNetwork例項,負責轉發伺服器的登入

m_voip:TYVoip例項,負責打通資料傳輸

m_voipCallback:TYVoip中的介面實現,是voip的視訊回撥介面,客戶端從這個類中獲得voip傳過來的視訊資料

m_selfID:本地的usrID

m_sessionID:會話ID

m_audioCap,m_audioRender,m_videoCap,m_videoRender:音視訊採集渲染

m_ac,m_ai,m_vc,m_vi:音視訊格式配置

m_nodeList:新增的通訊節點列表

LoginServer:登入轉發伺服器(轉發伺服器需要提前配置好),因為是通過轉發伺服器做資料傳輸或P2P打洞,所以在新增對方為節點的時候要保證兩者都是線上狀態,當然這個在登入模組做了處理,如果對方還沒上線會一直請求下去。

AddNote:新增一個通訊節點

RemoveNote:移除一個通訊節點

StartVoipTransmit:開始音視訊採集和渲染以及傳輸

EndVoipTransmit:結束音視訊採集和渲染以及傳輸

三、效果展示

1、自己登陸ID為1,新增節點為2,但2未上線的情況


可以看到本地視訊迴路已被開啟,控制檯列印資訊主要有:

login success:表示登陸轉發伺服器成功

add node 2:表示新增節點2

get p2p addr of uid:2 fail:是在請求新增2節點,但是2節點還沒有上線

2、本地ID為1,新增節點2,且節點2已上線


usr1本地視窗


usr2視窗

達到上圖所示結果,就完成了Windows端的音視訊通訊。

相關推薦

手把手搭建視訊通訊系統——windows

前兩天介紹了iOS,今天就和大家說一下windows端如何搭建視訊通訊系統。 一、準備: 1、首先在圖鴨官網:http://tucodec.com 進行註冊,獲得SDK中所需要的APPKey、AppSecret,註冊登入後如下圖所示: 圖1 註冊後獲取AppKey、App

手把手搭建SSH框架(Eclipse

原文來自[公眾號【C you again】](https://mp.weixin.qq.com/s/1de6FGkmqTWA4UZJiEFsaA),若需下載完整原始碼,請在公眾號後臺回覆“ssh”。 本期文章詳細講解了SSH(Spring+SpringMVC+Hibernate)框架的搭建過程,語言簡潔、通

手把手搭建一個基於Java的分散式爬蟲系統

在不用爬蟲框架的情況下,我經過多方學習,嘗試實現了一個分散式爬蟲系統,並且可以將資料儲存到不同地方,類似 MySQL、HBase 等。 因為此係統基於面向介面的編碼思想來開發,所以具有一定的擴充套件性,有興趣的朋友直接看一下程式碼,就能理解其設計思想。 雖然程式碼目前

【Kaldi 新手入門】手把手搭建簡易英文數字ASR系統

* 寫作本文的目的:一方面是為了幫助Kaldi的新手更好的入門這個語音識別工具,另一方面是為自己的學習做一個筆記,也方便日後的學習查閱. * Kaldi的下載安裝 備註: 雖然Kaldi可以同時執行在Windows和Linux兩個平臺上,但大多數

手把手搭建基於 MarkDown 的 Wiki 系統

1 準備資源 http 伺服器(應用伺服器也可以,之所以需要應用伺服器,因為 mdwiki 必須放在 http 伺服器下執行。 ) 以上資源,請先自行下載好 O(∩_∩)O~。 2 建立中文環境 mdwiki 基礎包結構: 把專案資料夾

【圖文教程】手把手如何安裝ubuntu(Windows基礎上雙系統

  準備工作:  1.一個格式化後 U盤  2.從官網下載下來ubuntu14.04.1的映象檔案  3.UltraISO最新版本  4.如果想要雙系統。準備一個安裝ubuntu的空盤。大小自己定吧,按自己的需求來。我一般分50G就夠了。安裝過程:開啟後最開始是這樣的然後選擇

手把手搭建Windows環境微信小程式的本地測試伺服器

Mac環境下 問題的提出 Windows環境 方便快捷地搭建小程式的測試伺服器 小程式對於網路請求的URL的特殊要求 不能出現埠號 不能用localhost 必須用https 主要步驟 用json-server搭建簡單地伺服器,搭建出

大數據江湖之即席查詢與分析(下篇)--手把手搭建即席查詢與分析Demo

dmi 安裝centos 用戶 author sla repo 相關 中文 plugin 上篇小弟分享了幾個“即席查詢與分析”的典型案例,引起了不少共鳴,好多小夥伴迫不及待地追問我們:說好的“手把手教你搭建即席查詢與分析Demo”啥時候能出?說到就得做到,差啥不能差

[轉]手把手搭建Hive Web環境

方式 啟動 list apach pre 手動 cli 找不到 interface 了解Hive的都知道Hive有三種使用方式——CLI命令行,HWI(hie web interface)瀏覽器 以及 Thrift客戶端連接方式。 為了體驗

0基礎手把手搭建webpack運行打包項目(未完待續)

蘊含 必須 asc 工具 過程 更多 關系圖 本地服務 spa   這些天在項目之余的時間學習了webpack打包項目的東西,非常榮幸的找到一些大神的文章來學習,死勁嚼了幾天,終於略知一二。在以後的工作上還需繼續學習,下面我將分享我這幾天學到的一點東西,希望能讓我一個還不算

2018年最新手把手搭建中小型互聯網公司後臺服務架構與運維架構

前端 詳細 token 使用詳解 restful jedis 以及 tom mvc 本課程主要是針對如何從無到有搭建中小型互聯網公司後臺服務架構和運維架構的課程,課程所涉及的內容均是當前應用最廣泛的技術和工具。本課程所講解的技術體系已經在多個中小型互聯網公司中實戰運行使用,

centos7手把手搭建zabbix監控

centos7手把手教你搭建zabbixCentos7安裝部署zabbix3.4centos系統版本: 1、安裝前需要先關閉selinux和firewall.1.1[root@zabbix ~]# vi /etc/selinux/config 將SELINUX=enforcing改為SELINUX=disa

手把手搭建一個加密貨幣交易模擬器,不用投錢就能玩

box NPU nec idp reat 監控 最簡 data- 自己 手把手教你搭建一個加密貨幣交易模擬器,不用投錢就能玩 大數據文摘,編譯:汪小七、黃文暢、小魚 我雖然不是交易員,但對加密貨幣的交易非常感興趣。然而,我不會在自己什麽都不清楚的時候就盲目投

手把手搭建HEXO免費博客

默認 鏡像 教程 環境 生成密鑰 文本 註冊 工具 即使 一、環境搭建 node安裝 百度搜索node,進入官網。下載穩定版: 下載好後直接打開安裝 我這裏將其安裝在D盤(可以自己選擇安裝位置) 可以看到安裝包中已經自帶n

手把手部署WEB郵件系統Squirrelmail小松鼠(內附源碼包)

.gz fff usr oss 通訊 mua 文件 ins login 簡介 Web郵件系統指的是提供給用戶發信、收信的網頁操作界面,能夠完成和MUA軟件類似的郵件管理、通訊簿等附加功能,同時Web郵件系統依賴於已有的收信、發信服務器,但不需要用戶預先配置郵箱屬性,因此使用

手把手搭建 Selenuim 自動化環境

提示 for ESS down bmi dem def import docs 看完這篇文章,你將學到如何在 Windows 上搭建基本的 Selenium 自動化環境。 1.本次使用的系統環境是最新的 Windows 10 17134 系統; 2.本次使用的 Python

手把手搭建React Native 開發環境 - ios篇 (React [email&#

由於之前我是h5的,沒接觸過ios和安卓, 也不瞭解xcode配置,所以 建議學reace-native之前還是先去了解一下ios和安卓開發環境搭建等問題。 環境下載及配置 nodejs:https://nodejs.org/en/download/ 設定淘寶映象 $ npm con

手把手搭建 vue 環境

out ash npm ctr ref cli href http 沒有 第一步 node環境安裝 1.1 如果本機沒有安裝node運行環境,請下載node 安裝包進行安裝1.2 如果本機已經安裝node的運行換,請更新至最新的node 版本下載地址:https://no

手把手搭建 Hex0 + GitHub 部落格

1.環境安裝 1.1 Git Windows: https://gitforwindows.org/ 如果是 Mac 電腦的話,請先安裝 Xcode,因為 Xcode 自帶 Git. 1.2 Node.js 下載對應系統的 node 安裝包,一路 next 無腦安裝即

手把手搭建可自動化構建的微服務框架

詳細說明如何從零搭建微服務框架。 本文你將學到什麼? 本文將以原理+實戰的方式,首先對“微服務”相關的概念進行知識點掃盲,然後開始手把手教你搭建這一整套的微服務系統。 這套微服務框架能幹啥? 這套系統搭建完之後,那可就厲害了: 微服務架構你的整個應用程式將會被拆分成一個個功能獨立的子系統,獨立