diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp index 937d34821573888720ed345f7404066c8a07c843..6877a963ef3487562253ccb9bd3880b397fa381e 100644 --- a/modules/videoio/src/cap_ffmpeg_impl.hpp +++ b/modules/videoio/src/cap_ffmpeg_impl.hpp @@ -850,6 +850,7 @@ static void ffmpeg_log_callback(void *ptr, int level, const char *fmt, va_list v static bool skip_header = false; static int prev_level = -1; CV_UNUSED(ptr); + if (level>av_log_get_level()) return; if (!skip_header || level != prev_level) printf("[OPENCV:FFMPEG:%02d] ", level); vprintf(fmt, vargs); size_t fmt_len = strlen(fmt); @@ -866,15 +867,21 @@ class InternalFFMpegRegister static void initLogger_() { - #ifndef NO_GETENV +#ifndef NO_GETENV char* debug_option = getenv("OPENCV_FFMPEG_DEBUG"); - if (debug_option != NULL) + char* level_option = getenv("OPENCV_FFMPEG_LOGLEVEL"); + int level = AV_LOG_VERBOSE; + if (level_option != NULL) + { + level = atoi(level_option); + } + if ( (debug_option != NULL) || (level_option != NULL) ) { - av_log_set_level(AV_LOG_VERBOSE); + av_log_set_level(level); av_log_set_callback(ffmpeg_log_callback); } else - #endif +#endif { av_log_set_level(AV_LOG_ERROR); }