Opus Visual Studio配置

什么是Opus?

Opus官網(wǎng)介紹 Opus
opus是完全開放的,免版稅的,高度通用的音頻編解碼器接奈。作品是無與倫比的交互式語音和音樂在互聯(lián)網(wǎng)上傳播,但也用于存儲和流媒體的應(yīng)用程序踢涌。
標準化是因特網(wǎng)工程任務(wù)組(IETF)為RFC 6716,從Skype編解碼器和Xiph整合技術(shù)。Org的編解碼器序宦。
opus可以處理廣泛的音頻應(yīng)用程序,包括IP電話斯嚎、視頻會議、游戲內(nèi)聊天,甚至遠程現(xiàn)場音樂表演挨厚。它可以規(guī)模從低比特率窄帶語音非常高質(zhì)量的立體聲音樂堡僻。支持功能:
比特率從6 kb / s到510 kb / s
采樣率從8 kHz(窄帶)48千赫(fullband)
幀大小從2.5毫秒到60毫秒
支持兩個恒定比特率(CBR)和可變比特率(VBR)
從窄帶fullband音頻帶寬
支持語音和音樂
支持單聲道和立體聲
支持多達255個頻道的節(jié)目(多流道幀)
動態(tài)可變比特率、音頻帶寬,和幀大小
良好的魯棒性和包丟失隱藏損失(PLC)
浮點和定點實現(xiàn)

為什么要在visual studio 中配置opus疫剃?

做為一名android開發(fā)人員钉疫,要將這個opus的庫移植到android上,最好的就是官方的列子了巢价,而且這些例子都是默認有支持visual Studio的牲阁,使用過visual Studio的人都知道,
visual Studio也是一個非常牛逼壤躲,非常方便的一個軟件城菊,提供了很多方便的功能,當(dāng)然我們不是沒事干配置Visual Studio 的項目碉克,這么做的目的還是最終為了移植到android上
通過了解他提供的demo凌唬,或者嘗試的去修改demo代碼,修改完之后漏麦,再移植到android上面,下面會介紹怎么配置visual Studoiio

visual studio中配置opus

Opus 開發(fā)者介紹 Opus development
我們可以通過上面的連接將要下載的內(nèi)容客税,克隆下來,依次執(zhí)行
opus庫為主要的編解碼庫
git clone https://git.xiph.org/opus.git
Opus-tools編碼/解碼 opus到wav,或者wav到opus的實現(xiàn)
git clone https://git.xiph.org/opus-tools.git
Opusfile API提供了一個高層次的解碼和尋求在.opus文件類似libvorbisfile Vorbis提供撕贞。
git clone https://git.xiph.org/opusfile.git
libopusenc提供高級API創(chuàng)建.opus文件和流更耻。
git clone https://git.xiph.org/libopusenc.git

  • opus庫生成

在克隆下來的opus庫,目錄下面會有一個win32目錄捏膨,里面會有一個vs2015目錄秧均,在這個目錄里面會有一個opus.ls文件,在安裝好了visual Studio 之后,是可以直接打開這個文件的
visual Sutdio打開之后目胡,點擊生成疙描,重新生成解決方案,會產(chǎn)生下面的結(jié)果


opus生成.png

上圖所示讶隐,生成了5個結(jié)果,對應(yīng)的項目為左邊的剛好5個,那這樣opus庫配置完成
opus生成的結(jié)果久又,生成的目錄以及文件為


opus生成結(jié)果.png
  • libopusenc庫生成

在克隆下來的libopusenc庫巫延,目錄下面會有一個win32目錄,里面會有一個vs2015目錄地消,在這個目錄里面會有一個opusenc.ls文件炉峰,在安裝好了visual Studio 之后,是可以直接打開這個文件的
visual Sutdio打開之后脉执,點擊生成疼阔,重新生成解決方案,會產(chǎn)生下面的結(jié)果


libopusenc.png

上圖所示半夷,生成了1個結(jié)果婆廊,對應(yīng)的項目為左邊的剛好1個,那這樣libopusenc庫配置完成
libopusenc生成的結(jié)果,生成的目錄以及文件為


libopusenc生成結(jié)果.png

在libopusenc 項目右鍵選項中的c/c++一覽巫橄,常規(guī)選項淘邻,有一個選項為包含目錄中有一個......\opus\include ,這個剛好對應(yīng)的是我們的opus庫中湘换,所以要先編譯opus庫
libopus生成需知.jpg
  • Opusfile庫生成

在克隆下來的opusfile庫宾舅,目錄下面會有一個win32目錄,里面會有一個vs2015目錄彩倚,在這個目錄里面會有一個opusfile.ls文件筹我,在安裝好了visual Studio 之后,是可以直接打開這個文件的
visual Sutdio打開之后帆离,點擊生成蔬蕊,重新生成解決方案,會出現(xiàn)錯誤哥谷,大致就是說缺少相應(yīng)的文件比如ogg/ogg.h文件等,我們通過點擊項目opusfile右鍵查看屬性


opusfile依賴.jpg

上圖所示袁串,我們?nèi)鄙賝gg ,以及opensssl文件,所以我們必須要先編譯對應(yīng)的文件
通過上面的圖片可以知道ogg,openssl的目錄必須要跟opusfile同一級的目錄呼巷,而且文件夾名必須為ogg,openssl囱修,要不然對應(yīng)不上

  • ogg的生成

首先要將ogg的代碼克隆下來 git clone -q https://github.com/xiph/ogg.git 然后進入ogg的目錄,里面也有一個win32目錄王悍,在win32里面有一個VS2015目錄破镰,這個目錄里面存在一個名為libogg_static.sln ,這個就是我們visual Studio可以打開的文件,
雙擊打開這個工程,然后通過生成鲜漩, 重新生成解決方案源譬,會產(chǎn)生下面的結(jié)果

ogg生成解決方案.png

ogg生成的結(jié)果,生成的目錄以及文件為
ogg生成文件目錄.png

  • openssl庫生成

具體的編譯過程可以參考這篇文章 openssl編譯 https://www.cnblogs.com/lpxblog/p/5382653.html

openssl編譯結(jié)果.png

我們通過點擊opusfile_example 項目的右鍵 在鏈接器一覽 輸入中可以看出孕似,這個項目需要的外部庫
opusfile_example 依賴.png

我們可以直接將openssl 編譯的文件中找到對應(yīng)的lib踩娘,然后拷貝到當(dāng)前的目錄,或者修改lib庫文件的依賴,我們采用前者 拷貝之后的目錄為
openssl文件拷貝.png

最后我們點擊生成喉祭,重新生成解決方案养渴,會產(chǎn)生下面的結(jié)果
opusfile生成結(jié)果.png

opusfile 生成結(jié)果的目錄
opusfile生成目錄.png

  • Opustool庫生成

在克隆的項目中,在VS2015目錄中存在一個opus-tools.sln文件泛烙,這個就是我們visual Studio可以打開的文件理卑,雙擊打開這個工程,然后通過生成, 重新生成解決方案蔽氨,
會產(chǎn)生錯誤藐唠,缺少flac文件,缺少libFLAC_static.lib

opus-tools依賴文件.jpg

所以我們必須要先編譯對應(yīng)的文件
我們通知執(zhí)行
git clone -q https://github.com/xiph/flac.git
將flac的代碼克隆下來鹉究,要注意的是宇立,通過上圖可知,flac的文件目錄要跟opus目錄處于同一級別自赔,而且文件名
必須要為flac泄伪,要不然就要修改對應(yīng)的依賴配置
目錄文件結(jié)構(gòu)為
opus目錄文件.png

  • 編譯flac

在克隆的代碼目錄中有一個FLAC.sln文件,雙擊使用Visual Studio打開,如果直接使用生成匿级,重新生成解決方案蟋滴,會出現(xiàn)無法打開libFLAC_static.lib之類的,這是因為要提前編譯
對應(yīng)的lib庫文件痘绎,然后再去編譯其他的津函,下面是要先去編譯的項目,通過點擊對應(yīng)的項目孤页,右鍵然后執(zhí)行生成尔苦,就可以生成對應(yīng)的庫文件


flac庫生成優(yōu)先級.png

在生成libFLAC_static.lib的文件的時候,會出現(xiàn)找不到對應(yīng)的ogg/ogg.h之類的文件行施,在flac對應(yīng)的右鍵屬性中可以找到對應(yīng)的依賴


flac 依賴ogg.jpg

所以我們要將編譯好的對應(yīng)的ogg拷貝到對應(yīng)的文件里面允坚,首先拷貝ogg的頭文件,在ogg的工程目錄中,有一個inlcude目錄里面有一個ogg的目錄蛾号,將這個拷貝到flac目錄中的include目錄
下面是拷貝之后的結(jié)果
flac ogg頭文件的拷貝.png

然后拷貝 ogg生成的文件 libogg_static.lib 到flac 中的 flac\objs\debug\lib 目錄中
然后重新生成,這些庫文件生成之后稠项,然后點擊生成,生成解決方案鲜结,就可以將全部的文件生成展运,注意這里不能點擊重新生成解決方案活逆,要不然又出現(xiàn)上面的問題,生成的目錄文件為


flac生成的文件內(nèi)容.png

點擊項目右鍵屬性查看依賴


opus-tools依賴文件.jpg

可以看出來拗胜,opus-tools需要依賴很多的lib蔗候,比如opus.lib,opus_file.lib等,所以我們要將opus-tools的編譯放在最后面埂软,從這里還知道opus-tools也需要openssl
我們可以參考上面生成opus-file的時候锈遥,怎么引進openssl的方式拷貝內(nèi)容
最終生成的結(jié)果為:


opus-tools生成的結(jié)果.png

以上就是Opus 在window工程的配置,之后我們就可以在Window下面方便的查看代碼,然后修改代碼勘畔,最后就修改之后的代碼所灸,轉(zhuǎn)移到Android來編譯

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咖杂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚊夫,老刑警劉巖诉字,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異知纷,居然都是意外死亡壤圃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門琅轧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伍绳,“玉大人,你說我怎么就攤上這事乍桂〕迳保” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵睹酌,是天一觀的道長权谁。 經(jīng)常有香客問我,道長憋沿,這世上最難降的妖魔是什么旺芽? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮辐啄,結(jié)果婚禮上采章,老公的妹妹穿的比我還像新娘。我一直安慰自己壶辜,他們只是感情好悯舟,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砸民,像睡著了一般图谷。 火紅的嫁衣襯著肌膚如雪翩活。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天便贵,我揣著相機與錄音菠镇,去河邊找鬼。 笑死承璃,一個胖子當(dāng)著我的面吹牛利耍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盔粹,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼隘梨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舷嗡?” 一聲冷哼從身側(cè)響起轴猎,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎进萄,沒想到半個月后捻脖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡中鼠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年可婶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片援雇。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡矛渴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惫搏,到底是詐尸還是另有隱情具温,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布筐赔,位于F島的核電站桂躏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏川陆。R本人自食惡果不足惜剂习,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望较沪。 院中可真熱鬧鳞绕,春花似錦、人聲如沸尸曼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽控轿。三九已至冤竹,卻和暖如春拂封,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹦蠕。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工冒签, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钟病。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓萧恕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肠阱。 傳聞我的和親對象是個殘疾皇子票唆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

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