Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
NET_NO_RECORD_FOUND (25) IP-Телефония и СКУД

Dahua NetSDK Ошибка 25: NET_NO_RECORD_FOUND — Записи не найдены

Обновлено: 24.08.2026  ·  Официальная база знаний

Сбои при поиске или воспроизведении архивного видео:

  • Функции CLIENT_QueryRecordFile или CLIENT_FindFile возвращают 0 найденных файлов с ошибкой 25.
  • Воспроизведение по времени (PlayBackByTime) не стартует, хотя в локальном интерфейсе NVR архив отображается.
  • Синхронный поиск по нескольким каналам возвращает пустой список.

Код NET_NO_RECORD_FOUND (25) сообщает, что за указанный временной интервал на выбранном канале NVR/IPC отсутствуют видеозаписи, соответствующие заданному типу потока или фильтру событий.

1. Проверка временных зон и формата времени (Timezone / UTC / DST)

Самая распространенная ошибка — расхождение локального времени ПК и времени регистратора. NetSDK ожидает время в формате структуры NET_TIME без учета локального смещения ПК, если не включен UTC-режим:

NET_TIME stStart = {0};
stStart.dwYear = 2025;
stStart.dwMonth = 5;
stStart.dwDay = 20;
stStart.dwHour = 0;
stStart.dwMinute = 0;
stStart.dwSecond = 0;

NET_TIME stEnd = stStart;
stEnd.dwHour = 23;
stEnd.dwMinute = 59;
stEnd.dwSecond = 59;

int nMaxCount = 500;
int nFindCount = 0;
NET_RECORDFILE_INFO fileList[500];

BOOL bRet = CLIENT_QueryRecordFile(
    lLoginID, 
    nChannelId, 
    RECORD_FILE_TYPE_ALL, // Тип: Все записи (по расписанию + тревожные)
    &stStart, 
    &stEnd, 
    NULL, 
    fileList, 
    sizeof(fileList), 
    &nFindCount, 
    5000, 
    FALSE
);

if (!bRet || nFindCount == 0) {
    DWORD dwErr = CLIENT_GetLastError(); // Код 25
}

2. Фильтрация по типам записи (Record Types)

  • Если постоянная запись отключена, а ведется запись только по детекции движения (MD) или аналитике (IVS), поиск с фильтром RECORD_FILE_TYPE_REGULAR (обычная запись) вернет ошибку 25. Используйте RECORD_FILE_TYPE_ALL (значение 0) или RECORD_FILE_TYPE_MOTION.
  • Проверьте, какой поток архивировался: Основной (Main) или Дополнительный (Sub).

3. Проверка индексации жестких дисков NVR

Если на NVR производилась замена HDD или сбой питания, файловая система DHFS может требовать переиндексации. Проверьте статус дисков через CLIENT_QueryStorageState.

Практический опыт инженера: Перед поиском всегда синхронизируйте время: вызовите CLIENT_QueryDeviceTime, получите точное время NVR и скорректируйте параметры поискового запроса относительно часов регистратора.

Частые вопросы (FAQ)

Почему через SmartPSS видео есть, а SDK возвращает 25?

SmartPSS использует интеллектуальный запрос по таймлайну (QueryRecordTime), запрашивающий минутные срезы занятости, а не прямой список файлов.

Как нумеруются каналы при поиске архива?

В большинстве функций Dahua каналы нумеруются с 0 (Channel 0 = 1-й физический вход NVR).

Влияет ли переход на летнее время (DST) на поиск записей?

Да, при активном DST временной сдвиг в 1 час может приводить к запросу интервала, в котором физически еще нет записей.

Какой API использовать вместо устаревшего CLIENT_QueryRecordFile?

Рекомендуется использовать новый асинхронный интерфейс поиска: CLIENT_FindFileEx + CLIENT_FindNextFileEx.