在编译支持ffmpeg命令行的静态库时遇到了很多坑,总结修改如下:
1. 修改ffmpeg.c的main函数,因为一个程序不能有俩个main函数,我们可以改成ffmpeg_main,
2.修改exit_program(int)函数,这个函数是清理资源用的,但是在里面调用了退出进程的函数exit,导致每次执行ffmpeg命令程序都会闪退。
将exit函数注释掉。
3. 将ffmpeg_main中的exit_program改为退出线程函数,return exit_program(1);改完以后会发现并没有退出线程,所以还需要将exit_program(int ret)
av_noreturn中的av_noreturn去掉,这个是给编译器的注解。
4.在ffmpeg_clean函数中会爆野指针错误,我们需要把指针计数器清零。
5.和成视频的同名错误,即在执行完assert_file_overwrite函数之后会卡住报错already exist,所以我们要在
函数开始时先将以前的删除。
demo地址:https://github.com/zhouxiangyu666666/ZXYFFmpeg/tree/master