• FFMpeg那些事——独立运行的二进制文件ffmpeg编译


    想编译一个Android可用的二进制文件(要求:支持libx264/liblamemp3)

    github资源:

        1.首先编译一个带lame库的ffmpeg

        https://github.com/aksalj/ffmpeg-android

        好了一次编译通过这个包之后你会发现多了ffmpeg、 ffmplay等二进制文件,关键是参考这边的配置文件confi.sh,这个达不到楼主的需要我们还需要libx264包

        2.先下载下面的 资源文件

        包含@x264的资源包 如果想要省事,请直接 git clone xxxx  -recursive(迭代下载所有引用资源文件)

        https://github.com/Cheers-Dev/android-ffmpeg

        3.拷贝x264包到步骤一中的根目录

         拷贝old下的config_x264.sh 和 make_x264.sh到步骤一目录并分别执行下 这样x264目录下会产生x264.a的静态文件留待下一步编译使用

        4.修改config.sh  

        --extra-ldflags=" -L${ARM_LIB} -L${MP3LAME}/lib" 修改为

        --extra-ldflags=" -L${ARM_LIB} -L${MP3LAME}/lib -L../x264"

         同理增加cflag参数: --extra-cflags=" -I../x264"

        放开libx264

        -enable libx264

        -enable statics

        -disable shared

        -disable ffmplay

        -enable ffmpeg

      ok,执行编译 如无意外您在 build/bin下面会发现 期待已久的ffmpeg大概12M左右

      注意:由于这是在win下发的博客,所以配置文件没有详细贴出,

        在这里我只是提供下我的解决思路,祝大家好运!

        

    参考文档:-qscale的用法

        https://trac.ffmpeg.org/wiki/Encode/MPEG-4

        freetype2 not fond error! (下面给出了解决方案)

        https://github.com/jdpxiaoming/ffmpeg-android

            

    安卓的用法 /data/data/com.xx.xx/ffmpeg -y -%03d.jpeg ...

        

    注意及错误处理:

      1)ERROR: libmp3lame >= 3.98.3 not found

      编译器环境为 对应的platform/aroid-9/arch-arm/usr (lib/include)

      将我们的 lame对应头文件和.a拷贝到上面的编译目录即可。

     

  • 相关阅读:
    再见了,正则表达式
    深入理解 Python 描述符
    并发-ScheduledThreadPoolExecutor
    ScheduledExecutorService用法
    常见限流算法总结
    常见集合类的复杂度
    并发-ConcurrentHashMap 1.7和1.8的区别
    并发-HashMap在jdk1.8也会出现死循环
    并发-Hashmap 1.7和1.8有哪些区别
    并发-HashMap与红黑树-todo
  • 原文地址:https://www.cnblogs.com/poe-blog/p/4269950.html
Copyright © 2020-2023  润新知