Android本地视频播放器开发--NDK编译FFmpeg

在Android本地视频播放器开发中的搜索本地视频章节中,我们能够搜索本地视频并且显示每个视频的图片、标题、时间长度,当然如果需要添加其他的例如视频的长度和宽度可以使用Video类中的方法,既然我们获取到视频后,那么接下来就是解码视频,解码视频我使用的是ffmpeg,所以这张就是使用NDK编译手机可以使用的FFmpeg库。

首先到官网http://ffmpeg.org/download.html下载最新的源码,然后在ffmpeg目录下面创建一个脚本config.sh,内容如下:

[plain] view plain copy
  1. NDK=/opt/android-ndk-r8d  
  2. PLATFORM=$NDK/platforms/android-8/arch-arm/  
  3. PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86  
  4. LOCAL_ARM_NEON=true  
  5. CPU=armv7-a  
  6. OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -mcpu=cortex-a8"  
  7. PREFIX=./android/$CPU  
  8. ./configure --target-os=linux \  
  9.     --prefix=$PREFIX \  
  10.     --enable-cross-compile \  
  11.     --arch=arm \  
  12.     --enable-nonfree \  
  13.     --enable-asm \  
  14.     --cpu=cortex-a8 \  
  15.     --enable-neon \  
  16.     --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \  
  17.     --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \  
  18.     --nm=$PREBUILT/bin/arm-linux-androideabi-nm \  
  19.     --sysroot=$PLATFORM \  
  20.     --extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 $OPTIMIZE_CFLAGS " \  
  21.     --disable-shared \  
  22.     --enable-static \  
  23.     --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog" \  
  24.     --disable-ffmpeg \  
  25.     --disable-ffplay \  
  26.     --disable-ffprobe \  
  27.     --disable-ffserver \  
  28.     --disable-swscale \  
  29.     --disable-swresample \  
  30.     --enable-avformat \  
  31.     --enable-avcodec \  
  32.     --disable-optimizations \  
  33.     --disable-debug \  
  34.     --disable-doc \  
  35.     --disable-stripping \  
  36.     --enable-pthreads \  
  37.     --disable-yasm \  
  38.     --enable-zlib \  
  39.     --enable-pic \  
  40.     --enable-small  
  41.   
  42. make clean  
  43. make  -j4 install  
  44.   
  45. $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o  
  46.   
  47. $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解码视频文件中音频。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值