原创 Qt/C++音視頻開發49-多級連保存和推流設計(同時保存到多個文件/推流到多個平臺)

一、前言 近期遇到個用戶需要多級聯的保存和推流,在ffmpegsave多線程保存類中實現這個功能,越簡單越好,就是在推流的同時,能夠開啓自動轉儲功能,一邊推流的同時一邊錄像保存到本地視頻文件。最初設想的一個方案是new兩個ffmpegsav

原创 Qt/C++音視頻開發48-推流到rtsp服務器

一、前言 之前已經打通了rtmp的推流,理論上按照同樣的代碼,只要將rtmp推流地址換成rtsp推流地址,然後格式將flv換成rtsp就行,無奈直接遇到協議不支持的錯誤提示,網上說要換成rtp,換了也沒用,而且打印了ffmpeg庫協議,也是

原创 Qt音視頻開發47-文字和圖片水印(可存儲到MP4中)

一、前言 近期花了兩週時間閉門啃硬骨頭,主要就解決三個問題(音視頻同步存儲和推流、圖片水印並將水印信息存儲到文件或者推流、rtsp推流),這三個問題困擾了很多年,以至於找遍了網絡和翻遍ffplay代碼以及ffmpeg示例的代碼,通過不下於上

原创 Qt/C++音視頻開發46-音視頻同步保存到MP4

一、前言 用ffmpeg單獨做視頻保存不難,單獨做音頻保存也不難,難的是音視頻同步保存到MP4中,重點是音視頻要同步,其實這也不難,只要播放那邊音視頻同步後的數據,寫入到文件即可。最難的是在播放過程中不斷隨機的切換播放進度,而且還會暫停播放

原创 Qt/C++原創項目作品精選(祖傳原創/性能兇殘)

00 前言說明 從事Qt開發十年有餘,一開始是做C#.NET開發的,因爲項目需要,轉行做嵌入式linux開發,在嵌入式linux上做可視化界面開發一般首選Qt,當然現在可選的方案很多比如安卓,但是十多年前那時候板子性能低,安卓在這個上面跑的

原创 Qt/C++編寫超精美自定義控件(歷時9年更新迭代/超202個控件/祖傳原創)

一、前言 無論是哪一門開發框架,如果涉及到UI這塊,肯定需要用到自定義控件,越複雜功能越多的項目,自定義控件的數量就越多,最開始的時候可能每個自定義控件都針對特定的應用場景,甚至裏面帶了特定的場景的一些設置和處理,隨着項目數量的增多,有些控

原创 Qt開發經驗小技巧276-280

對MDI窗體區域設置背景顏色透明,會發現 QMdiArea{background:transparent;} 無效,哪怕是指定顏色 QMdiArea{background:#ff0000;} 或者 QMdiArea{background

原创 Qt編寫跨平臺的推流工具(支持win/linux/mac/嵌入式linux/安卓等)

一、前言 跨平臺的推流工具當屬OBS最牛逼,功能也是最強大的,唯一的遺憾就是多路推流需要用到插件,而且CPU佔用比較高,默認OBS的規則是將對應畫布中的視頻畫面和設定的音頻一起重新編碼再推流,意味着肯定佔用不少CPU資源,而很多時候尤其是視

原创 Qt編寫監控實時顯示和取流回放工具(回放支持切換進度)

一、前言 現在各個監控大廠做的設備,基本上都會支持通過rtsp直接取流顯示,而且做的比較好的還支持通過rtsp回放取流,基本上都會約定一個字符串的規則,每個廠家都是不一樣的規則,比如回放對應的rtsp地址還要帶上時間範圍,回放肯定要指定一個

原创 Qt開發經驗小技巧271-275

編程的過程中經常遇到需要將QString轉成char *或者const char *的情況,在轉換成QByteArray後調用.data()或者.constData()函數進行轉換,這裏需要注意的是,如果轉換類型是const char *

原创 Qt編寫手機版本視頻播放器和Onvif工具(可雲臺和錄像)

一、前言 用Qt+ffmpeg寫播放器很多人有疑問,爲何不用Qt自己的多媒體框架來寫,最重要的原因是Qt自帶的目前都依賴具體的本地解碼器,如果解碼器不支持,那就是歇菜的,最多支持個MP4格式,而且在手機上也都是支持本地少部分格式的文件,對於

原创 Qt編寫onvif工具(搜索/雲臺/預置位/OSD/錄像存儲)

一、前言 從最初編寫這個工具開始的時間算起來,至少5年多,一直持續完善到今天,這個工具看起來小也不小大也不大,但是也是經歷過無數個現場的洗禮,毫不誇張的說,市面上能夠遇到的主流的廠商的設備,都測試過,而且做過大量設備的測試,並不是調試個一個

原创 Qt編寫全能播放組件(支持ffmpeg2/3/4/5/6/Qt4/5/6)

一、前言 從代碼層面以及自由度來說,用ffmpeg來寫全能播放組件是最佳方案(跨平臺最好最多、編解碼能力最強),儘管已經有優秀的vlc/mpv等方案可以直接用,但是vlc/mpv對標主要是播放器應用層面,其他層面比如視頻監控行業領域就比較雞

原创 Qt編寫視頻監控系統78-視頻推流到流媒體服務器

一、前言 視頻推流作爲獨立的模塊,目前並沒有集成到視頻監控系統中,目前是可以搭配監控系統一起使用,一般是將添加好的攝像頭通道視頻流地址打開後,讀取視頻流重新推到流媒體服務器,然後第三方可以從流媒體服務器拉取視頻流地址,相當於訂閱分發,可以多

原创 Qt編寫視頻監控系統76-Onvif跨網段組播搜索和單播搜索的實現

一、前言 在視頻監控行業一般會用國際onvif工具來測試設備是否支持onvif協議,工具的名字叫ONVIF Device Manager(還有個工具叫ONVIF Device Test Tool,專用於程序員測試各種數據交互),可以自行搜索