将控制台输出发送到Visual Studio 2010

时间:2014-07-17 09:35:36

标签: visual-studio-2010 ffmpeg console window

我正在使用Visual Studio 2010 c ++开发一些自定义直接显示过滤器。我正在使用ffmpeg进行编码过程,如果我将测试作为标准控制台运行,那么任何ffmpeg错误都会显示在控制台窗口中,正如人们所预料的那样。但是主应用程序是一个没有控制台窗口的Windows应用程序。当我从ffmpeg收到错误时,我可以使用的是一个相当通用的错误返回号码,看看控制台窗口中显示的内容会很棒。

是否可以从ffmpeg获取输出到控制台窗口的输出以显示在其中一个'Studio输出窗口中。我在工具 - >选项 - >调试 - >常规中选中了“将所有输出窗口文本重定向到即时窗口”选项,但这不是正确的选项,但无论如何都不起作用。

谢谢!

戴夫

1 个答案:

答案 0 :(得分:1)

您可以使用自定义输出例程重定向ffmpeg输出:

av_log_set_callback(&FfmpegLog);

void FfmpegLog(void *ptr, int level, const char *fmt, va_list vl)
{
    static char message[8192];
    const char *module = NULL;

    if (ptr)
    {
        AVClass *avc = *(AVClass**) ptr;
        if (avc->item_name)
            module = avc->item_name(ptr);
    }
    vsnprintf_s(message, sizeof message, sizeof message, fmt, vl);
    std::cout << "[ffmpeg][" << (module ? module : "") << "][" << level << "] : " << message;
}