項目背景: 工作之餘兼職一家公司(方向是工業4.0)給做IM系統,主要功能包括:文字、 圖片、文件傳輸、遠程協助、視頻語音等等。這些功能都是基於群會話, 比如工廠操作工人遇到問題,請求遠程專家,這個初級專家不能解決問題,會邀請一個高級專家進來解決。開發過程中主要遇到的問題是視頻和語音這一塊,像其他的... ...
項目背景:
工作之餘兼職一家公司(方向是工業4.0)給做IM系統,主要功能包括:文字、 圖片、文件傳輸、遠程協助、視頻語音等等。
這些功能都是基於群會話, 比如工廠操作工人遇到問題,請求遠程專家,這個初級專家不能解決問題,會邀請一個高級專家進來解決。
開發過程中主要遇到的問題是視頻和語音這一塊,像其他的文字,圖片,文件傳輸等等之前做socket的時候就接觸過,基本不是問題,要註意的是Socket粘包和丟包,遠程協助使用開源免費的C#版本VNC 。
視頻和語音覺得有些難 。一、是之前沒有接觸過,二、要同時支持 安卓和蘋果手機。
為了用C#解決這個問題真是費勁心思,如果是其他語言也許不會這麼折騰,簡單記錄一下。
1、網上查找資料找到一個GGTalk
這個怎麼評價呢,僅僅是做一些臨時項目賺點外快,可以使用一下,做成自己的產品或者想學習一下底層不推薦。
GGTalk雖然是開源但是他裡面用到的視頻語音是第三方的傲瑞科技,不開源而且是收費版本。
如果再研究一下傲瑞科技的解碼編碼,用到的是國外開源的。
這個和第一個比明顯有優勢,畢竟是大公司的出品,而且已經在很多地方運行,但是實際情況是客戶現場不一定能連接外網,測試的時候個別華為手機相容不是很好。並且這個也是收費軟體。
3、FFmpeg
FFmpeg非常強大的功能包括視頻採集、視頻格式轉換、視頻抓圖、視頻加水印,轉換數字音頻、視頻,並能將其轉化為流的開源項目。C語言開發,免費開源採用LGPL或GPL許可證多媒體視頻處理工具。
強烈推薦FFmpeg
1、免費開源
2、跨平臺
3、功能強大
4、性能優異
5 很多視頻處理軟體在使用
優點實在太多,缺點就是需要學習成本。
特別是C#開發人員一開始使用FFmpeg有不少難度,一般用指針比較少,而FFmpeg裡面會常用。
下一篇文章簡單總結一下C#與FFmpeg的使用。
現在IM在市場上已經很成熟,為什麼還要在搞一個呢?
這個問題剛剛開始我也這樣想,主要目的是和主框架集成。
比如專家發送一個特殊的格式連接[參數一,參數二、參數三],設備端打開這個連接,就直接跳轉到框架中的功能。
再比如 操作工人在視頻上各種畫標記,在專家端會突出顯示。
所以市場上的拿來就使用不太現實,比如上面2個需求至少UI層需要修改,既然要修改那就 趁這個機會就學習一下FFmpeg的API,
因為功能太強大了,比如後期遇到視頻美化,視頻分割合併、變音,這個FFmpeg都能很好處理。