原创 Qt/C++音視頻開發71-指定mjpeg/h264格式採集本地攝像頭/存儲文件到mp4/設備推流/採集推流

一、前言 用ffmpeg採集本地攝像頭,如果不指定格式的話,默認小分辨率比如640x480使用rawvideo格式,大分辨率比如1280x720使用mjpeg格式,當然前提是這個攝像頭設備要支持這些格式。目前市面上有一些廠家做的本地設備支持

原创 Qt程序員必看/關於Qt收費的官方答覆

一、答覆說明 Qt軟件從誕生之日就是GPL/LGPL開源授權和商業授權並存的,開源不代表免費而是爲了共享。關於您的問題,我做大致的回覆。 Qt商用版本的模塊是否都是LGPL協議,所有模塊是否存在GPL這種要求強制開源的協議? 如果購買

原创 這可能是國內Qt/C++界最受歡迎開源項目之一/5.8Kstar/持續迭代更新

一、前言 本項目大概在2020年開始的,大概在2022年重寫了一遍,主要是分門別類存放。本項目主要是QWidget編寫的一些開源的demo,支持Qt4、Qt5、Qt6,支持任意系統,預計會有100多個,一直持續更新完善,代碼簡潔易懂註釋詳細

原创 Qt/C++通用跨平臺Onvif工具/支持海康大華宇視華爲天地偉業等/雲臺控制/預置位管理/工程調試利器

一、前言 在安防視頻監控行業,Onvif作爲國際標準,幾乎主要的廠商都支持,不僅包含了國內的廠商,也包括主要的國際廠商,由於有了這個標準的存在,使得不同設備不同安防平臺之間,能夠接入各個廠家的硬件設備,互通有無,你中有我我中有你,實現良性競

原创 Qt/C++監控推流設備推流/延遲極低/實時性極高/rtsp/rtmp推流/hls/flv/webrtc拉流/調整分辨率降低帶寬

一、前言 算下來這個推流的項目作品寫了有四年多了,最初第一個版本只有文件點播的功能,用的純QTcpSocket通信實現,屬於比較簡單的功能。由於文件點播只支持文件形式的推流,不支持網絡流或者本地設備採集,所以迫切需要打破這個瓶頸,而後加入核

原创 Qt/C++音視頻開發67-保存裸流加入sps/pps信息/支持264/265裸流/轉碼保存/拉流推流

一、前言 音視頻組件除了支持保存MP4文件外,同時還支持保存裸流即264/265文件,以及解碼後最原始的yuv文件。在實際使用過程中,會發現部分視頻文件保存的裸流文件,並不能直接用播放器播放,查閱資料得知原來是缺少sps/pps信息,監控行

原创 Qt/C++音視頻開發66-音頻變速不變調/重採樣/提高音量/變速變調/倍速播放/sonic庫使用

一、前言 之前在做倍速這個功能的時候,發現快速播放會有滴滴滴的破音出現,正常1倍速沒有這個問題,儘管這個破音間隔很短,要放大音量才能聽到,但是總歸是不完美的,後面發現,通過修改qaudiooutput的採樣率,可以規避這個問題,破音不在出現

原创 Qt/C++音視頻開發64-共享解碼線程/重複利用解碼/極低CPU佔用/畫面同步/進度同步

一、前言 共享解碼線程主要是爲了降低CPU佔用,重複利用解碼,畢竟在一個監控系統中,很可能打開了同一個地址,需要在多個不同的窗口中播放,形成多屏渲染的效果,做到真正的完全的畫面同步,在主解碼線程中切換了播放進度,所有關聯的同一個解碼線程的播

原创 Qt編寫手機端視頻播放器/推流工具/Onvif工具

一、視頻播放器 同時支持多種解碼內核,包括qmedia內核(Qt4/Qt5/Qt6)、ffmpeg內核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6)、vlc內核(vlc2/vlc3)、mpv內核(mpv

原创 Qt編寫linux系統onvif工具(支持預覽/雲臺/預置位/錄像等)

一、功能特點 廣播搜索設備,支持IPC和NVR,依次返回。 可選擇不同的網卡IP進行對應網段設備的搜索。 依次獲取Onvif地址、Media地址、Profile文件、Rtsp地址。 可對指定的Profile獲取視頻流Rtsp地址,比如主碼

原创 Qt採集本地攝像頭推流成rtsp/rtmp(可網頁播放/支持嵌入式linux)

一、功能特點 支持各種本地視頻文件和網絡視頻文件。 支持各種網絡視頻流,網絡攝像頭,協議包括rtsp、rtmp、http。 支持將本地攝像頭設備推流,可指定分辨率和幀率等。 支持將本地桌面推流,可指定屏幕區域和幀率等。 自動啓動流媒體服務

原创 Qt/C++自定義界面大全/20套精美皮膚/26套精美UI界面/一鍵換膚/自定義顏色/各種導航界面

一、前言 這個系列對應自定義控件大全,一個專注於控件的編寫,一個專注於UI界面的編寫,程序員有兩大軟肋,一個是忌諱別人說自己的程序很爛很多bug,一個就是不擅長UI,基本上配色就直接rgb,對於第一點,只要放鬆心態,直面自己的不足,不斷改進

原创 Qt/C++中英輸入法/嵌入式輸入法/小數字面板/簡繁切換/特殊字符/支持Qt456

一、前言 在嵌入式板子上由於沒有系統層面的輸入法支持,所以都繞不開一個問題,那就是在需要輸入的UI軟件中,必須提供一個輸入法來進行輸入,大概從Qt5.7開始官方提供了輸入法的源碼,作爲插件的形式加入到Qt中,這裏需要特別提示的是,該源碼是g

原创 Qt/C++編寫視頻監控系統83-自定義懸浮條信息

一、前言 一般視頻控件上會給出個懸浮條,這個懸浮條用於顯示分辨率或者一些用戶期望看到的信息,一般常用的信息除了分辨率以外,還有幀率、封裝格式、視頻解碼器名稱、音頻解碼器名稱、實時碼率等,由於實際的場景不一樣,用戶希望能過自定義勾選開啓哪些信

原创 Qt/C++音視頻開發63-設置視頻旋轉角度/支持0-90-180-270度旋轉/自定義旋轉角度

一、前言 設置旋轉角度,相對來說是一個比較小衆的需求,如果視頻本身帶了旋轉角度,則解碼播放的時候本身就會旋轉到對應的角度顯示,比如手機上拍攝的視頻一般是旋轉了90度的,如果該視頻文件放到電腦上打開,一些早期的播放器可能播放的時候是躺着的,因