#python #gstreamer #nvidia #h.264 #tegra
Вопрос:
Я создаю приложение в Python3, которое внутренне использует конвейер GST для анализа потока камер с сетевого устройства в мое приложение. Камера передает потоки в формате H264 через UDP.
Это мой GST-конвейер, уже отформатированный как код python (фрагмент):
class PictureCapture:
def __init__(self):
"""Summary
set up the gst-stream in order to retrieve image from the grain-cam
"""
Gst.init(None)
self.port = UDP_PORT
self._frame = None
self.video_source = 'udpsrc port={}'.format(self.port)
self.video_codec = '! application/x-rtp, encoding-name=H264, payload=96 ! rtph264depay '
self.video_decode = '! h264parse ! omxh264dec ! videoconvert ! video/x-raw,format=(string)BGR ! videoconvert '
self.video_sink_conf = '! appsink emit-signals=true max-buffers=2 drop=true sync=false'
когда я выполняю Gst.parse (), он завершается ошибкой со следующим выводом:
GLib.Error: gst_parse_error: no element "omxh264dec" (1)
Система: Nvidia Tegra на Ubuntu 18
вывод cat /etc/nv_tegra_release:
# R32 (release), REVISION: 4.4, GCID: 23942405, BOARD: t186ref, EABI: aarch64, DATE: Fri Oct 16 19:37:08 UTC 2020
Вывод gst-launch-1.0 —версия:
gst-launch-1.0 version 1.14.5
Я следовал официальному ускоренному GSTREAMER от Nvidia
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ (https://developer.download.nvidia.com/embedded/L4T/r32_Release_v1.0/Docs/Accelerated_GStreamer_User_Guide.pdf?ZUM4dXjF4HhsTiBVKoUMGxeMk-3tA_QToaKOrIXc76g6OqnRv_SO7QJUvz3xIjgyTm2-_8cHmK5TRmL04uII2EBU8td_HM7vyySqomO6Hp-4jpRiFUBuxf0nzBzVLFzTV-a_ipZrkk6OanGEHzZjCWIbxBtJb3kFXrYmgSuUujMHBoUQ3-g)
для установки зависимостей gstreamer.