ffmpeg移植

一、android 平台下编译ffmpeg

1、以ffmpeg-3.02 为例

ffmpeg官网:

https://ffmpeg.org/ 

x264官网:

http://www.videolan.org/developers/x264.html

sdl官网:

https://www.libsdl.org/


2、编写编译脚本

vim built_android.sh

########################################################

#%/bin/sh

NDK=/opt/android-ndk-r9d
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86
function build_one

{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --enable-static \
    --disable-doc \
    --disable-ffserver \
    --enable-cross-compile \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
}
CPU=android

PWD=`pwd`
PREFIX=$PWD/platform/$CPU
ADDI_CFLAGS="-marm"
build_one

########################################################

3、修改脚本权限

chmod +x build_android.sh


4、修改编译之后生成库的后缀(主要是android 对库的调用只能以.so结尾,不能加载软链接库)

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)'
 
修改如下: (主要将生成的连接库版本号放在前面 ,.so放在后面)

 
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
 
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
 
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
 
SLIB_INSTALL_LINKS='$(SLIBNAME)'


5、执行脚本配置

./build_android.sh


6、编译和安装

make -j4&& make install


7、生成库就可以在android jni调用

生成库路径 platform/android


二、x86平台下编译ffmpeg

1、编译脚本

vim build_x86.sh

######################################################################

#!/bin/bash
LIB=/home/yue/video/x264/platform/x86/
function build_one
{
./configure \
    --prefix=$PREFIX\
    --enable-shared\
    --enable-gpl\
    --enable-protocols\
    --enable-parsers\
    --enable-bsfs\
    --enable-encoder=libx264\
    --disable-demuxer=libx264\
    --disable-network\
    --enable-hwaccels\
    --disable-demuxer=sbg\
    --disable-demuxer=dts\
    --disable-parser=dca\
    --disable-yasm\
    --disable-fft\
    --extra-cflags="-Os -fpic" \
    --extra-ldflags="-L$LIB/lib/" \
    $ADDITIONAL_CONFIGURE_FLAG
}
CPU=x86
PREFIX=$(pwd)/platform/$CPU
build_one
make clean
make -j4
make install

######################################################################

2、配置、编译、安装

执行如下脚本就可以在 platform/x86 生成 include  lib 和命令   
./build_x86.sh  

3、设置环境变量

 export LD_LIBRARY_PATH=/home/yue/video/ffmpeg-3.0.2/platform/x86/lib/:$LD_LIBRARY_PATH 

就可执行生成的ffmpeg  ffprobe 等命令了


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值