Android使用FFmpeg(一)--编译ffmpeg
Android使用FFmpeg(二)--Android Studio配置ffmpeg
Android使用FFmpeg(三)--ffmpeg实现视频播放
Android使用FFmpeg(四)--ffmpeg实现音频播放(使用AudioTrack进行播放)
Android使用FFmpeg(五)--ffmpeg实现音频播放(使用openSL ES进行播放)
Android使用FFmpeg(六)--ffmpeg实现音视频同步播放
Android使用FFmpeg(七)--ffmpeg实现暂停、快退快进播放linux
ffmpeg简介
在现今这个阶段,愈来愈多的app会涉及到音视频,那么学会使用ffmpeg就颇有必要了。在这个系类中将讲解如何把ffmpeg编译成动态库,以及使用ffmpeg实现音视频播放和音视频的采集。android
Linux/Ubuntu/centos都行
在windows环境下能够安装虚拟机或者购买一个云主机,做者在金山云购买的一个Ubuntu主机。vim
下载配置ndk,下载ffmpeg并解压。windows
若是你已经配置ok,请跳过这一步。
咱们打开本身的虚拟机或者云服务器而且获取到root权限。建立文件夹ndk_build并进入到文件夹中,下载ndk,并解压centos
mkdir ndk_build//新建文件夹 cd ndk_build//进入到文件夹 wget +linux版本的下载连接地址//下载ndk unzip + 压缩文件//解压
配置ndkbash
vim ~/.bashrc//进入环境变量配置 export NDKROOT=/home/ndk_build/android-ndk-r14b//配置你的安装路径 export PATH=$NDKROOT:$PATH//配置路径 :wq!//保存退出 source ~/.bashrc//执行环境变量 ndk-build//查看是否安装成功,只要不是显示ndk-build not found,则表示安装成功
下载ffmpeg并解压服务器
下载ffmpeg并解压.pngapp
wget http://ffmpeg.org/releases/ffmpeg-2.6.9.tar.gz tar -xzf ffmpeg-2.6.9.tar.gz
修改configure文件并新建android_build.sh文件,编辑android_build.shide
#!/bin/bash make clean export NDK=/home/ndk_build/android-ndk-r14b export SYSROOT=$NDK/platforms/android-9/arch-arm/ export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/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
其中NDK是你本身刚刚配置的ndk路径,SYSROOT为platforms中的路径,TOOLCHAIN为toolchains里面中的路径,依次配置好事后保存并退出。
修改configure,若是你不修改的话,编译出来事后的.so文件后面会有一串数字,没法使用,因此得修改他的命名规则。
将该文件中的以下四行:ui
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)'
编译.sh文件
···
./android_build.sh
···
当编译成功事后会在文件夹中出现android文件夹,
在lib文件夹中就有你须要的.so文件了
这样就差很少编译完成,若是你须要编译一份别人已经编译过的ffmpeg,那么请先执行./confifure --disable-yasm,而后再本身编译。
若是还没编译好可是急需的朋友能够直接下载使用。