原创 intel gpu 解碼

背景 在linux上使用intel的gpu加速解碼h264,根據以往的經驗往往需要將intel gpu的demo集成到我們自己代碼當中, 但是這樣侷限性很大, 每一代的gpu加速的修改, 我們代碼都需要調整,得不償失。 封裝接口

原创 gb28181提供的功能

功能 根據項目需要暫時使用了以下功能: 一. 跟NVR相關操作 1.0獲取當前服務器有幾個nvr註冊進來 1.1 通過Nvr 的20位碼獲取NVR的具體信息 二. 跟攝像頭相關的操作 2.0 獲取當前的nvr下有幾個camera

原创 gb 28181的20位編碼簡介

舉例:36030000042000000003 設備的20位編碼組成 國標編碼由中心編碼(8位)、行業編碼(2位)、類型編碼(3位)、網絡標識(1位)和序號(6位)五個段共20位十進制數字組成。 系統編碼 =中心編碼(8位) +

原创 海康和大華NVR 遇到的一些問題

1. 流格式的結構不一樣   有些大華設備的流並不是以PS頭作爲取一幀的前提, 要以Mark位爲結束標識 有些大華設備的流取一幀要判斷下一個ps頭,把之前的數據作爲一幀   2. 錄像目錄結構不太一樣 大華的錄像目錄並不會給filepat

原创 gb28181 服務對外發布結構

結構 將NVR和sip服務器要放在同級域中, 然後其他服務可以在外網,這樣可以在外網獲取到NVR的流和消息   交流 qq羣:227919596 (gb28181交流合作)    

原创 rtsp簡單介紹

一.  介紹 Rtsp 即realtime stream protocol,它是應用層協議, 可以控制流的(暫停/繼續/後退/前進等),   二.  兩種方式 分爲: 1.       RTP/AVP/UDP 2.       RTP/A

原创 在linux 環境中封裝intel硬編

背景 在linux上使用intel的gpu加速編碼h264,根據以往的經驗往往需要將intel gpu的demo集成到我們自己代碼當中, 但是這樣侷限性很大, 每一代的gpu加速的修改, 我們代碼都需要調整,得不償失。 封裝接口 clas

原创 開發實現C++ RTMP直播拉流播放器

背景 該直播播放器的背景是來源於 《拉流推流服務器設計》的一個分支,它的重點是把拉下來的流進行解碼顯示播放。 設計點 要實現跨平臺, 目前支持的平臺linux和windows 要模塊化和結構化 可以拉各個平臺的直播流 要音視頻同步 基

原创 intel GPU加速在linux 上測試, 多路編碼

背景 我使用的機子的配置Intel(R) Core(TM) i5-5250U CPU @ 1.60GHz 4核 8G內存 120G硬盤 測試方式, 使用intelGPU 1080p yuv 數據文件, 讀取編碼並寫到264文件中, 這

原创 webrtc sigslot 使用以及源碼分析

背景 在使用webrtc的時候,我們會看到使用sigslot,那什麼是sigslot就是我們所說的信號與槽, qt使用的。 webrtc中的Sigslot 是Sarah Thompson 設計實現的C++ 事件處理的框架,這套框架非常輕量

原创 webrtc linux 和 android 版本下載與編譯

背景 我目前使用的是豆莢vpn代理才能訪問webrtc開源項目,通過給開發環境配置代理可以順利完成其源碼的下載。 安裝depot_tools mkdir webrtc cd webrtc git clone https://chromiu

原创 開發實現C++ RTMP直播推流sdk

前言 rtmp即Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫,它是由Adobe公司提出的一種應用層的協議,用來解決多媒體數據傳輸流的多路複用(Multiplexing)和分包(packetizi

原创 多進程的一種場景

多進程執行一段程序 std::vector<pid_t> pid_vector; pid_vector.clear(); pid_t p; int i = 0; for (i = 0; i < pro

原创 拉流推流服務器設計

背景 該服務器也是基於一個客戶的需求產生的。客戶那邊使用的是騰訊的直播sdk, 將不同終端的流推到騰訊雲平臺, 但是又想推到其他平臺, 基於此需求,該產品產生了。 該產品通訊協議使用的是WebSocket, 客戶端可以自己定義 可以拉騰