20.10 => 21.04 更新是否破坏了 Gstreamer 的插件?(VLC 上的 RTSP 流不起作用,而 mplayer 可以正常播放)

20.10 => 21.04 更新是否破坏了 Gstreamer 的插件?(VLC 上的 RTSP 流不起作用,而 mplayer 可以正常播放)

更新到 21.04 (hirsute) 后,我的 VLC 的 RTSP 流播放功能出现故障。我怀疑这与我的 gstreamer 插件在安装过程中出现故障有关。使用mplayer命令行运行 RTSP 流可以正常工作,而 VLC 则不行。VLC 的错误消息是:satip stream error: Failed to setup RTSP session

我不得不暂时将这些插件从 GST 插件路径中剔除,以便gst-inspect-1.0通过:

libgstnrtp.so
libgstnvcodec.so
libgstrtpmanagerbad.so
libgstrtpmanager.so
libgstrtponvif.so
libgstrtp.so
libgstsrtp.so

当我还有 20.10 时,我开始遇到一些与 gstreamer 有关的奇怪问题,我不得不设置变量GST_PLUGINS_PATH来指向/usr/lib/x86_64-linux-gnu/gstreamer-1.0;如果我将上述 .so 粘贴到该目录,我会收到以下问候语:

$ gst-inspect-1.0

(gst-plugin-scanner:21627): GLib-GObject-WARNING **: 20:43:53.798: cannot register existing type 'GstRtpSrc'

(gst-plugin-scanner:21627): GLib-GObject-CRITICAL **: 20:43:53.798: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(gst-plugin-scanner:21627): GLib-CRITICAL **: 20:43:53.798: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:21627): GStreamer-CRITICAL **: 20:43:53.798: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed

(gst-plugin-scanner:21627): GLib-GObject-WARNING **: 20:43:53.798: cannot register existing type 'GstRtpSink'

(gst-plugin-scanner:21627): GLib-GObject-CRITICAL **: 20:43:53.798: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(gst-plugin-scanner:21627): GLib-CRITICAL **: 20:43:53.798: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:21627): GStreamer-CRITICAL **: 20:43:53.798: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed
DtsGetHWFeatures: Create File Failed

(gst-plugin-scanner:21627): GLib-GObject-WARNING **: 20:43:54.960: specified class size for type 'GstNvH264Dec' is smaller than the parent type's 'GstH264Decoder' class size

(gst-plugin-scanner:21627): GLib-CRITICAL **: 20:43:54.960: g_once_init_leave: assertion 'result != 0' failed

因此,换句话说,更新至少破坏了 Gstreamer 的 RTSP 插件的引用,并且在谷歌搜索后,似乎上述错误通常与 Gstreamer 的多个版本由于某种原因重叠有关 - 例如libgstrtp.so,它存在于三个(!)不同的位置:

/snap/kde-frameworks-5-qt-5-14-core18/4/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
/snap/kde-frameworks-5-qt-5-15-core20/14/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtp.so

非常感谢大家帮助我解决这个难题。如果有人能指出什么应该是 gst-plugins 的默认目录,也许我可以从那里开始工作。

相关内容