标签(空格分隔): 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
的目录,里面存放的就是咱们想要的动态连接库和头文件。