原创 Qt音視頻開發13-視頻解碼線程基類的設計

一、前言 這個解碼線程基類的設計,是到目前爲止個人覺得自己設計的最好的基類之一,當然也不是一開始就知道這樣設計,沒有個三五年的摸爬滾打以及社會的毒打,是想不到要這樣設計的,一方面是要不斷提煉各種視頻類視頻組件的共性作爲局部變量,比如通用的參

原创 Qt音視頻開發11-通用監控佈局控件(開源)

一、前言 自從做監控系統以來,就一直有打算將這個功能獨立出來一個類,這樣的話很多系統用到此類佈局切換,通用這個類就行,而且後期此佈局會增加其他異形佈局,甚至按照16:9之類的比例生成佈局,之前此功能直接寫在功能界面UI類中,不方便拓展,好多

原创 Qt音視頻開發10-ffmpeg內核硬解碼

一、前言 爲了極大的降低CPU的佔用,實現硬解碼(也叫硬件加速)非常有必要,一個視頻文件或者一路視頻流還好,如果增加到64路視頻流呢,如果是4K、8K這種高分辨率的視頻呢,必須安裝上硬解碼纔是上上策。舉個例子在電腦上播放4K以上的H265這

原创 Qt音視頻開發09-ffmpeg內核音視頻同步

一、前言 用ffmpeg來做音視頻同步,個人認爲這個是ffmpeg基礎處理中最難的一個,無數人就卡在這裏,怎麼也不準,本人也是嘗試過網上各種demo,基本上都是渣渣,要麼僅僅支持極其少量的視頻文件比如收到的數據包是一幀視頻一幀音頻的,要麼根

原创 Qt音視頻開發07-合併音視頻文件

一、前言 之前已經把音視頻分開存儲了對應的文件,因爲這個需求特別少,當然確實有部分用戶是需要把音視頻分開存儲,但是畢竟是很少數,絕大部分的用戶都是音視頻合併到一個MP4文件,所以如果要合併到一個文件,現在已經存儲成了兩個文件,最簡單的做法就

原创 Qt編寫雷達模擬仿真工具(模擬點/殲擊機/航母/發射導彈/爆炸效果/激光雷達等)

一、簡單介紹 雷達模擬仿真工具,主要通過模擬點模擬相關物體,方位、航向角、距離、速度,並且顯示相關詳情信息可建立跟蹤線建立與模擬點聯繫。可自定義更換模擬點背景達到更加逼真效果,如殲擊機,航母發射導彈效果,指揮所被打擊爆炸效果。在距離上可自由

原创 Qt音視頻開發06-海康sdk內核linux客戶端

一、前言 海康sdk的示例在官方是提供了的,但是無論UI還是交互簡直是宇宙無敵的垃圾,猜測應該是初學者編寫的,估計練手用的,所以老早就想把這個linux支持集成到自己的示例中,既然已經支持了windows的版本,對於linux版本只需要引入

原创 Qt開發經驗小技巧256-260

默認QDialog窗體右下角有個拉伸尺寸的手柄,通過它可以對窗體拉伸大小,這個控件很容易被遺忘但是又經常可以看到,他的名字叫QSizeGrip,可以通過setSizeGripEnabled來啓用或者禁用,也可以用qss對外觀進行設置。

原创 Qt編寫視頻監控系統(移動偵測/遮擋報警/區域入侵/越界偵測/報警輸入輸出等)

一、前言 得益於標準的onvif協議,各大監控廠商的設備都會支持onvif協議,在onvif協議中就包括了事件訂閱機制,通過這個機制,可以拿到各種報警事件,比如移動偵測/遮擋報警/區域入侵/越界偵測/報警輸入輸出等,這樣就不用自己去搞算法識

原创 Qt編寫視頻播放器(支持pbonon/qmediaplayer/ffmpeg/vlc/mpv等多種內核)

一、前言 花了一年多的時間,終於把這個超級播放器做成了自己想要的架構,用戶的需求是一方面,自己架構方面的提升也是一方面,最主要是將界面和解碼解耦了,這樣才能動態的掛載不同的解碼內核到不同的視頻監控窗體,多對多關係,而且解耦和才能方便的實現共

原创 Qt音視頻開發05-保存視頻文件(yuv/h264/mp4)

一、前言 和音頻存儲類似,視頻的存儲也對應三種格式,視頻最原始的數據是yuv(音頻對應pcm),視頻壓縮後的數據是h264(音頻對應aac),由於很多播放器或者早期的播放器不支持直接播放h264文件,所以需要用編碼器編碼成mp4格式,這塊就

原创 Qt音視頻開發04-保存音頻文件(pcm/wav/aac)

一、前言 音頻的保存相對來說比視頻的要簡單,具有通用性,不需要經過ffmpeg的編碼,ffmpeg解碼出來後一般會轉換成pcm原始的數據用來播放,所以對數據直接寫文件即可,但是這種格式是無法用播放器直接播放的,因爲採樣率、通道等參數未知,除

原创 Qt視頻監控系統一個詭異問題的解決思路(做夢都想不到)

一、前言 由於Qt版本衆多,幾百個版本之間存在不兼容的情況,爲此如果要兼容很多版本,沒有取巧的辦法和特殊的捷徑,必須自己親自安裝各個版本編譯運行並測試,大問題一般不會有,除非缺少模塊,小問題還是不斷有的,很多時候可能是上一個版本還是正常的,

原创 Qt編寫視頻監控系統67-錄像計劃(支持64通道7*24錄像設置)

一、前言 錄像計劃這個功能一直掛了很久,之前做的也都有保存視頻文件功能,其中還分了三大種,第一種是手動開啓和停止錄像;第二種是按照指定時長比如10s保存文件;第三種是定時30分鐘一個文件一直保存。這三種功能直接寫在對應的視頻解碼線程中,這次

原创 Qt編寫物聯網管理平臺(支持win/linux/mac/嵌入式linux/modbus等)

一、前言 這個物聯網綜合管理平臺前後迭代了五年,一點一滴慢慢積累起來,從最開始的只有modbus串口協議解析以及簡單的表格顯示數據,慢慢的逐漸增加了tcp_rtu支持,用戶管理模塊,地圖監控模塊,而後爲了拓展性又做了雲端數據同步,網絡數據轉