美文网首页
简单易上手编译FFmpeg

简单易上手编译FFmpeg

作者: lennasu | 来源:发表于2019-05-08 16:38 被阅读0次
    1435656643643.jpg

    FFmpeg 编译简单上手

    转载注明出处lennasu

    前言:

    关于音视频开发我们需要准备的知识就是要先学习ffmpeg框架的学习,对于Android开发者而言,我们需要把FFmpeg源码编译成.so文件,导入到我们的工程中,才能引用到框架中的方法对音视频进行处理。在这方面的专家雷大佬中国传媒大学博士,大家可以访问他的博客,只可惜,天怒英才,才26岁的大佬就离开了我们。在这里致敬我们心中的大神,愿天堂没有代码。

    准备资料

    1.准备环境(linux,mac)建议不要在windows上编译,很麻烦,还需要去搭建环境,可以安装虚拟机编译。以下选择用mac系统进行编译。
    2.下载ffmpeg源码,我编译的是4.1.3版本的ffmpeg

    3.下载ndk,建议不需要下载最新版的ndk . 本文使用的r17c版本


    修改ffmpeg配置文件

    1.修改configure文件,找到下面代码
    如图:


    261557299457_.pic_hd.jpg
    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)'
    

    保存好就ok

    ndk 环境配置

    打开终端使用命令:open ~/.bash_profile  即可打开环境变量配置,到这一步应该没问题。
    

    编写脚本文件

    脚本的作用就是把ffmpeg源码打包成我们需要的.so文件,供我们的Android项目调用。

    新建一个在ffmpeg文件夹下新建android_build.sh文件。

    #!/bin/bash
    
    ADDI_CFLAGS="-marm"
    API=19
    PLATFORM=arm-linux-androideabi
    CPU=armv7-a
    #自己本地的ndk路径。
    NDK=/Users/deqiangsu/develop/ndk/android-ndk-r17c
    SYSROOT=$NDK/platforms/android-$API/arch-arm/
    ISYSROOT=$NDK/sysroot
    ASM=$ISYSROOT/usr/include/$PLATFORM
    TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
    #自己指定一个输出目录,用来放生成的文件的。
    OUTPUT=/Users/deqiangsu/develop/ffmpeg/ffmpeg-3.3.9
    function build
    {
    ./configure \
    --prefix=$OUTPUT \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=android \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
    --extra-ldflags="-marm" \
    $ADDITIONAL_CONFIGURE_FLAG
      make clean
      make 
      make install
    }
    build
    

    复制上面的脚本代码到我们新建的文件中,打开终端,到ffmpeg文件下使用命令就可以进行编译

    命令: ./android_build.sh 
    

    相关文章

      网友评论

          本文标题:简单易上手编译FFmpeg

          本文链接:https://www.haomeiwen.com/subject/dxqvoqtx.html