jjy456 发表于 2024-10-7 02:20:31

求教,关于Deep Live Cam的问题。

这里图片换的时候,可以正常换出来。

但是使用到obs里面,点live就报错,帮我看一下,帮忙解决一下问题,可以用金币答谢。






言小牛 发表于 2024-10-20 10:40:46

从你提供的截图来看,出现了多个错误,主要分为两个部分:

OpenCV错误:

cv::obSensor::getStreamChannelGroup Camera index out of range
ffmpeg: Failed to initialize VideoCapture
cv::VideoCapture VIDEOIO(CV_IMAGES): raised OpenCV exception: can't find starting number in the name of file

这些错误表明:

摄像头的索引值超出了范围,可能是你请求的摄像头设备未找到,或者设备编号不正确。你可以尝试检查摄像头的连接或者使用不同的摄像头索引(例如 cv2.VideoCapture(0))。
FFMPEG无法初始化视频捕捉功能,可能与编解码器或文件格式相关,检查FFMPEG安装或者尝试不同的视频输入源。
OpenCV在加载图片序列时无法找到文件名中的起始数字,可能是输入文件名格式不正确,检查你的文件名是否满足所需的命名格式(如image_0001.png)。
Tkinter及Numpy错误:

AttributeError: 'NoneType' object has no attribute '__array_interface__'
这个错误发生在 fromarray 函数中,表明传递给 Image.fromarray() 的数据是 NoneType。这意味着你的 target_frame 变量在调用 Image.fromarray() 时为空。可能原因包括:

target_frame 没有正确捕捉到摄像头数据或图像帧。
代码中某些部分未能正确返回图像数据。
解决方法:

摄像头索引超出范围:

检查你的代码中摄像头的索引是否正确。如果你有多个摄像头,尝试使用 cv2.VideoCapture(0) 或其他索引值。
FFMPEG初始化失败:

确保你已经正确安装了 OpenCV 和 FFMPEG,可以使用以下命令重新安装:
bash
pip install opencv-python-headless
pip install opencv-python ffmpeg-python
检查是否能通过 OpenCV 独立读取视频文件或摄像头。
Numpy的NoneType问题:

在调用 Image.fromarray(target_frame) 之前,确保 target_frame 不是 None。可以通过打印或添加调试语句检查它的值:

if target_frame is None:
    print("Error: target_frame is None")
else:
    img = Image.fromarray(target_frame)

通过这些步骤,应该能够帮助你排查和解决这个问题。

ccggff 发表于 2024-10-22 17:23:27

厉害,帮你推顶

452487334 发表于 2024-10-28 18:03:52

厉害,帮你推顶

huhu587 发表于 2024-12-12 00:14:15

还是大佬多啊

零碎的海 发表于 2025-2-8 14:44:49

6666顶你

零碎的海 发表于 2025-2-8 14:45:09

顶顶顶 上一楼

orcseerszm 发表于 2025-2-26 14:35:53

up up up up

justinwd 发表于 2025-3-8 07:37:56

1111111111111111111111111111111

lxcbxf 发表于 2025-3-10 00:47:16

基本上是以下几个问题:
首先就是二楼提到的摄像头索引问题
报错信息中 Camera index out of range 表明摄像头索引超出范围。这意味着 OBS 在尝试访问摄像头设备时,使用的索引值可能不正确。可能有这样几种情况:
1、摄像头没有正确连接:如果摄像头没有正确连接到计算机,OBS 可能无法识别该设备,从而导致索引错误。你可以检查摄像头的连接状态,另外还可以看看数据线有没有断,随便用可以启动摄像头的软件测试一下就可以了。
2、多个摄像头设备冲突:如果你的计算机连接了多个摄像头,OBS 默认的索引值可能无法对应到你想要使用的摄像头。你可以在 OBS 的设置中手动选择正确的摄像头设备试试。
其次是编解码器问题,这个二楼也提到了
Could not find decoder for codec id=61 说明 OBS 无法找到特定编解码器来处理视频流。这可能是由于以下原因:
1、编解码器缺失:系统中可能缺少必要的编解码器,导致 OBS 无法对视频进行解码。你可以尝试安装常见的编解码器包,如 LAV Filters 或 K-Lite Codec Pack 。
2、编解码器版本不兼容:已安装的编解码器版本可能与 OBS 不兼容。你可以尝试更新编解码器到最新版本,或者回退到与 OBS 兼容的版本。
此外,还有一个视频文件路径问题
错误信息中已经明确提到API:IMAGES: can't find starting number (in the name of file): F:/dicm/output.png 提示 OBS 在处理图像文件时,无法找到文件路径或文件名中的起始编号。这个意思就是说你的路径 F:/dicm/output.png可能不存在。你检查一下是不是这样,如果是这样就重新把这个输出图片拷一下。
额,小概率还可能是权限设置问题,你看一下OBS是否有读取和写入的权限。
还有就是代码逻辑问题
AttributeError: 'NoneType' object has no attribute 'array_interface' 表明在代码中尝试访问一个 None 对象的 array_interface 属性,这通常是由于代码逻辑错误导致的,你检查一下代码中 target_frame 的赋值逻辑吧
页: [1] 2
查看完整版本: 求教,关于Deep Live Cam的问题。