原创 iOS ARKit推流到WebRTC
背景 直播SDK接入iOS ARKit。 WebRTC數據傳入 創建PeerConnection的時候需要創建一個VideoTrackSourceInterface對象,該對象可以作爲外部視頻數據傳入WebRTC的
原创 WebRTC Android端軟件/硬件編解碼的策略
以編碼策略爲例,解碼的策略一樣。 1.編碼硬件加速全局開關 首先WebRTC的接口可以設置是否支持硬件加速,如果App設置爲支持的話,將使用基於MediaCodec的編碼器工廠以及對應的硬件編碼器,否則將使用內置的軟件編碼器
原创 WebRTC的丟包計算方法
背景 目前WebRTC的版本主要還是基於GCC的擁塞控制,發送端需要根據丟包率控制發送碼率,而丟包率是在接收端計算並通過RR(Receiver Report RTCP)包通知發送端。 版本 66 問題
原创 WebRTC的NACK和RTX簡述
背景 在丟包 10%下測試WebRTC,發現丟包導致的卡頓,需要一些開啓一些機制來保證丟包重傳。 摘要 簡述WebRTC中NACK、RTX的功能和聯繫。 正文 NACK、RTX是WebRTC裏丟包重傳策略,兩個策略之間有一定的聯繫。 NA
原创 WebRTC+libwebsockets+Janus的秒開實踐
背景 客戶端SDK集成了WebRTC和libwebsockets,服務端使用了Janus,需要支持拉流秒開。 關於WebSocket Janus作爲SFU,使用WebSocket協議與客戶端通信。客戶端在挑選開源庫時其實沒有太
原创 WebRTC的SPS、PPS丟包導致的卡頓
背景 在弱網環境下如果丟了SPS、PPS,會發生較長時間的卡頓。 服務端 Janus 版本 66 詳述 在視頻通話時,WebRTC發送端發送的第一個RTP包只包含SPS、PPS,第二個包是IDR幀,接收端收到後會把SPS、PP
原创 WebRTC的QP、分辨率自動調整
摘要 描述WebRTC在編碼端分辨率自動調整的原因,以及關閉分辨率自動調整策略的方法。版本 主要針對57版本,同時也查看了65版本的代碼,代碼結構有所改變,但是邏輯不變。問題 最近把SDK集成到OBS,方便客戶端合流。這
原创 WebRTC Windows版編譯(支持H264+OpenSSL)
摘要 本文介紹了在Windows下編譯WebRTC的方法,WebRTC默認支持VP8、VP9(谷歌自己的編碼)和BoringSSL(谷歌的OpenSSL分支,主要修復一些OpenSSL主線的漏洞),本文將介紹在Windows下讓We
原创 opencv的單應矩陣相機標定
給定同一相機在不同角度拍攝的不同照片,如何標定計算機的內參(焦距、主點)、外參(主要是旋轉矩陣)? opencv的圖片拼接demo stitching_detailed中有示例 主要過程: 1.surf /orb算法查找兩個圖片的特徵點;
原创 IOS下實現高性能畫板橡皮擦的辦法
摘要 IOS下使用CAShapeLayer+UIBezierPath實現互動畫板時橡皮擦的實現方式。 背景 要在IOS端做一個在線教育DEMO,集成音視頻互動、PPT白板互動、聊天等功能。 畫板實現 IOS畫板有很多實現,主要有 Draw
原创 DirectVobSub(VsFilter)的基本原理和實現實現
VsFilter是一個字幕疊加的庫,目前由MPC-HC維護,其最新版本爲2.41,本文即基於此版本。從實現層面上來說,其內部是一個DirectShow的Transform Filter,負責將字幕文件中的字幕轉換成bitmap併疊加在從輸
原创 openssl windows自動編譯+靜態庫符號缺失問題(/Fd選項)
摘要: 本文描述使用bat腳本自動編譯openssl1.0.2j的過程,並解釋了使用openssl靜態庫時可能出現的鏈接告警(warning LNK4099: PDB 'lib.pdb' was not found),原因是其符號文
原创 在客戶端程序中使用OpenSSL來實現HTTPS在證書認證上的一些分析
在客戶端程序中使用OpenSSL來實現HTTPS在證書認證上的一些分析 ssl握手一般流程: http://blog.csdn.net/wzsy/article/details/38332819 通過wireshark抓包,可以確認一
原创 opencv warp(扭曲)球面投影的原理
關於座標系變換,可以參考: http://blog.csdn.net/wangxiaokun671903/article/details/37966891 在opencv的全景視頻拼接demo stitching_detailed中,用
原创 C調用LUA各種方式的性能對比
測試環境 i5-3470 @ 3.20G 3.70G,Windows,lua5.3,程序運行在單核單線程上。 Lua腳本 function lua_callback() end function reg() set_callback(l