如何使FFmpeg C ++代码不输出错误消息?

时间:2019-06-25 19:12:14

标签: c++ ffmpeg

我正在使用FFmpeg的C ++库对视频进行解码,如下所示:

AVPacket* avPacket = av_packet_alloc();
if (!avPacket) std::cout << "av packet error" << std::endl;
int result = avcodec_send_packet(avCodecContext, avPacket);
    if (!result) {
        for ( ; !result ; ) {
            result = avcodec_receive_frame(avCodecContext, avFrame);
            if (!result) {
            ...

它可以工作,但是有时FFmpeg遇到有问题的帧并发出以下消息:

[h264 @ 0x7fd3bc2c4b00] no frame!
[h264 @ 0x7fd3bc2c4b00] no frame!
[h264 @ 0x7fd3bc2c4b00] no frame!

是否可以关闭这些消息?我看不到任何明显的方法。

2 个答案:

答案 0 :(得分:4)

在我的代码中,我使用av_log_set_callback()将输出消息重定向到我自己的日志文件,因此我可以在将不需要的消息写入日志之前过滤掉这些消息。

答案 1 :(得分:2)

我相信您需要的是av_log_get_levelav_log_set_level
请检查以下内容:https://www.ffmpeg.org/doxygen/trunk/group__lavu__log.html#gae8ada5cc5722548d8698650b05207904