Как сделать так, чтобы код FFmpeg C ++ не выводил сообщения об ошибках? - PullRequest
4 голосов
/ 25 июня 2019

Я декодирую видео с использованием библиотеки C ++ FFmpeg, например:

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 ]

4 голосов
/ 25 июня 2019

В своем коде я использую av_log_set_callback(), чтобы перенаправить выходные сообщения в свой собственный файл журнала, чтобы я мог отфильтровать нежелательные сообщения перед записью их в журнал.

2 голосов
/ 26 июня 2019

Я считаю, что вам нужно av_log_get_level и av_log_set_level.
Пожалуйста, проверьте это: https://www.ffmpeg.org/doxygen/trunk/group__lavu__log.html#gae8ada5cc5722548d8698650b05207904

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...