Android进阶FFmpeg

Android 执行 FFmpeg 命令

2017-07-07  本文已影响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跳转动画之界面上某个位置 裂开上下拉伸动画跳转

上一篇下一篇

猜你喜欢

热点阅读