原创 live555傳輸實時h264視頻流和mp3音頻流

主要是利用live555的rtsp服務器發送實時視頻和音頻流,並擴大視頻buffer的容量來防止視頻幀較大時出現數據丟失的問題。 h264的實時視頻流 live555的h264視頻流是參考https://blog.csdn.net/cao

原创 QML鍵值對(類似QMap)

需要在qml裏使用像QMap這樣的容器,本來想用js裏的Map對象,發現qml沒有這個類型。 後面使用了下面的方式來實現: //初始化 var taskMap = {} // var taskMap = {0:'a',1:'b'} /

原创 Qt兩種線程方式的實現與優缺點對比(及信號槽連接方式)

Qt的線程實現主要兩種方式:子類化QThread和對象moveToThread。 子類化QThread 實現方法:   繼承QThread   重寫run   其它線程裏使用start函數來啓動此線程。 缺點 線程中的對象必須在run函數

原创 live555的rtsp客戶端testRTSPClient代碼分析

在做rtsp流媒體傳輸過程,所以去了解了live555的客戶端demo,testRTSPClient。 爲了解testRTSPClient,需要大致清楚rtsp的協議,配合抓包知道RTSP的流程,便於我們清晰的瞭解testRTSPClie

原创 改文件導致 could not open session

修改/etc/security/limits.conf文件 root soft nproc unlimited root hard nproc unlimited root soft nofile unlimited ro

原创 pyinstaller打包出錯 numpy.core.multiarray failed to import

       工程使用pyinstaller3.5打包,工程使用到了tensorflow2.0,opencv-contrib-python 4.1,numpy1.6,打包後運行exe提示與numpy相關的錯誤:   File "d:\p

原创 使用zinnia庫進行中文手寫識別

        研究手寫識別的時候看到了zinnia,就進行了測試,存在問題是zinnia書寫依賴筆畫順序,而且沒有找到更多的可以用於訓練的數據。 zinnia介紹    zinnia是一個基於svm的開源的手寫識別庫。zinnia簡單

原创 github上傳大於100M的單個大文件

        git push的時候,當單文件大於50M會出現警告, 單文件大於100M會出現錯誤,導致push失敗。        大文件需要單獨的上傳,所以先對小文件進行push。但如果此時已經commit了大文件,則需要把這些超過

原创 使用opencv實現基於Haar特徵的人臉檢測

               此文章主要是學習的記錄。使用opencv的版本是 3.4.6。實現了圖片的人臉檢測及人的眼睛、鼻子和嘴巴的檢測。裏面使用的窗口顯示相關的代碼都是opencv的函數。   人臉檢測         openCV

原创 windows服務程序啓動外部exe程序

       目的是service中檢查某個exe是否運行了,沒有則啓動程序。        啓動的程序有界面。網上不少是使用ShellExecute來實現的,發現有問題,在win7下實現之後,service啓動該程序時會出現一個提示,點

原创 repaint與update的區別

repaint會立刻調用paintEvent重繪,而update是把繪製事件加入主事件循環。   Qt文檔: [slot] void QWidget::repaint() Repaints the widget directly by

原创 do{}while(0)在宏定義中的作用和消除goto語句

目錄 宏定義中使用do{}while(0)的好處 do...while(0)消除goto語句 宏定義中使用do{}while(0)的好處 do{}while(0)的格式: #define MACRO_NAME(para) do{macr

原创 C++的volatile關鍵字的作用以及常見的誤解

  近期看到C++標準中對volatile關鍵字的定義,發現和java的volatile關鍵字完全不一樣,C++的volatile對併發編程基本沒有幫助。網上也看到很多關於volatile的誤解,於是決定寫這篇文章詳細解釋一下volati

原创 Qt的TCP粘包分包

          粘包只可能出現在流傳輸中,TCP是基於流傳輸的,而UDP是不會出現粘包,因爲UDP是基於報文的,也就是說UDP發送端調用幾次write,接收端必須調用相同次數的read讀完,每次最多隻能讀取一個報文,報文與報文是不會合

原创 Qt編譯debug和release版本--CONFIG(debug,debug|release)

  在pro文件裏添加: INCLUDEPATH += depend/opencv INCLUDEPATH += depend/opencv2 debug { LIBS += -lopencv_core2413d } release