中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt海康sdk錄像存儲怎么實現

發布時間:2021-12-15 10:29:40 來源:億速云 閱讀:238 作者:iii 欄目:互聯網科技

這篇文章主要介紹“Qt海康sdk錄像存儲怎么實現”,在日常操作中,相信很多人在Qt海康sdk錄像存儲怎么實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Qt海康sdk錄像存儲怎么實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、前言

關于調用海康sdk來進行錄像存儲,整體的框架架構處理流程沿襲了之前vlc內核、ffmpeg內核、mpv內核的做法,定時存儲這塊,開個定時器判斷,到了時間則先關閉原來的錄像存儲,然后在開始一個新的錄像存儲,重新傳入新的文件名,所以這塊的代碼直接拷貝過來就能使用,要做的就是替換兩行代碼即可,一行是開始錄像存儲的函數NET_DVR_SaveRealData,一行是停止錄像存儲的函數NET_DVR_StopSaveRealData,海康sdk的手冊非常詳細,而且命名也比較規范,基本上通過方法函數名字就可以知道大概的意思了,不用去猜測。

和錄像存儲功能同一大類的還有個截圖功能,這個在vlc內核、ffmpeg內核、mpv內核這些內核中都實現了,截圖總結了三種,第一種是句柄模式下的截圖,這個需要調用相關sdk的函數去執行,分辨率大小為原圖;第二種是回調模式下的截圖,這個已經拿到了圖片的數據,直接取窗體對應保存的視頻的圖片即可,分辨率大小為原圖;第三種是窗體的截屏,就是當前視頻窗體來個截屏,分辨率大小為當前窗體的尺寸;

關于打開視頻文件、錄像存儲、截圖保存這三個功能,要特別注意中文路徑,當然如果是只有英文路徑那就無需做任何處理,但是對于國人使用來說,中文路徑肯定是避免不了的,有兩種可能的需要的處理,一個是路徑要轉成utf8格式,還有一種是要用QTextCodec指定gb2312格式重新轉一下路徑才能生效,比如海康sdk內核下,不然很可能路徑失效。

二、功能特點

  1. 支持播放視頻流和本地MP4文件。

  2. 支持句柄和回調兩種模式。

  3. 多線程顯示圖像,不卡主界面。

  4. 自動重連網絡攝像頭。

  5. 可設置邊框大小即偏移量和邊框顏色。

  6. 可設置是否繪制OSD標簽即標簽文本或圖片和標簽位置。

  7. 可設置兩種OSD位置和風格。

  8. 可設置是否保存到文件以及文件名。

  9. 可直接拖曳文件到haikangwidget控件播放。

  10. 支持h364/h365視頻流。

  11. 可暫停播放和繼續播放。

  12. 支持存儲單個視頻文件和定時存儲視頻文件。

  13. 自定義頂部懸浮條,發送單擊信號通知,可設置是否啟用。

  14. 可設置畫面拉伸填充或者等比例填充。

  15. 可設置解碼是速度優先、質量優先、均衡處理。

  16. 可對視頻進行截圖(原始圖片)和截屏(視頻窗體)。

  17. 錄像文件存儲為MP4文件。

  18. 支持焦距控制、云臺控制。

  19. 可定制功能。

三、效果圖

Qt海康sdk錄像存儲怎么實現

四、核心代碼

void HaiKangThread::initSave()
{
    if (!saveFile || !isRtsp) {
        return;
    }

    if (saveInterval == 0) {
        saveVideo(fileName);
    }
}

void HaiKangThread::saveVideo()
{
    if (!saveFile || !isRtsp) {
        return;
    }

    //重新設置文件名稱
    QString dirName = QString("%1/%2").arg(savePath).arg(QDATE);
    newDir(dirName);
    fileName = QString("%1/%2_%3.mp4").arg(dirName).arg(fileFlag).arg(STRDATETIME);
    saveVideo(fileName);
}

void HaiKangThread::saveVideo(const QString &fileName)
{
    if (hand >= 0) {
        //轉碼以便支持中文路徑
        QTextCodec *codec = QTextCodec::codecForName("gb2312");
        QByteArray data = codec->fromUnicode(fileName);

        //先停止再設置
        NET_DVR_StopSaveRealData(hand);
        NET_DVR_SaveRealData(hand, data.data());
    }
}

到此,關于“Qt海康sdk錄像存儲怎么實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

qt
AI

古田县| 巴青县| 独山县| 彝良县| 阳泉市| 钟山县| 东乌珠穆沁旗| 黎川县| 兴海县| 潢川县| 全州县| 临颍县| 兴国县| 三穗县| 承德市| 曲阜市| 横峰县| 石河子市| 河北区| 广安市| 桃江县| 翁牛特旗| 商洛市| 西畴县| 剑阁县| 田东县| 隆回县| 新巴尔虎右旗| 什邡市| 监利县| 义马市| 盐城市| 达尔| 镇康县| 宜都市| 视频| 上高县| 高清| 苏州市| 望谟县| 乳源|