標籤(空格分隔): FFMPEGlinux
最近在研究Android視頻播放功能,網上有不少關於視頻播放解碼的庫,可是做爲程序員的我,仍是但願能從源頭出發,學習FFMPGE天然是勢在必行了。android
網上有關FFMPGE學習的文章有不少,可是對於初學者而言,看的時候彷佛總有一點不知因此然感受,本人也是其中一個。再此,做爲一個初學者,咱們須要按着怎樣的步驟來學習FFPEG呢?本系列文章就來一塊兒記錄一下,初學者探索FFMPEG的歷程,一點一滴的走向通往大神之路。git
本片文章,個人計劃是這樣的,程序員
- 編譯出
ffmpeg
能夠爲Android使用動態連接庫- Android studio創建jni工程使用動態連接庫
- 使用動態連接庫實現一個簡單的視頻播放
在作上面的功能的時候,做爲初學者,咱們須要有的基礎知識是:linux基本功,C語言的基本功,JNI的基本功,Android的基本功,我相信,本篇文章的人,這些基本功,大多數都已經具有了。bash
在完成上面的功能的時候,若是你從未接觸過ffmeg,或者對linux不熟悉,也不一樣擔憂,你徹底能夠不求甚解的按着個人步驟一步一步的進行下去,咱們的目的是先把效果實現,而後在對每個功能過程逐步展開,到那時,你就會發現本身的不足,在惡補也不遲,正如咱們學一門語言的時候,總要先搞一個hello world
,這案例就是咱們的hello wrold
.ide
好了閒話很少扯了,先完成第一個 準備材料:學習
- Ubuntu ,我這裏用的是16.04
- VMware 12.0,若是你的電腦裝的就是Ubuntu這個就能夠不用了,這裏我使用的是虛擬機安裝的。
- NDK linux 版本,這裏我用的是ndk-r13;
- 下載ffmpeg ,這裏我下載的是最新的版本,你根據本身的選擇就好了
有了以上的材料,咱們的工做就是,在Ubuntu上配置NDK,至於如何配置呢?很簡單。打開終端輸入一下命令ui
sudo gedit /etc/profile
而後在文件中配置:搜索引擎
export NDK_HOME=/home/sivin/programs/android-ndk-r13 //這裏替換成你的ndk存放路徑 export PATH=$NDK_HOME=:$PATH
下載ffmpeg
,這個咱們能夠直接在搜索引擎上搜索ffmpeg
,進入官網裏面提供了不少版本的下載,這裏咱們使用的是linux
下git
的方式,固然你也能夠下載壓縮包,而後解壓也行,我的喜愛。idea
下面的工做就是編譯ffmpeg
了,咱們在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
而後執行這個文件
./build_android.sh
而後靜靜等待編譯就行了, 編譯完成以後,咱們會發現,這個目錄下多了一個名爲android
的目錄,裏面存放的就是咱們想要的動態連接庫和頭文件。