日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 基于wince的網絡音視頻通信

          基于wince的網絡音視頻通信

          作者: 時間:2011-01-14 來源:網絡 收藏

          wince網絡音通訊

          本文引用地址:http://yuyingmama.com.cn/article/166249.htm

          wince網絡音視頻通訊


          下位機為 mini2440 ,其操作系統(tǒng)是WINCE 5.0,需要在下位機上插入USB攝像頭(中星微301,驅動為15分鐘限制版),以及插入麥克風耳機;

          上位機為普通的PC,需要插入麥克風耳機;

          上位機和下位機的開發(fā)環(huán)境為Visual Studio 2005。

          接下來,說說這個東東的功能,和工作原理:

          網絡傳輸,首先把mini2440與USB攝像頭連接在一起,通過USB攝像頭捕捉圖像(320 x 240,15fps),然后通過UDP協(xié)議發(fā)送至PC端,在PC屏幕上以15fps的速度顯示。

          網絡傳輸,首先在mini2440和PC上都插入麥克風耳機,兩者都同時錄音,并以G.726編碼,然后把壓縮包通過UDP協(xié)議發(fā)送至對方,而在錄音的同時,也對來自對方的壓縮包用G.726解碼,然后再在耳機播放。

          最后,說說這個版本相對于以前的改進:

          把以前的RTP改為UDP,實踐證明,在這個系統(tǒng)中,用UDP的效率會比RTP好,畢竟不需要用到RTP的流量監(jiān)測等高級功能,僅僅能通信就行了;

          以前版本基于100M網卡,現(xiàn)在支持10M網卡了,在100M網卡的機器上,可以直接把JPEG圖片發(fā)過去,但是,在10M的網卡是,每次數(shù)據(jù)包最大為1440比特,因此要兼容10M網卡,就需要把圖像分割成多個1440大小的數(shù)據(jù)包,分別發(fā)送了。

          網絡音通信

          下面說說關鍵的源代碼:

          以下是WINCE部分的代碼

          #pragma once

          #include “winsock2.h”

          //RTP支持

          #include “。.UDPUDP.h”

          //支持

          #include “WaveIn.h”

          #include “WaveOut.h”

          //G726支持

          #include “g726.h”

          //攝像頭支持

          #include “。videozc030xlib.h”

          #define Video_Width 320 //視頻寬度

          #define Video_Height 240 //視頻長度

          #define AudioData_Size 960 //每塊音頻數(shù)據(jù)包的大小

          #define Compr_AudioData_Size 120 //壓縮后音頻塊的大小

          //音頻輸入輸出變量

          CWaveIn *g_pIn;

          CWaveOut *g_pOut;

          char pin[AudioData_Size],pout[Compr_AudioData_Size];

          char waveout[AudioData_Size];

          //攝像頭輸入變量

          DWORD dwSize;

          DWORD dwJpg;

          DWORD dwRtnSize[2];/* 0 - for bmp, 1 - for jpeg */

          LPBYTE lpFrameBuffer;

          LPBYTE lpJpgBuffer ;

          //控制變量

          bool isCameraEnabled;

          //UDP

          CUDP_CE m_CEUdp;

          class AVClass

          {

          public:

          //=====================================================================

          // 語法格式: void InitAV(CWnd * p)

          // 實現(xiàn)功能: 初始化音頻和視頻,用于錄音、播放音頻,以及播放視頻

          // 參數(shù): p為窗口類指針

          // 返回值: 無

          //=====================================================================

          void InitAV(CWnd * p,int local_port,CString remote_ip,int remote_port)

          {

          //-----------------------初始化UDP-----------------------//

          m_CEUdp.m_OnUdpRecv = OnUdpCERecv;

          DWORD nResult = m_CEUdp.Open(p,local_port,remote_ip,remote_port);

          if (nResult 《=0)

          {

          AfxMessageBox(_T(“打開端口失敗”));

          return;

          }

          //------------------------控制變量-----------------------//

          isCameraEnabled=false;

          //-------------------------視頻--------------------------//

          int i = capInitCamera();

          dwSize = 320 * 240 * 3;

          dwJpg = 40960;

          lpFrameBuffer = (LPBYTE) malloc (dwSize);

          lpJpgBuffer = (LPBYTE) malloc (dwJpg);

          if(i《=0)

          {

          //::MessageBox(NULL, L“Init camera error ”, L“Notice”, 0);

          goto video_error;//出錯,釋放空間

          }


          上一頁 1 2 3 下一頁

          關鍵詞: 音頻 視頻

          評論


          相關推薦

          技術專區(qū)

          關閉