[Android音視頻]之音頻編解碼庫Opus編譯

just_do_it.gif

前言

關于Opus,我相信能找到這篇文章的人都應該知道他是用來干啥的了,這里我就不多做解釋了,寫這篇文章是為了加深記憶,也方便有需要的人
Opus音頻編解碼庫的官方描述如下:
Opus是一款完全開放蒂秘,沒有版權費用移必,并且功能強大的音頻編解碼器巩梢。無論是互聯(lián)網(wǎng)上的交互式語音和音樂傳輸裂垦,還是流媒體應用它都同樣適用副瀑。它所遵循的標準為RFC 6716舱污,其中包含Skype的SILK編解碼器和Xiph.Org的CELT編解碼器的技術。

Opus的優(yōu)點

比特率從6 kb / s到510 kb / s
采樣率從8 kHz(窄帶)到48 kHz(全頻段)
幀大小從2.5毫秒到60毫秒
支持恒定比特率(CBR)和可變比特率(VBR)
從窄帶到全頻帶的音頻帶寬
支持語音和音樂
支持單聲道和立體聲
支持多達255個通道(多流幀)
動態(tài)可調(diào)比特率粱栖,音頻帶寬和幀大小
良好的損耗穩(wěn)健性和丟包隱藏(PLC)
浮點和定點實現(xiàn)
(以上信息來自Google翻譯)

源碼下載

你可以從Opus的官網(wǎng)下載libopus的源碼包,傳送門: http://www.opus-codec.org/downloads/
截至目前最新版本為 1.2.1

編譯配置

Opus的編譯沒有系統(tǒng)要求,在 Windows , Linux 還是 Mac 上編譯都可以

  • 在編譯之前,你需要保證你的電腦上有安裝 Android NDK 并且添加到了 PATH 環(huán)境變量中
  • 源碼下載下來后是一個tar.gz的壓縮包,首先我們先將它解壓出來,放在任意位置都行
  • 進入源碼目錄,在源碼目錄下新建一個out文件夾(當然其他名稱也可以,沒有固定要求)
  • 在out目錄下新建一個 Android.mk 文件,并 打開編輯
  • 將這一段復制到 Android.mk 文件中并保存
LOCAL_PATH := $(call my-dir)/..

include $(CLEAR_VARS)

# 編譯所有平臺 armeabi , armeabi-v7a , arm64-v8a , x86 , x86_64 , mips , mips64
APP_ABI := all
# 使用C++11標準編譯
APP_CPPFLAGS +=-std=c++11
APP_STL := gnustl_shared
# 指定API等級
APP_PLATFORM :=android-19

include $(LOCAL_PATH)/celt_sources.mk
include $(LOCAL_PATH)/silk_sources.mk
include $(LOCAL_PATH)/opus_sources.mk

# 輸出的文件名稱 libopus.so
LOCAL_MODULE        := opus

SILK_SOURCES        += $(SILK_SOURCES_FIXED)
CELT_SOURCES        += $(CELT_SOURCES_ARM)
SILK_SOURCES        += $(SILK_SOURCES_ARM)

# 指定源碼文件
LOCAL_SRC_FILES     := \
    $(CELT_SOURCES) $(SILK_SOURCES) $(OPUS_SOURCES) $(OPUS_SOURCES_FLOAT)

LOCAL_LDLIBS        := -lm -llog
LOCAL_C_INCLUDES    := \
    $(LOCAL_PATH)/include \
    $(LOCAL_PATH)/silk \
    $(LOCAL_PATH)/silk/fixed \
    $(LOCAL_PATH)/celt

# 編譯參數(shù)配置
LOCAL_CFLAGS        := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
LOCAL_CFLAGS        += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O3 -fno-math-errno
LOCAL_CPPFLAGS      := -DBSD=1 
LOCAL_CPPFLAGS      += -ffast-math -O3 -funroll-loops

include $(BUILD_SHARED_LIBRARY)

編譯Opus

其實吧,很簡單,打開你的命令行,切換到out目錄,然后執(zhí)行

ndk-build

之后等待編譯完成,編譯完成后會在out目錄生成一個 libs 文件夾,里邊就是你要的東西

附錄

為了方便各位操作,此處列出一些常用的命令行操作

Windows 常識
  • Win+R 打開CMD命令窗口
  • 直接輸入 盤符+冒號 然后回車,切換到其他磁盤
  • dir 命令查看當前目錄下的所有文件和文件夾
  • cd+空格+文件夾名 進入到該文件夾內(nèi),如果只記得文件夾的首字母,那就輸入一個首字母然后按 Tab 即可自動補全
Linux & Mac 常識
  • Ctrl+Alt+T 打開終端(僅限Ubuntu,Debian等Linux發(fā)行版,我窮逼買不起蘋果,所以蘋果什么快捷鍵我就不知道了)
  • ls 查看當前目錄下的所有文件夾和文件(不包括隱藏的文件),如果需要查看隱藏文件則后邊加一個 -a
  • cd+空格+文件夾名 進入到該文件夾內(nèi),同理Windows,如果只記得首字母,輸入一個,然后按 Tab
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末话浇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子查排,更是在濱河造成了極大的恐慌凳枝,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跋核,死亡現(xiàn)場離奇詭異,居然都是意外死亡叛买,警方通過查閱死者的電腦和手機砂代,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來率挣,“玉大人刻伊,你說我怎么就攤上這事〗饭Γ” “怎么了捶箱?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長动漾。 經(jīng)常有香客問我丁屎,道長,這世上最難降的妖魔是什么旱眯? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任晨川,我火速辦了婚禮证九,結果婚禮上,老公的妹妹穿的比我還像新娘共虑。我一直安慰自己愧怜,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布妈拌。 她就那樣靜靜地躺著拥坛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尘分。 梳的紋絲不亂的頭發(fā)上猜惋,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音音诫,去河邊找鬼惨奕。 笑死,一個胖子當著我的面吹牛竭钝,可吹牛的內(nèi)容都是我干的梨撞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼香罐,長吁一口氣:“原來是場噩夢啊……” “哼卧波!你這毒婦竟也來了?” 一聲冷哼從身側響起庇茫,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤港粱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后旦签,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體查坪,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年宁炫,在試婚紗的時候發(fā)現(xiàn)自己被綠了偿曙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡羔巢,死狀恐怖望忆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竿秆,我是刑警寧澤启摄,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站幽钢,受9級特大地震影響歉备,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搅吁,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一威创、第九天 我趴在偏房一處隱蔽的房頂上張望落午。 院中可真熱鬧,春花似錦肚豺、人聲如沸溃斋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梗劫。三九已至,卻和暖如春截碴,著一層夾襖步出監(jiān)牢的瞬間梳侨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工日丹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留走哺,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓哲虾,卻偏偏與公主長得像丙躏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子束凑,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • OpusEncoder 1:獲得 OpusEncoder結構的大小 2:分配和初始化 encoder狀態(tài).一個編碼...
    今憶Zoe閱讀 6,433評論 0 3
  • 簡介 Opus是一款完全開放晒旅、免版稅、功能多樣的音頻編解碼器汪诉。它適用于互聯(lián)網(wǎng)上的交互式語音和音樂傳輸废恋,但也適用于存...
    JonorZhang閱讀 31,241評論 9 17
  • 什么是Opus? Opus官網(wǎng)介紹 Opus opus是完全開放的,免版稅的,高度通用的音頻編解碼器扒寄。作品是無與倫...
    努力的菜鳥閱讀 2,695評論 0 0
  • 文字/ 徐丹妮 圖片 / 徐丹妮 不懂攝影、沒有單反上渴、沒有會拍照的男朋友,所以你就放棄美美的自拍喜颁,改用美顏相機一...
    徐丹妮閱讀 11,195評論 48 218
  • 過去我覺得好看的姑娘都應該高挑長發(fā)半开,濃眉大眼隔披。可后來卻更喜歡看見坦率的笑容寂拆,溫和的眼神奢米,跟優(yōu)雅的談吐抓韩。一個有整潔衣...
    怪物不二閱讀 2,602評論 16 50