FFMPEG for android 編譯

標(biāo)簽(空格分隔): FFMPEG


最近在研究Android視頻播放功能,網(wǎng)上有很多關(guān)于視頻播放解碼的庫悼院,但是作為程序員的我淮逊,還是希望能從源頭出發(fā),學(xué)習(xí)FFMPGE自然是勢在必行了蚁趁。

網(wǎng)上有關(guān)FFMPGE學(xué)習(xí)的文章有很多裙盾,但是對(duì)于初學(xué)者而言,看的時(shí)候似乎總有一點(diǎn)不知所以然感覺,本人也是其中一個(gè)番官。再此庐完,作為一個(gè)初學(xué)者,我們需要按著怎樣的步驟來學(xué)習(xí)FFPEG呢徘熔?本系列文章就來一起記錄一下门躯,初學(xué)者探索FFMPEG的歷程,一點(diǎn)一滴的走向通往大神之路酷师。

本片文章讶凉,我的計(jì)劃是這樣的,

  1. 編譯出ffmpeg可以為Android使用動(dòng)態(tài)鏈接庫
  2. Android studio建立jni工程使用動(dòng)態(tài)鏈接庫
  3. 使用動(dòng)態(tài)鏈接庫實(shí)現(xiàn)一個(gè)簡單的視頻播放

在做上面的功能的時(shí)候山孔,作為初學(xué)者懂讯,我們需要有的基礎(chǔ)知識(shí)是:linux基本功,C語言的基本功饱须,JNI的基本功域醇,Android的基本功,我相信蓉媳,本篇文章的人譬挚,這些基本功,大多數(shù)都已經(jīng)具備了酪呻。

在完成上面的功能的時(shí)候减宣,如果你從未接觸過ffmeg,或者對(duì)linux不熟悉,也不同擔(dān)心玩荠,你完全可以不求甚解的按著我的步驟一步一步的進(jìn)行下去漆腌,我們的目的是先把效果實(shí)現(xiàn),然后在對(duì)每一個(gè)功能過程逐步展開阶冈,到那時(shí)闷尿,你就會(huì)發(fā)現(xiàn)自己的不足,在惡補(bǔ)也不遲女坑,正如我們學(xué)一門語言的時(shí)候填具,總要先搞一個(gè)hello world,這案例就是我們的hello wrold.

好了閑話不多扯了匆骗,先完成第一個(gè)
準(zhǔn)備材料:

  1. Ubuntu 劳景,我這里用的是16.04
  2. VMware 12.0,如果你的電腦裝的就是Ubuntu這個(gè)就可以不用了,這里我使用的是虛擬機(jī)安裝的碉就。
  3. NDK linux 版本盟广,這里我用的是ndk-r13;
  4. 下載ffmpeg ,這里我下載的是最新的版本瓮钥,你根據(jù)自己的選擇就行了

有了以上的材料筋量,我們的工作就是烹吵,在Ubuntu上配置NDK,至于如何配置呢毛甲?很簡單年叮。打開終端輸入一下命令

sudo gedit /etc/profile

然后在文件中配置:

export NDK_HOME=/home/sivin/programs/android-ndk-r13 //這里替換成你的ndk存放路徑
export PATH=$NDK_HOME=:$PATH

下載ffmpeg,這個(gè)我們可以直接在搜索引擎上搜索ffmpeg,進(jìn)入官網(wǎng)里面提供了很多版本的下載玻募,這里我們使用的是linuxgit的方式只损,當(dāng)然你也可以下載壓縮包,然后解壓也行七咧,個(gè)人喜好跃惫。
修改Configure文件
將里面的內(nèi)容

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'

替換成

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'

下面的工作就是編譯ffmpeg了,我們?cè)?code>ffmepg的根目錄下艾栋,新建build_android.sh
然后在文件中寫入:

#!/bin/bash
make clean
export NDK=你的NDK路徑
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"

./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

然后執(zhí)行這個(gè)文件

./build_android.sh

然后靜靜等待編譯就好了爆存,
編譯完成之后,我們會(huì)發(fā)現(xiàn)蝗砾,這個(gè)目錄下多了一個(gè)名為android的目錄先较,里面存放的就是我們想要的動(dòng)態(tài)鏈接庫和頭文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悼粮,一起剝皮案震驚了整個(gè)濱河市闲勺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扣猫,老刑警劉巖菜循,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異申尤,居然都是意外死亡癌幕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門昧穿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勺远,“玉大人,你說我怎么就攤上這事时鸵⊙柚校” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵寥枝,是天一觀的道長。 經(jīng)常有香客問我磁奖,道長囊拜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任比搭,我火速辦了婚禮冠跷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己蜜托,他們只是感情好抄囚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橄务,像睡著了一般幔托。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜂挪,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天重挑,我揣著相機(jī)與錄音,去河邊找鬼棠涮。 笑死谬哀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的严肪。 我是一名探鬼主播史煎,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼驳糯!你這毒婦竟也來了篇梭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤结窘,失蹤者是張志新(化名)和其女友劉穎很洋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隧枫,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡喉磁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了官脓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片协怒。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卑笨,靈堂內(nèi)的尸體忽然破棺而出孕暇,到底是詐尸還是另有隱情,我是刑警寧澤赤兴,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布妖滔,位于F島的核電站,受9級(jí)特大地震影響桶良,放射性物質(zhì)發(fā)生泄漏座舍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一陨帆、第九天 我趴在偏房一處隱蔽的房頂上張望曲秉。 院中可真熱鬧采蚀,春花似錦、人聲如沸承二。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亥鸠。三九已至妆够,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間读虏,已是汗流浹背责静。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盖桥,地道東北人灾螃。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像揩徊,于是被迫代替她去往敵國和親腰鬼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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