C#一個IM系統簡單總結

項目背景:html

     工做之餘兼職一家公司(方向是工業4.0)給作IM系統,主要功能包括:文字、 圖片、文件傳輸、遠程協助、視頻語音等等。框架

這些功能都是基於羣會話, 好比工廠操做工人遇到問題,請求遠程專家,這個初級專家不能解決問題,會邀請一個高級專家進來解決。socket

開發過程當中主要遇到的問題是視頻和語音這一塊,像其餘的文字,圖片,文件傳輸等等以前作socket的時候就接觸過,基本不是問題,要注意的是Socket粘包和丟包,遠程協助使用開源免費的C#版本VNC 。工具

視頻和語音以爲有些難 。1、是以前沒有接觸過,2、要同時支持 安卓和蘋果手機。性能


爲了用C#解決這個問題真是費勁心思,若是是其餘語言也許不會這麼折騰,簡單記錄一下。學習

一、網上查找資料找到一個GGTalk 測試

   這個怎麼評價呢,僅僅是作一些臨時項目賺點外快,可使用一下,作成本身的產品或者想學習一下底層不推薦編碼

   GGTalk雖然是開源可是他裏面用到的視頻語音是第三方的傲瑞科技,不開源並且是收費版本。指針

   若是再研究一下傲瑞科技的解碼編碼,用到的是國外開源的。視頻

二、騰訊實時音視頻 TRTC 

   這個和第一個比明顯有優點,畢竟是大公司的出品,並且已經在不少地方運行,可是實際狀況是客戶現場不必定能鏈接外網,測試的時候個別華爲手機兼容不是很好。而且這個也是收費軟件。

三、FFmpeg

    FFmpeg很是強大的功能包括視頻採集、視頻格式轉換、視頻抓圖、視頻加水印,轉換數字音頻、視頻,並能將其轉化爲流的開源項目。C語言開發,免費開源採用LGPL或GPL許可證多媒體視頻處理工具。

強烈推薦FFmpeg

一、免費開源  

二、跨平臺

三、功能強大 

四、性能優異 

5 不少視頻處理軟件在使用 

優勢實在太多,缺點就是須要學習成本。

特別是C#開發人員一開始使用FFmpeg有很多難度,通常用指針比較少,而FFmpeg裏面會經常使用。

下一篇文章簡單總結一下C#與FFmpeg的使用。


如今IM在市場上已經很成熟,爲何還要在搞一個呢?

這個問題剛剛開始我也這樣想,主要目的是和主框架集成。

好比專家發送一個特殊的格式鏈接[參數一,參數2、參數三],設備端打開這個鏈接,就直接跳轉到框架中的功能。

再好比 操做工人在視頻上各類畫標記,在專家端會突出顯示。

因此市場上的拿來就使用不太現實,好比上面2個需求至少UI層須要修改,既然要修改那就 趁這個機會就學習一下FFmpeg的API,

由於功能太強大了,好比後期遇到視頻美化,視頻分割合併、變音,這個FFmpeg都能很好處理。

相關文章
相關標籤/搜索