2011-06-23 8 views
0

Я пытаюсь просмотреть видеопоток MPEG-4 с IP-камеры, который отправляется многоадресной рассылкой UDP с помощью gstreamer-java. Каждый кадр, отправленный камерой, разделен на несколько UDP-пакетов. После сборки полных кадров из UDP-пакетов я получаю последовательность I-кадров и P-кадров, представленных в виде массивов байтов. Я нажимаю каждый из этих кадров в «AppSrc», который подключается к «capsfilter», который подключен к «decodebin». Проблема заключается в следующем: gstffmpegdec.c: 2259: gst_ffmpegdec_frame: ffdec_mpeg4: ошибка декодирования (len: -1, have_data: 0). Я также пробовал следующую цепочку: apprc => capsfilter => mpeg4videoparse => decodebin => videoink. Результат был тот же. Что я должен сделать, чтобы решить эту проблему?Каков правильный способ декодирования видеопотока MPEG-4, отправленного многоадресной рассылкой?

ответ

0

Кажется, я нашел один путь, и теперь я тестирую его на стабильность. Я скомпилировал из git (git clone git: //anongit.freedesktop.org/gstreamer/gst-plugins-good) ядро ​​gstreamer, базовые, «хорошие» и «плохие» пакеты. И затем я применил плагин «xviddec», который теперь способен обрабатывать буферы с кепками «video/mpeg, mpegversion = 4».

Таким образом, описание конвейера: «mpeg4videoparse name = parser! Xviddec! Ffmpegcolorspace! Capsfilter name = outfilter», который связан с объектом AppSrc и объектом VideoComponent оболочки «gstreamer-java».

Чтобы указать путь к моим скомпилированных двоичных файлов GStreamer я прохожу следующий параметр JVM: «.

Следует отметить, что составление " "-Djna.library.path =" path_to_my_home/бен/GStreamer/Библиотека xviddec" требует установки пакета libxvidcore-dev.

 Смежные вопросы

  • Нет связанных вопросов^_^