ffmpeg都是用AV_LOG输出调试日志的,但是在默认的MFC或windows应用是不会有日志输出的。
只有在初始化的时候创建一个控制台窗口,然后将stderr和stdout都在这个窗口输出,就可以了,下面是实现代码。
需要控制台的时候,只要增加_DEBUG_CONSOLE定义,请在应用初始化的时候,执行这个函数。在win10系统,visual stduio 2017下面运行通过。
void InitConsole()
{
#ifdef _DEBUG_CONSOLE
AllocConsole();
AttachConsole(GetCurrentProcessId());
freopen("CON", "w", stdout);
freopen("CON", "w", stderr);
#endif
}
下面是测试效果:
av_log_set_level(AV_LOG_VERBOSE);
av_log(NULL, AV_LOG_VERBOSE, "this is AV_LOG_VERBOSE\n");
av_log(NULL, AV_LOG_DEBUG, "this is AV_LOG_DEBUG\n");
av_log(NULL, AV_LOG_INFO, "this is AV_LOG_INFO\n");
av_log(NULL, AV_LOG_WARNING, "this is AV_LOG_WARNING\n");
av_log(NULL, AV_LOG_ERROR, "this is AV_LOG_ERROR\n");
av_log(NULL, AV_LOG_FATAL, "this is AV_LOG_FATAL\n");
下面是输出内容,但是好像没有DEBUG信息,算了,暂时先不管了。够用就可以。