v4l2 环回在 openCV 上工作正常,但在 OBS 上输出很奇怪

v4l2 环回在 openCV 上工作正常,但在 OBS 上输出很奇怪

我是一名计算机科学学生,我正在尝试制作一个项目,将网络摄像头视频流输出为 ascii 艺术。

为此,我从 v4l2 获取图像。然后我使用 OpenCV 来解码图像(我无法找到更简单的方法来做到这一点)

然后我从 openCV mat 中获取数据,并在新的缓冲区中从我的图像创建 ascii 艺术。之后我从 v4l2 中的缓冲区发送数据,但是当我在 obs 上使用 v4l2 环回输入时,输出真的很奇怪(见图)

我尝试使用 opencv 在新垫子中输出图像,并且图像输出正确。我真的不明白发生了什么,也不明白为什么。我也尝试使用discord而不是OBS,输出完全是黑色的......

任何帮助将不胜感激。提前致谢。

(我的所有代码都可以通过 github 获得,我不确定是否应该发布它,因为这不是堆栈溢出。如果您需要它,请告诉我,我会添加一个链接)

预期输出(从 OpenCV 获得): 预期输出

OBS输出: 在此输入图像描述

答案1

为此,我从 v4l2 获取图像。然后我使用 OpenCV 来解码图像(我无法找到更简单的方法来做到这一点)

您可以使用libcaca

libcaca 是一个将图像转换为彩色 ASCII 艺术的软件库。它包括库本身以及几个程序,包括 cacaview(在终端仿真器内工作的图像查看器)和 img2txt(可以将图像转换为其他基于文本的格式)。

例如,如果您的网络摄像头是,/dev/video1此命令将显示它的实时反馈,并带有 ASCII 艺术:

ffmpeg -i /dev/video1 -pix_fmt rgb24 -f caca -

他们的主页有关于库和您可以设置的参数的更多信息。

相关内容