#docker #dependencies #gstreamer #nvidia #shared-objects
#докер #зависимости #gstreamer #nvidia #общие объекты
Вопрос:
(Справочная информация: в контейнере docker на плате NVidia Jetson TX2 я распаковал архив NVidia Linux для Tegra, который содержит множество драйверов и общих объектных файлов, некоторые из которых предоставляют фабрики элементов GStreamer, которые производят элементы, которые я использую в своем конвейере GStreamer. Я пытаюсь запустить конвейер в контейнере docker.)
Однако в моем конвейере GStreamer (на этой плате Tegra) есть элемент с именем ‘omxh264enc’, который я не смог создать.
Я поместил соответствующий ‘libnvomx.so ‘в моей папке драйверов, которая находится в экспортированных путях GST_PLUGIN_PATH и LD_LIBRARY_PATH.
ldd -r не показывает никаких отсутствующих библиотек для libnvomx.so
ОДНАКО, когда я пытаюсь запустить конвейер, вывод включает
WARN omx gstomx.c:2826:plugin_init: Failed to load configuration file: Valid key file could not be found in search dirs (searched in: /root/.config:/etc/xdg as per GST_OMX_CONFIG_DIR environment variable, the xdg user config directory (or XDG_CONFIG_HOME) and the system config directory (or XDG_CONFIG_DIRS)
INFO omx gstomx.c:2831:plugin_init: Using default configuration
ERROR omx gstomx.c:2894:plugin_init: Core '/usr/lib/aarch64-linux-gnu/tegra/libnvomx.so' does not exist for element 'omxh264enc'
WARN GST_PLUGIN_LOADING gstplugin.c:526:gst_plugin_register_func: plugin "/gst_1.8.3/libs/gstreamer-1.0/libnvomx.so" failed to initialise
и когда я использую GST_DEBUG = 3 gst-inspect-1.0 libnvomx.so , libnvomx.so занесен в черный список.
Plugin Details:
Name libnvomx.so
Description Plugin for blacklisted file
Filename /gst_1.8.3/libs/gstreamer-1.0/libnvomx.so
Version 0.0.0
License BLACKLIST
Source module BLACKLIST
Binary package BLACKLIST
Origin URL BLACKLIST
Я скопировал libnvomx.so в /usr/lib/aarch64-linux-gnu/tegra, но это ничего не изменило (вероятно, потому, что libnvomx занесен в черный список).
Я не знаю, где найти файл gstomx.conf, где, возможно, я могу изменить путь /usr/lib/aarch64-linux-gnu/tegra/libnvomx.so к моей указанной папке драйверов (/gst_1.8.3/ libs/gstreamer-1.0/). Я использовал ‘find’ в / etc и некоторых других папках, но не нашел его (на самом деле я не нашел папку .config в системе).
(Есть также другие плагины с отсутствующими символами, nvidia_drv.so с неопределенным набором таймеров символов и libglx.so с неопределенным символом ServerClient. Я хотел бы узнать, что предполагается для предоставления этих символов? Но это не (прямые) зависимости libnvomx.so )
Итак, как я могу инициализировать / разблокировать список libnvomx.so значит, я могу использовать ‘omxh264enc’? Нужно ли мне найти / создать файл конфигурации gstomx или я могу заставить его работать с конфигурацией по умолчанию? Я где-то читал, что может быть решение с использованием ‘символической ссылки’, но на данный момент я не знаком с тем, что это такое или как это работает.
Дайте мне знать, если вам нужна дополнительная информация, спасибо.