海思arm平臺AAC音訊轉碼cpu佔用高、效率低的問題解決
阿新 • • 發佈:2019-01-27
問題背景
目前市面上的大部分IPC攝像機音訊輸出基本都是G711、G726編碼格式,而在類似於《基於EasyNVR實現RTSP/Onvif監控攝像頭Web無外掛化直播監控》這種業務中,都是在類似於EasyNVR這樣的適配服務中進行音訊的轉碼,也有在類似於《EasyDarwin開源流媒體雲平臺支援EasyCamera攝像機、EasyCamera手機直播監控、EasyNVR等多終端接入》這種arm裝置中需要進行音訊轉碼AAC的需求情況,我們發現在類似於hisi海思晶片的大部分ARM系統中,對浮點運算的支援都不是很好,效率非常低,導致在ARM裝置中直接將PCM型別音訊轉成AAC時,效率非常低,轉碼服務程序會搶佔主服務的CPU資源,導致整個相機的其它工作程序不穩定!
解決方案:EasyAACEncoder
開源EasyAACEncoder 是EasyDarwin開源流媒體服務團隊整理、開發的一款音訊轉碼到AAC的工具庫,目前支援G711a/G711u/G726/PCM等音訊格式的轉碼,跨平臺,支援Windows(32&64)/Linux(32&64)各平臺,AAC的轉碼是基於知名的faac進行的,能夠非常穩定、高效地在x86平臺工作,而在arm平臺上,我們根據特定的ARM平臺定製整理出了一套商用版本的音訊轉碼EasyAACEncoder SDK,目前海思(hisiv100、hisiv200、hisiv300、hisiv400)全系列均已支援,CPU佔用率極低,能非常好地滿足ARM平臺的AAC音訊轉碼需求!
專案地址
呼叫過程
特殊說明
EasyAACEncoder目前支援的音視訊格式:
/* Audio Codec */ enum Law { Law_ULaw = 0, /**< U law */ Law_ALaw = 1, /**< A law */ Law_PCM16 = 2, /**< 16 bit uniform PCM values. 原始 pcm 資料 */ Law_G726 = 3 /**< G726 */ }; /* Rate Bits */ enum Rate { Rate16kBits=2, /**< 16k bits per second (2 bits per ADPCM sample) */ Rate24kBits=3, /**< 24k bits per second (3 bits per ADPCM sample) */ Rate32kBits=4, /**< 32k bits per second (4 bits per ADPCM sample) */ Rate40kBits=5 /**< 40k bits per second (5 bits per ADPCM sample) */ };
獲取更多資訊
Author:Leo,Kim,Wellsen
Copyright © EasyDarwin.org 2012-2017