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