原创 Resip學習筆記(sip服務器對初次registration信令回覆407而不是401)

首先我們討論一下sip服務器回覆401與407有什麼區別,看了一下rfc3261,發現沒有明確的說明,只是說401是UAS和registar回覆的應答,而407是proxy回覆的應答。但是很多時候proxy就是UAS,在GB28181裏面

原创 Windows平臺下reSIProcate項目使用

首先從官網上下載源碼,進行編譯,中途需要更改部分錯誤,更改後可以編譯運行的項目地址在:       疑問: 1、爲什麼不需要BerkelyDB就能創建*.db文件? 因爲   注意事項: 1、在repro.exe的當前目錄下必須存在rep

原创 git commit 時禁止將LF轉換爲CRLF

執行命令:git config --global core.autocrlf false

原创 Win10平臺下編譯ffmpeg4.0.2

背景 瑞陽科技工作室有一個ocx產品,這個產品的功能是使用GB28181信令從GB28181平臺中獲取視頻碼流,然後將視頻渲染在Windows桌面上,但是近期由於產品升級我們將客戶機的電腦全部升級爲windows10,發現一個問題: 之前

原创 gb28181sdk(廣告)

前言 因爲從事視頻監控行業多年,積累了一些經驗,同時想找點工資之外的其他收入,以及最終實現財富自由的總目標,我們創辦了自己的工作室——"瑞陽科技工作室",我們利用自己的時間做了一套gb28181sdk,有需要的同志可以聯繫。 微信:hei

原创 STL迭代器失效問題

首先通過一個例子看看迭代器失效的原因 #include <iostream> #include <map> using namespace std; int main() { map<int, char*> tmp_map;

原创 sip消息的必備頭域

所有的sip消息必須具備的6個頭域是:to, from, cseq, call-id, max-forwards and via.(詳見rfc3261,8.1.1) UAC創建的有效的sip消息必須、至少包含to, from, cseq

原创 Resip之h_ProxyAuthorizations

閱讀過Resip源碼的程序員應該都被h_ProxyAuthorizations對象疑惑過,因爲通過全局搜索都搜索不到該對象在哪裏定義。實際上該對象是通過宏定義的,定義發生在Headers.cxx文件中。且看如下整理: #define d

原创 Resip學習筆記(register)

由於工作需要最近研發GB28181服務器,對比了幾個協議棧後最後決定使用resip協議棧。 由於國標規定註冊信令需要完成鑑權認證功能,resip要求鑑權需要繼承ServerAuthManager並實現對應功能,並且在初始化ServerAu

原创 MFC之DrawText

使用MFC往對話框中顯示文字,方法有很多,可以根據我們自己不同的需求選擇不同的方式,我的需求是這樣的:我想做一個視頻監控的客戶端,這個客戶端可以同時顯示多個視頻監控畫面,如果沒有監控視頻的時候就在畫面中央顯示"無視頻"。基於這個需求我選擇

原创 SMPTE與NTP

首先查看rfc2326的定義: 翻譯: SMPTE相對時間戳 一個SMPTE相對錶達相對於視頻切片的開始時間的時間戳,相對時間戳表示爲SMPTE時碼幀級訪問精度,時碼的格式爲:時:分:秒:幀:子幀,以視頻切片開始時間作爲源。默認的sm

原创 ReSip學習筆記(Handle)

在resip協議棧中使用了類似於MFC的句柄,句柄的實現爲Handle,該類是一個模板類,實現了指針運算符"->"與"*"運算符,定義句柄的方式如下: typedef Handle<AppDialogSet> AppDialogSetHa

原创 c++多線程cpu佔用率過高解決之道

多線程併發在我們日常的工作中佔有相當的需求比例,但是多線程程序很容易造成CPU使用率過高的問題,問題的原因在於我們一般的線程函數是用來處理一些簡單的、需要循環處理的事情,例如一般情況下,在線程函數中我們常常使用下面的邏輯代碼 while

原创 Windows平臺調用系統API渲染視頻的3中方法

// GDI //讀取文件 CFile file("D:\\1.bmp", CFile::modeRead); char* bmpbuf = new char[file.GetLength() + 1]; file.Read(bmpbu

原创 Windows編程之:Error C2375 'gethostbyname': redefinition; 解決辦法

使用Windows系統編程的時候,很多人都會遇到這樣的問題,我們都是使用了系統的頭文件,爲什麼還會報這麼多錯誤,沒錯,微軟就是這麼不給力^_^。 說說這個問題的原因吧,造成這個問題是我們我們使用了winsock2.h,同時也使用了wins