ffmpeg编译 (3.3版本) 以及 命令行工具的集成
2017-05-24 16:03
369 查看
详细的说明请参考资源文件:
http://download.csdn.net/detail/feixiangsmile/9827932?locationNum=9&fps=1
此文件主要内容为:ffmpeg的编译过程详解,ffmpeg命令行工具在android 上的移植,通过ndk-build或者cmake方式在android studio2.2,ndk14(官网下载android studio2.2,然后通过studio上sdk下载ndk-bundle)构建工程项目。使用的ffmpeg是3.3版本,目前为最新的(现在是2017年4月27日)。
也有部分网友下载使用了,但是发现只能执行一次,再次执行会闪退,经过调试后对此问题的bug修复如下:
在ffmpeg.c文件中的
ffmpeg_cleanup函数中,需要增加以下代码(否则,你的android下的移植,在执行一次转换后,如果再次执行转换应用会崩溃。原因在于这些都是全局变量,ffmpeg命令行的此demo是一个应用,每次应用执行一次后此应用就退出了,下次再次执行时仍然是初始状态的值。而对于我们的android下的移植,第二次再执行时,这些变量是上次执行后的值,不是初始状态值)
另外,
int ffmpegmain(int argc, char **argv)(此前是ffmpeg.c中的main函数),在此函数的末尾exit_program(received_nb_signals ? 255 :main_return_code);之前增加
代码,这个函数是用于把转换后的文件立即同步写到存储介质上。(因为转换结束后,文件数据实际还没完全立即写到介质上)
http://download.csdn.net/detail/feixiangsmile/9827932?locationNum=9&fps=1
此文件主要内容为:ffmpeg的编译过程详解,ffmpeg命令行工具在android 上的移植,通过ndk-build或者cmake方式在android studio2.2,ndk14(官网下载android studio2.2,然后通过studio上sdk下载ndk-bundle)构建工程项目。使用的ffmpeg是3.3版本,目前为最新的(现在是2017年4月27日)。
也有部分网友下载使用了,但是发现只能执行一次,再次执行会闪退,经过调试后对此问题的bug修复如下:
对于cmdutils.c
void exit_program(int ret) { if (program_exit) program_exit(ret); exit(ret); } 修改为 int exit_program(int ret) { if (program_exit) //相对于那个文件中,少了这一句 program_exit(ret);//相对于那个文件中,少了这一句 return ret; }
在ffmpeg.c文件中的
ffmpeg_cleanup函数中,需要增加以下代码(否则,你的android下的移植,在执行一次转换后,如果再次执行转换应用会崩溃。原因在于这些都是全局变量,ffmpeg命令行的此demo是一个应用,每次应用执行一次后此应用就退出了,下次再次执行时仍然是初始状态的值。而对于我们的android下的移植,第二次再执行时,这些变量是上次执行后的值,不是初始状态值)
nb_input_streams = 0; nb_input_files = 0; nb_output_streams = 0; nb_output_files = 0; nb_filtergraphs = 0;
另外,
int ffmpegmain(int argc, char **argv)(此前是ffmpeg.c中的main函数),在此函数的末尾exit_program(received_nb_signals ? 255 :main_return_code);之前增加
sync();
代码,这个函数是用于把转换后的文件立即同步写到存储介质上。(因为转换结束后,文件数据实际还没完全立即写到介质上)
相关文章推荐
- 基于最新版本ffmpeg3.2.x的编译和集成
- ffmpeg3.3 编译 android 系统版本 32位 和64 位 动态库
- 在windows下编译FFMPEG-最新2009版本
- 在Visual Studio中集成使用 Qt Opensource 版本 ||| 在 QtCreator 使用 VC 编译调试
- Xcode4.2、iOS各版本以及ARMv6、ARMv7编译架构介绍
- havlenapetr,ffmpeg 播放器 编译、以及bug修改
- windows系统下编译最新版本ffmpeg
- 在Visual Studio中集成使用 Qt Opensource 版本 ||| 在 QtCreator 使用 VC 编译调试
- 编译ios版本的ffmpeg0.11.1
- 在windows下编译FFMPEG-最新2009版本
- ffmpeg windows版本交叉编译方法
- ios: ffmpeg-0.9.2 xcode4.3.2 IOS5.1 真机调试编译过程以及Mac OSX10.7.3安装 gcc和make
- Linux下快速静态编译Qt以及Qt动态/静态版本共存
- wince版本ffmpeg的编译 终篇
- wince版本ffmpeg的编译 第四篇
- 在windows下编译FFMPEG-最新2009版本
- 在windows下编译FFMPEG-最新2009版本
- wince版本ffmpeg的编译 第三篇
- Boost的release版本的编译,以及一个getruntimeclass的错误分析
- 在windows下编译FFMPEG-最新2009版本