一、webrtc的支持范圍:
1.對官方給出的范圍進(jìn)行了測試:(不排除demo代碼有問題)
Chrome 34+ √
Chrome for Android ×
Firefox √
Native java Object-C 無條件,未測試
對于pc的版本window or mac 和 linux 都進(jìn)行了以上測試,andriod機(jī)測試了小米和華為p8,拉流無聲音,黑屏
2.瀏覽器的支持:
- 1.audio和video標(biāo)簽,并且數(shù)據(jù)流是可傳輸?shù)?/li>

1.png
- 2.js的api支持,底層接口需要有RTCPeerConnection,RTCDataChannel,MediaStream(aka getUserMedia)

2.png
下面是兩個例子:
二、webrtc現(xiàn)在可以做什么?
1.視頻的采集

視頻采集.png
2.視頻錄制(采集端流錄制)
https://simpl.info/mediarecorder/
3.照相

照相.png
4.加濾鏡

濾鏡.png
5.實現(xiàn)00熱愛的自拍,人臉識別
https://www.auduno.com/clmtrackr/examples/facedeform.html

人臉識別.png
6.類似qq截圖的桌面截圖
這個只有代碼,需要接入,尚未嘗試
https://github.com/niklasenbom/RecordingApp
7.音頻混合,類似dj什么的,英文是audio room 網(wǎng)上例子很多,但是我玩不轉(zhuǎn),需要人給普及一下音樂知識
8.錄音

錄音.png
9.聊天
例子太多了,不一一列舉了

10.png
10.游戲
https://www.cubeslam.com/podjhc
11.類似百度云的文件分享
分享一個文件給好友,這個場景可以和云盤結(jié)合起來,擴(kuò)大信息傳播范圍
三、集成了webrtc的第三方庫,可以提供哪些服務(wù)?
基礎(chǔ)的視頻服務(wù)
1對1視頻:
https://123.56.176.151:3001/ 兩個人都加入一個房間id中即可
1對多視頻:
https://123.56.176.151:3001/broadcast 主播,只能一個
https://123.56.176.151:3001/audience 觀眾,可以多個
視頻支持:15fps和30fps兩種
清晰度支持:
‘120p_1’ : 160x120, 15fps, 80kbps
‘240p_1’ : 320x240, 15fps, 200kbps
‘480p_1’ : 640x480, 15fps, 500kbps (default)
‘480p_2’ : 640x480, 30fps, 1Mbps
‘720p_1’ : 1280x720, 15fps, 1Mbps
‘720p_2’ : 1280x720, 30fps, 2Mbps
‘1080p_1’ : 1920x1080, 15fps, 1.5Mbps
‘1080p_2’ : 1920x1080, 30fps, 3Mbps
現(xiàn)有限制:
- 1.只有1v1和廣播兩種,不存在1vN多人會話模式;
- 2.瀏覽器可用范圍依賴于webrtc基本條件;
- 3.能與全平臺的Agora Native SDK(1.8版或更高版本)進(jìn)行互通,目前僅支持直播場景;
- 4.僅支持到1080p;
- 5.功能不如Agora Native SDK充分,質(zhì)量提示、測試服務(wù)、通話服務(wù)評分、錄音和日志記錄;
Electron中集成測試:通過

混合開發(fā).png
備注:沒用我們自己的例子,是因為electron中的https需要正式的簽名證書
總結(jié):
- 1、webrtc的demo非常多,應(yīng)用處于增長期;
- 2、基于webrtc的第三方庫可以選擇的不多;
- 3、接入成本低,基于瀏覽器的代碼要更規(guī)范且可控;(eg.瀏覽器很少會崩潰)
- 4、webrtc在移動端的還是需要native支持;