Toybrick

标题: Opencv error on video: gstreamer missing required plugin [打印本页]

作者: chuyee    时间: 2019-2-13 08:39
标题: Opencv error on video: gstreamer missing required plugin
$ python
Python 3.6.8 (default, Jan 31 2019, 09:06:51)
[GCC 8.2.1 20181215 (Red Hat 8.2.1-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cap = cv2.VideoCapture('chaplin.mp4')
Failed to query video capabilities: Inappropriate ioctl for device
libv4l2: error getting capabilities: Inappropriate ioctl for device
VIDEOIO ERROR: V4L: device ../GOTURN/chaplin.mp4: Unable to query number of channels
OpenCV(3.4.1) Error: Unspecified error (GStreamer: your gstreamer installation is missing a required plugin
) in handlemessage, file /builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp, line 1869
VIDEOIO(cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename)): raised OpenCV exception:

OpenCV(3.4.1) /builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:1869: error: (-2) GStreamer: your gstreamer installation is missing a required plugin
in function handlemessage

>>>

I have tried multiple video files (mp4). All have the same problem. If you couldn't reproduce the problem, I can upload my video file (although I don't think it's necessary).


作者: jefferyzhang    时间: 2019-2-13 09:05
You can find gstreamer for rockchip linux here : https://github.com/rockchip-linux/gstreamer-rockchip
作者: chuyee    时间: 2019-2-13 13:19
谢谢,方便提供一下rpm吗?
作者: jefferyzhang    时间: 2019-2-13 16:00
chuyee 发表于 2019-2-13 13:19
谢谢,方便提供一下rpm吗?

sorry,回错内容了,我们还没有gsteam的rpm包,我帮你咨询下
作者: chuyee    时间: 2019-2-15 08:54
The problem is fixed. Thanks!
作者: linuxsky    时间: 2019-2-18 23:41
chuyee 发表于 2019-2-15 08:54
The problem is fixed. Thanks!

请问怎么解决的?我按照你说的提示找不到
作者: linuxsky    时间: 2019-2-19 09:36
jefferyzhang 发表于 2019-2-13 09:05
You can find gstreamer for rockchip linux here : https://github.com/rockchip-linux/gstreamer-rockchi ...

请问这个问题怎么解决?看样子是驱动问题?
作者: jefferyzhang    时间: 2019-2-19 09:50
linuxsky 发表于 2019-2-19 09:36
请问这个问题怎么解决?看样子是驱动问题?

只是没装gstreamer而已,但是源自带的gstreamer是用cpu做编解码的,速度极其低下。
rockchip-linux的github里有结合了硬件vpu编解码的gstreamer,下下来编译安装下就可以解决问题。
作者: linuxsky    时间: 2019-2-19 10:17
jefferyzhang 发表于 2019-2-19 09:50
只是没装gstreamer而已,但是源自带的gstreamer是用cpu做编解码的,速度极其低下。
rockchip-linux的gith ...

哦哦,我用 dnf  安装了 gstreamer-* 这样也不行么? 好的那我下来编译试试。多谢
作者: linuxsky    时间: 2019-2-19 11:05
jefferyzhang 发表于 2019-2-19 09:50
只是没装gstreamer而已,但是源自带的gstreamer是用cpu做编解码的,速度极其低下。
rockchip-linux的gith ...

我刚才编译 make  install 了,发现问题还是有[attach]113[/attach]
[attach]114[/attach]

作者: jefferyzhang    时间: 2019-2-19 11:10
linuxsky 发表于 2019-2-19 11:05
我刚才编译 make  install 了,发现问题还是有

看你这log跑的还是老的gstreamer,你先百度研究下吧,我看下叫个同事试下写个帖子出来
作者: linuxsky    时间: 2019-2-19 15:38
hisping 发表于 2019-2-19 11:49
这个应该是没安装c++接口的opencv导致的,安装opencv即可
fedora 28下安装c++接口opencv方法:
        sudo dnf i ...

收到 我回试试,没空间了。。。回去吧安卓去掉。
作者: linuxsky    时间: 2019-2-21 10:26
hisping 发表于 2019-2-19 11:49
这个应该是没安装c++接口的opencv导致的,安装opencv即可
fedora 28下安装c++接口opencv方法:
        sudo dnf i ...

toybrick@MiWiFi-R2D-srv ~]$ sudo dnf install gtk2 gtk2-devel gtk2-devel-docs libgnome-devel gnome-devel-docs  zlib glib atk pango gdk-pixbuf2 gdk-pixbuf2-devel  gtk+ gtk2-devel pkgconfig python-devel python-numpydoc libavc1394 libavc1394-devel libdc1394 libdc1394-devel jasper-devel ffmpeg ffmpeg-devel openjpeg-devel libjpeg-devel libpng-devel libtiff-devel
Last metadata expiration check: 2:23:57 ago on Wed 20 Feb 2019 06:40:43 PM EST.
Package gtk2-2.24.32-2.fc28.aarch64 is already installed, skipping.
Package zlib-1.2.11-8.fc28.aarch64 is already installed, skipping.
Package atk-2.28.1-1.fc28.aarch64 is already installed, skipping.
Package pango-1.42.4-1.fc28.aarch64 is already installed, skipping.
Package gdk-pixbuf2-2.36.12-1.fc28.aarch64 is already installed, skipping.
Package pkgconf-pkg-config-1.4.2-1.fc28.aarch64 is already installed, skipping.
Package libavc1394-0.5.4-7.fc28.aarch64 is already installed, skipping.
No match for argument: ffmpeg
No match for argument: ffmpeg-devel
Error: Unable to find a match

作者: linuxsky    时间: 2019-2-22 14:48
hisping 发表于 2019-2-19 11:49
这个应该是没安装c++接口的opencv导致的,安装opencv即可
fedora 28下安装c++接口opencv方法:
        sudo dnf i ...

你好,我按照这个步骤测试了,也测试成功了,但是 python 调用 opencv 打开摄像头 ok ,打开本地视频依旧报错。。。。 希望你们可以 刷个干净固件试一下
作者: linuxsky    时间: 2019-2-22 16:21
linuxsky 发表于 2019-2-22 14:48
你好,我按照这个步骤测试了,也测试成功了,但是 python 调用 opencv 打开摄像头 ok ,打开本地视频依旧 ...

修复方法:
sudo dnf install https://download1.rpmfusion.org/ ... usion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel libdc1394-devel libv4l-devel gstreamer-plugins-base-devel gtk2-devel tbb-devel eigen3-devel gstreamer1-libav gstreamer1-plugins-base-devel cmake pkg-config swig

还是会报错,但不影响应该。
作者: 程子    时间: 2019-2-22 16:22
不用这么多。。。
  1. dnf install gstreamer1-libav
复制代码

足矣。
作者: troy    时间: 2019-2-26 16:32
本帖最后由 troy 于 2019-2-26 16:37 编辑
程子 发表于 2019-2-22 16:22
不用这么多。。。

足矣。

安装gstreamer1-libav会默认安装ffmepg,因此这种方式走的是软解,硬解方式如下:
sudo dnf clean all
sudo dnf update
sudo dnf install gstreamer-rockchip
其中gstreamer-rockchip是最近添加的,因此需要update之后才能安装,update耗时较久,请耐心等待。

作者: chuyee    时间: 2019-2-27 15:31
sudo dnf install gstreamer-rockchip


可以打开视频。不过有warning说读不到视频的channel和duration,请定位一下是什么问题。信息如下:

Failed to query video capabilities: Inappropriate ioctl for device
libv4l2: error getting capabilities: Inappropriate ioctl for device
VIDEOIO ERROR: V4L: device /home/toybrick/video.mp4: Unable to query number of channels
mpi: mpp version: Without VCS info
mpp_rt: NOT found ion allocator
mpp_rt: found drm allocator
mpp: deprecated block control, use timeout control instead
warning: GStreamer: unable to query duration of stream (/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:904)
warning: Cannot query video position: status=1 value=0 duration=-1
(/builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:952)
作者: sunzhongmeng    时间: 2019-3-26 16:09
linuxsky 发表于 2019-2-22 14:48
你好,我按照这个步骤测试了,也测试成功了,但是 python 调用 opencv 打开摄像头 ok ,打开本地视频依旧 ...

你好,这个测试步骤都是在开发板上安装的吗?我也出现无法找到ffmpeg,再往下编译opencv就会出错
作者: kiwi    时间: 2019-5-15 15:20
jefferyzhang 发表于 2019-2-19 11:10
看你这log跑的还是老的gstreamer,你先百度研究下吧,我看下叫个同事试下写个帖子出来 ...

请问一下编译安装gstreamer后,opencv需要怎样才能使用到这个gstreamer,而不是原来的没加速的gstreamer
作者: zhanglao    时间: 2019-6-24 14:39
各种方法都试过了,依然没有解决问题 ,rk3399也有这个问题,真是大坑
作者: troy    时间: 2019-6-27 16:55
zhanglao 发表于 2019-6-24 14:39
各种方法都试过了,依然没有解决问题 ,rk3399也有这个问题,真是大坑

sudo dnf install https://download1.rpmfusion.org/ ... usion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install gstreamer1-libav
这个坑不是RK3399或者gstreamer-rockchip的问题,这个问题是opencv打开视频文件,会同时去打开视频中的音频流。提示找不到plug是没有音频的解码插件,在opencv层报错。如果是不带音频的mp4文件,只靠gstreamer-rockchip是可以正常打开的。

按照以上的步骤,安装gstreamer1-libav,这个库里包含了视频和音频编解码功能。对于视频解码,由于gstreamer-rockchip的优先级比较高,会优先使用mpp硬件解码,对于音频会使用libav库提供的解码功能。这样带音频的视频文件就能正常打开了。
作者: wangxuan950    时间: 2019-7-11 09:59
jefferyzhang 发表于 2019-2-19 09:50
只是没装gstreamer而已,但是源自带的gstreamer是用cpu做编解码的,速度极其低下。
rockchip-linux的gith ...

你好,我用github的链接下载源码编译完成后依然会报同样的错误,这是怎么回事,还有用python 能调用vpu的图片裁剪缩放复制的接口吗
作者: Sean    时间: 2019-9-19 17:42
VIDEOIO ERROR: V4L: device rtsp://admin:admin12345@192.168.0.191:554/h264: Unable to query number of channels
OpenCV(3.4.1) Error: Unspecified error (GStreamer: unable to start pipeline
) in cvCaptureFromCAM_GStreamer, file /builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp, line 890
VIDEOIO(cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename)): raised OpenCV exception:

OpenCV(3.4.1) /builddir/build/BUILD/opencv-3.4.1/modules/videoio/src/cap_gstreamer.cpp:890: error: (-2) GStreamer: unable to start pipeline
in function cvCaptureFromCAM_GStreamer

Open camera error!

如果是C++出现音频音频编解码的错误应该怎么办啊??都卡了一个星期了
作者: 1881949    时间: 2020-4-30 08:47
troy 发表于 2019-6-27 16:55
sudo dnf install https://download1.rpmfusion.org/ ... usion-free-release-$(rpm -E %fedora).noarch.r ...

安装gstreamer1-libav,出现了No match for argument:gstreamer1-libav,怎么解决呢?
作者: CQQQQQQQQQQ    时间: 2021-4-13 11:01
jefferyzhang 发表于 2019-2-19 11:10
看你这log跑的还是老的gstreamer,你先百度研究下吧,我看下叫个同事试下写个帖子出来 ...

请问3399pro上面在C++里面调用videocapture打开本地视频一直报错怎么解决?
报错信息如下:
librga:RGA_GET_VERSION:3.02,3.020000
ctx=0x55ba805e90,ctx->rgaFd=3
Rga built version:version:+2017-09-28 10:12:42
[mpeg4_v4l2m2m @ 0x55ba81a780] Could not find a valid device
[mpeg4_v4l2m2m @ 0x55ba81a780] can't configure decoder
mpi: mpp version: 1614c5d4 author: Caesar Wang debian: add rules for mpp with 20191031
mpp_rt: NOT found ion allocator
mpp_rt: found drm allocator
mpp: deprecated block control, use timeout control instead




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3