原创 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