ffmpeg日誌回調添加

如果想抓取ffmpeg日誌相關信息並作相關處理,可以用ffmpeg日誌回調

統計H264解碼錯誤

static int ffmpeg_decoder_error = 0;
static void ffmpeg_log_callback(void *ptr, int level, const char *fmt, va_list vl)
{
    if (level > av_log_get_level())
        return;
    char temp[1024];
    vsprintf(temp, fmt, vl);
    size_t len = strlen(temp);
    if (len > 0 && len < 1024&&temp[len - 1] == '\n')
    {
        temp[len - 1] = '\0';
    }

    AVClass* avc = ptr ? *(AVClass **)ptr : NULL;
    const char *module = avc ? avc->item_name(ptr) : "NULL";

    if (strstr(module, "264"))
    {
    if (strstr(temp, "error"))
    {
      ffmpeg_decoder_error++;
    }

    }
}

av_log_set_level(AV_LOG_INFO);
av_log_set_callback(ffmpeg_log_callback);

樣例
ffmpeg_decoder_error = 0;
ret = avcodec_decode_video2(c, frame, &got_picture, &pkt);
這樣可以粗略計算H264解碼失敗個數 但是不太準確
發佈了249 篇原創文章 · 獲贊 496 · 訪問量 190萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章