> 文章列表 > ffmpeg错误总结

ffmpeg错误总结

ffmpeg错误总结

一、在c++中使用引起的语法错误

1、av_err2str 使用错误

1.1、原因:

跟C++与C语言的编译方式有关系,av_err2str被定义为了一个C语言级别的静态内联函数,有数组空间的定义和开销。C++编译时编译器存在内存方面开销和引用的冲突问题,不能通过

1.2、解决:

找到定义的头文件做以下修改

char av_error[AV_ERROR_MAX_STRING_SIZE] = { 0 };
#define av_err2str(errnum) av_make_error_string(av_error, AV_ERROR_MAX_STRING_SIZE, errnum)
ffmpeg错误总结

2、av_ts2timestr 使用错误

找到定义的头文件做以下修改

char av_ts_buff[AV_TS_MAX_STRING_SIZE] = { 0 };
#define av_ts2timestr(ts, tb) av_ts_make_time_string(av_ts_buff, ts, tb)

3、av_ts2str 使用错误

找到定义的头文件做以下修改

char av_ts_string[AV_TS_MAX_STRING_SIZE] = { 0 };
#define av_ts2str(ts) av_ts_make_string(av_ts_string, ts)

二、使用SDL_main导致main找不到入口

引用SDL.h就会报这个错误

ffmpeg错误总结

因为SDL 将main 宏定义为 SDL_main,所以会找不到main入口

ffmpeg错误总结

解决办法:

使用#undef main取消这个宏定义

ffmpeg错误总结