美文网首页Android进阶FFmpeg
Android 执行 FFmpeg 命令

Android 执行 FFmpeg 命令

作者: 石先 | 来源:发表于2017-07-07 14:45 被阅读191次
    1. 编译Android 平台 FFmpeg.so 包:
      编译Android下可用的全平台FFmpeg(包含libx264与libfdk-aac)
      Android多媒体之一:编译ffmpeg
      Android - FFmpeg 编译成单so库

    2. ndk 开发环境搭建:
      Android - FFmpeg & Mac & AndroidStudio & CMake 环境搭建
      Android - FFmpeg 命令行运行方式1
      Android - FFmpeg 命令行运行方式2
      开源项目:安卓平台的 FFmpeg 命令行工具箱

    3. 解决重复执行命令行时崩溃报错的问题
      FFmpeg每次执行完命令后会调用 ffmpeg_cleanup 函数清理内存,并且会调用exit(0)结束当前进程,但是经过我们的修改,exit()的代码已经被删掉,我们在Android中自然不能结束当前进程了,所以有些变量的值还在内存中,这样就会导致下次执行的时候可能会出错。我也尝试过fork一个进程给ffmpeg执行,完事后通过 信号来进程间通信,这样管用但是很麻烦,我们其实只需要简单的重设一些变量即可。
      打开ffmpeg.c找到之前的main函数 (函数名可能被你自己改名成其他方便记忆的),然后在 return 前加上如下代码即可:

        nb_filtergraphs = 0;
        progress_avio = NULL;
    
        input_streams = NULL;
        nb_input_streams = 0;
        input_files = NULL;
        nb_input_files = 0;
    
        output_streams = NULL;
        nb_output_streams = 0;
        output_files = NULL;
        nb_output_files = 0;
    

    参考:编译Android下可执行命令的FFmpeg

    其他:动画效果Activit跳转动画之界面上某个位置 裂开上下拉伸动画跳转

    相关文章

      网友评论

      • 逸云天:感谢楼主,遇到同样的问题,按照楼主的方法解决了。

      本文标题:Android 执行 FFmpeg 命令

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