-
编译Android 平台 FFmpeg.so 包:
编译Android下可用的全平台FFmpeg(包含libx264与libfdk-aac)
Android多媒体之一:编译ffmpeg
Android - FFmpeg 编译成单so库 -
ndk 开发环境搭建:
Android - FFmpeg & Mac & AndroidStudio & CMake 环境搭建
Android - FFmpeg 命令行运行方式1
Android - FFmpeg 命令行运行方式2
开源项目:安卓平台的 FFmpeg 命令行工具箱 -
解决重复执行命令行时崩溃报错的问题
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;
网友评论