1

我最近一直在 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 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
4

1 回答 1

0

我暂时找到了一个可行的解决方案。但是,它并没有扩展到我希望涵盖的所有用例。我的网络摄像头可以本地生成已经编码为 jpeg 的 mjpeg。因此,您需要做的就是从源中指定要使用的输出类型,如下所示。

pipeline = Gst.parse_launch("v4l2src ! image/jpeg,framerate=30/1 , width=640,height=480 ! appsink name=sink")

这表示这仍然不能解决没有本机 jpeg 编码的相机的问题,或者我想对传入的非 jpeg 流进行转码的情况。

于 2021-01-21T19:41:33.887 回答