Dahua NetSDK Error 2: NET_SYSTEM_ERROR — сбой системных вызовов OS API
- Методы SDK возвращают
NET_SYSTEM_ERROR(код2). - Сбой создания системных потоков (pthread/CreateThread) внутри библиотеки NetSDK.
- Ошибка выделения оперативной памяти под видеодекодер или сетевой буфер.
- Падение процесса при работе под Linux (Ubuntu/Debian/CentOS) из-за отсутствия зависимостей.
1. Проверка системных зависимостей под Linux
Убедитесь, что в системе установлены базовые библиотеки C++ и SSL, требуемые библиотеками libdhnetsdk.so:
apt-get install -y libssl-dev libglib2.0-0 libstdc++6
# Проверка недостающих библиотек утилиткой ldd
ldd ./libdhnetsdk.so | grep "not found"2. Увеличение системных лимитов на файловые дескрипторы
Если приложение открывает сотни потоков с камер, увеличьте лимит открытых сокетов в /etc/security/limits.conf:
* soft nofile 65535
* hard nofile 655353. Проверка разрядности процесса и библиотек
Убедитесь, что 64-битное приложение (x86_64 / amd64) линкуется исключительно с 64-битными сборками библиотек Dahua (папка lib64), а не с 32-битными DLL/SO.
Частые вопросы (FAQ)
Что означает ошибка NET_SYSTEM_ERROR (2)?
Ошибка указывает на сбой вызова низкоуровневых функций операционной системы (Win32 API или POSIX): malloc, socket, pthread_create, CreateFile и т.д.
Почему под Linux возникает NET_SYSTEM_ERROR при старте приложения?
Чаще всего это вызвано отсутствием переменной окружения LD_LIBRARY_PATH, указывающей на директорию с зависимыми библиотеками SDK (avresample, IVS, StreamSvr).
Как правильно задать LD_LIBRARY_PATH для NetSDK?
Экспортируйте путь перед запуском: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/dahua_sdk/libs/.
Может ли нехватка RAM вызвать ошибку 2?
Да, при попытке декодировать 4K потоки H.265 видеопамять или системная RAM могут исчерпаться, приводя к NET_SYSTEM_ERROR.