Anaconda Gstreamer Gst packge 缺少“jpegenc”
Posted
技术标签:
【中文标题】Anaconda Gstreamer Gst packge 缺少“jpegenc”【英文标题】:Anaconda Gstreamer Gst packge lacking "jpegenc" 【发布时间】:2021-01-20 21:00:48 【问题描述】:我最近在 python 中使用 gstreamer。我在 anaconda 虚拟环境下工作。
我遇到了一个问题,jpegenc 似乎是一个不可访问的元素。gst_parse_error: no element "jpegenc" (1)
根据要求,整个错误。
File "---/gstreamer_test.py", line 15, in <module>
pipeline = Gst.parse_launch("v4l2src ! video/x-raw, framerate=30/1 , width=640,height=480 ! jpegenc ! appsink name=sink")
gi.repository.GLib.Error: gst_parse_error: no element "jpegenc" (1)
Gst 检查确认在 anaconda 环境中 jpegenc 未列出。这表示如果我停用 anaconda 环境,正常命令行 gst 检查可以找到 jepgenc。
有人知道在 anaconda 中快速修复 jepgenc 的方法吗?宁愿不从源代码构建。
Python 版本
Python 3.8.6 | packaged by conda-forge
蟒蛇版
conda 4.9.2
软件包版本
gst-plugins-base 1.14.5 h0935bb2_2 conda-forge
gst-plugins-good 1.14.5 h08bb679_2 conda-forge
gstreamer 1.18.3 h3560a44_0 conda-forge
【问题讨论】:
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)(不是注释)。还有其他有用的信息。 【参考方案1】:目前我已经找到了一个可行的解决方案。但是,它并没有扩展到我希望涵盖的所有用例。我的网络摄像头可以本地生成已经编码为 jpeg 的 mjpeg。因此,您需要做的就是从源中指定要使用的输出类型,如下所示。
pipeline = Gst.parse_launch("v4l2src ! image/jpeg,framerate=30/1 , width=640,height=480 ! appsink name=sink")
这表示对于没有原生 jpeg 编码的相机或我想对传入的非 jpeg 流进行转码的情况,这仍然不能解决问题。
【讨论】:
我已经不再使用 anaconda 了。进行直接安装时似乎不会出现此问题。我已切换到 Docker 进行环境隔离。无论如何,它更接近我的生产环境。以上是关于Anaconda Gstreamer Gst packge 缺少“jpegenc”的主要内容,如果未能解决你的问题,请参考以下文章
使用 gstreamer 和 gst-launch 循环播放视频?
GStreamer-CRITICAL **:gst_element_get_state:Opencv 中的断言“GST_IS_ELEMENT(元素)”失败错误