原创 將OBS錄製數據通過RTMP協議引入到自己的程序中

    最近在window是平臺下,做了一功能實現通過OBS採集音視頻,並通過RTMP協議將其編碼壓縮後的數據接入到自己的程序中來,因OBS軟件自帶有很強大的遊戲錄製和桌面錄製的功能,以及輸入、輸出音頻設備數據的採集並混音的功能,目前鬥魚遊

原创 FEC前向糾錯算法

    目前找到了兩種方案:1、使用openfec    http://openfec.org/accueil.html    但是該開源庫代碼量比較大,用起來也有點費事;編譯通過cmake進行編譯成一動態庫(or靜態庫),window下c

原创 windows安裝程序遇到HRESULT: 0x80070422

    今日安裝smartrf flash programmer失敗得到如下一個錯誤,還以爲是安裝包問題,嘗試了幾個版本,不得其解,後通過查找錯誤碼,發現原來是系統安裝服務沒有開啓導致的,只需將其設爲手動或者自動開啓,然後啓動服務即可。HR

原创 YUV420P/I420 stride 計算方式

這兩天做一個 H.265 編碼測試的功能,編碼器需要手動輸入 raw yuv frame 的 stride (也可以稱作 pitch)數組大小,這個倒是讓我一愣,做了這麼久的音視頻編解碼的工作,長時間使用 ffmpeg,或者 x264 的上

原创 vs編譯protobuf 3.0.0

    Google終於發佈了protobuf 3.0的release版了,升級項就不說了,之前的版本內部都有一個vsprojects目錄,可以通過vs工程直接打開,新版本需要自己通過cmake去創建。    protobuf下載地址:ht

原创 藍牙4.0 BLE與傳統藍牙之間的兼容性

      藍牙分爲三種:Bluetooth Smart Ready、Bluetooth Smart(Smart是低功耗藍牙的標識)、以及標準 Bluetooth。根據 Bluetooth SIG的說法,這樣是爲了要分辨裝置間的相容性以及標

原创 eclipse+ADT使用第三方靜態庫及COCOS2d問題彙總

   最近在搞安卓下的音視頻通訊聊天,模塊工程均完成後,需要由cocos搭起可執行程序的框架,在使用cocos及第三方靜態庫的過程中遇到了一些問題,由於自己是首次接觸COCOS,再加上COCOS自身的問題,搞了整整一天,也終於算是搞透了; 

原创 ffmpeg/libav 定製模塊

    使用ffmpeg或者libav進行開發時,大部分情況下功能需要比較單一,比如是做播放器時只需要解複用和解碼模塊,甚至是只需要一種音頻或者視頻的解碼器,或者需要使用ffmpeg進行指定格式的編碼、轉碼等,這時如果不對ffmpeg進行定

原创 arm下如何燒寫指定分區大小的內核和文件系統

    最近在海思3518e平臺下燒寫內核和文件系統,由於項目需要,需要運行海思SDK中的測試軟件HiIspTool,不能使用精簡後的文件系統,需要刷一個比較大的文件系統,但在此過程中由於各種原因,弄壞了一個板子,燒壞了一個uboot,由於

原创 C/C++實現環形緩衝

    在開發過程中經常會遇到需要使用環形緩衝的地方,比如在流媒體方面,對於接收到的音視頻數據的存儲、以及音頻解碼後PCM數據的存儲等問題上,最好使用一個環形緩衝,接收到,或者解碼後壓入該緩衝區中,在需要解碼,或者需要塞入聲卡時,再從該緩衝

原创 Android下使用ACE開源網絡庫

   最近公司要求將PC平臺下的代碼移植到Android平臺,其中涉及到的ACE開源代碼,雖然ACE比較笨重,但由於種種歷史原因,我不可能將ACE給踢掉重新開發,故需要解決ACE開源庫在Android下的編譯和使用問題,由於工程中使用多個第

原创 YUV420查表法高效、無失真的轉換爲RGB32格式

    YUV格式有兩大類:planar和packed。planar的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,隨後是所有像素點的V,這裏所講述的就是這中存儲格式的;packed的YUV格式,每個像素點的Y,U,V是連

原创 window如何採集回放設備聲音 並重採樣

    在windows平臺下采集輸入設備的音頻數據資料已經很多了,但是採集聲卡回放設備的方法卻比較少,在此寫下本人開發的一個用於採集聲卡回放輸出設備(桌面聲音)的音頻數據,並做重採樣處理的功能模塊;當然同時也支持從輸入設備中採集音頻數據。

原创 ndk-build 編譯報錯 fatal error: error writing to -: Invalid argument } ^

最近下載同事的 Android 工程代碼,協作開發一些 Native 底層功能,需要首先編譯底層的一些 JNI 的代碼庫,由於工程較大,且依賴的第三方庫比較多,下載完畢後,通過 ndk-build 進行編譯,報了一些個奇怪的錯誤,並指向了代

原创 YUV420如何扣取指定區域的圖像數據

        YUV420數據的存儲方式有兩類:planar和packed。planar的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,隨後是所有像素點的V。對於packed的YUV格式,每個像素點的Y,U,V是連續交*