导入 av 时无法使用 opencv 显示图像



导入PyAv模块时,我无法使用imshow()显示带有opencv的图像

没有PyAv模块的代码(按预期工作)

import cv2
img = cv2.imread("test_image.jpeg")
cv2.imshow('image', img)
cv2.waitKey(0)

带有导入的代码(不起作用,只是挂起)

import cv2
import av
img = cv2.imread("test_image.jpeg")
cv2.imshow('image', img)
cv2.waitKey(0)

操作系统:Linux arch 5.18.3-arch1-1#1 SMP PREEMPT_DYNAMIC 2022年6月9日星期四16:14:10+0000 x86_64 GNU/Linux

我是做错了什么,还是这是一个(未知的)问题?

所以这是一个已知的问题,这里提到了,但可以使用文章中提到的解决方法,下面是我如何做到的快速概述:

注意:在python虚拟环境中执行此操作,否则您可能会在长期运行的中遇到问题

  1. 查找PyAv使用的ffmpeg版本(目前为"ffmpeg-4.4.1-5"),并在此处下载确切的ffmpeg版本
  2. 像这样git clone --recursive https://github.com/opencv/opencv-python.git克隆python opencv github repo并运行此脚本(如果失败,因为路径'/tmp/vvendor/include不存在,只需像这样创建mkdir -p /tmp/vendor/include)
  3. 完成后,如果选择了正确的ffmpeg版本,则可以检查输出
  4. 如果一切看起来都是正确的,您可以使用以下命令make -j4构建它,并让它构建
  5. 最后cd到python_loader文件夹中,运行python3 setup.py develop,安装完成:)

您可以卸载pyav并使用重新安装它,而不必从源代码进行编译

pip install av --no-binary av

这将安装不带FFmpeg的PyAV,并默认使用系统已提供的FFmpeg(可能是OpenCV)。这个答案是由PyAV参考网站的人提出的。这是假设您已经拥有FFmpeg(可能来自OpenCV)。

相关内容

  • 没有找到相关文章

最新更新