Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Android本地视频播放器开发--NDK编译FFmpeg

在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片、标题、时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获取到视频后,那么接下来就是解码视频,解码视频我使用的是ffmpeg,所以这张就是使用NDK编译手机可以使用的FFmpeg库。首先到官网http://ffmpeg.org/download.html下载最新的源码,然后在ffmpeg目录下面创建一个脚本config.sh,内容如下:NDK=/opt/android-ndk-r8d 
PLATFORM=$NDK/platforms/android-8/arch-arm/ 
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86 
LOCAL_ARM_NEON=true 
CPU=armv7-a 
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -mcpu=cortex-a8" 
PREFIX=./android/$CPU 
./configure --target-os=linux  
    --prefix=$PREFIX  
    --enable-cross-compile  
    --arch=arm  
    --enable-nonfree  
    --enable-asm  
    --cpu=cortex-a8  
    --enable-neon  
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc  
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi-  
    --nm=$PREBUILT/bin/arm-linux-androideabi-nm  
    --sysroot=$PLATFORM  
    --extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 $OPTIMIZE_CFLAGS "  
    --disable-shared  
    --enable-static  
    --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog"  
    --disable-ffmpeg  
    --disable-ffplay  
    --disable-ffprobe  
    --disable-ffserver  
    --disable-swscale  
    --disable-swresample  
    --enable-avformat  
    --enable-avcodec  
    --disable-optimizations  
    --disable-debug  
    --disable-doc  
    --disable-stripping  
    --enable-pthreads  
    --disable-yasm  
    --enable-zlib  
    --enable-pic  
    --enable-small 
 
make clean 
make  -j4 install 
 
$PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o 
 
$PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -soname libffmpeg-neon.so -shared -nostdlib  -z noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg-neon.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a -lc -lm -lz -ldl -llog  --warn-once  --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a 注意上面的NDK要换成你本地的路径。这个脚本我是启用neon的,所以只能运行在有neon的手机上,如果想要运行到非neon的手机上,则需要去掉neon特性。然后执行这个脚本,就会生成libffmpeg-neon.so在下一张中会使用ffmpeg解码视频文件中音频。FFmpeg 的详细介绍:请点这里
FFmpeg 的下载地址:请点这里推荐阅读:Linux下编译FFmpeg之下载源文件并编译 http://www.linuxidc.com/Linux/2012-02/54565.htmLinux 编译升级 FFmpeg 步骤 http://www.linuxidc.com/Linux/2013-08/88190.htmCentOS 5.6 上安装 FFMPEG http://www.linuxidc.com/Linux/2011-09/42793.htm在Ubuntu下安装FFmpeg http://www.linuxidc.com/Linux/2012-12/75408.htm