Я использую готовые GStreamer 1.16.2
двоичные файлы для Android и третий учебник GStreamer в качестве основы. Я получаю rtsp
поток, закодированный с h.264
видеокодом c, включаю плагин androidmedia
в Android.mk
и хочу использовать декодер amcviddec-omxsecavcswdec
в моем конвейере. Конвейер работает с avdec_h264
, но amcviddec-omxsecavcswdec
(и amcviddec-omxgoogleh264decoder
также) повышает
Error received from element amcvideodec-omxsecavcswdec0: GStreamer encountered a general supporting library error.
, которому предшествует
GStreamer+amcvideodec: 0:00:02.408652536 0xc91dae30 ../sys/androidmedia/gstamcvideodec.c:2115:gst_amc_video_dec_set_format:<amcvideodec-omxsecavcswdec0> error: Failed to call Java method: java.lang.ClassNotFoundException: Didn't find class "org/freedesktop/gstreamer/androidmedia/GstAmcOnFrameAvailableListener" on path: DexPathList[[zip file "/data/app/org.freedesktop.gstreamer.tutorials.tutorial_3-dd5rfRvRO79qm7TICXcYkw==/base.apk"],nativeLibraryDirectories=[/data/app/org.freedesktop.gstreamer.tutorials.tutorial_3-dd5rfRvRO79qm7TICXcYkw==/lib/arm, /data/app/org.freedesktop.gstreamer.tutorials.tutorial_3-dd5rfRvRO79qm7TICXcYkw==/base.apk!/lib/armeabi-v7a, /system/lib]]
GStreamer+amcvideodec: java.lang.ClassNotFoundException: Didn't find class "org/freedesktop/gstreamer/androidmedia/GstAmcOnFrameAvailableListener" on path: DexPathList[[zip file "/data/app/org.freedesktop.gstreamer.tutorials.tutorial_3-dd5rfRvRO79qm7TICXcYkw==/base.apk"],nativeLibraryDirectories=[/data/app/org.freedesktop.gstreamer.tutorials.tutorial_3-dd5rfRvRO79qm7TICXcYkw==/lib/arm, /da
Я нашел класс GstAmcOnFrameAvailableListener
в моем предварительно скомпилированные библиотеки GStreamer, использующие grep
, так что, похоже, он где-то существует. Та же проблема возникает после сборки из источников, использующих Cerbero .
Я обнаружил ту же проблему в списке официальных рассылок , но подробного ответа нет.
Как решить проблему и использовать аппаратный декодер h.264 на Android с GStreamer?