0

我在统一中制作了一个简单的视频流应用程序。我通过统一的 WebCamTexture 类使用设备网络摄像头。我的画布中有一个 RawImage,我在其上呈现 WebCam 实时供稿,如下所示:

public RawImage image;                 
private WebCamTexture liveRec;


void Start () {

    WebCamDevice[] camDevices = WebCamTexture.devices;
    liveRec = new WebCamTexture(camDevices[camDevices.Length - 1].name);
    liveRec.requestedHeight = 1;                
    liveRec.requestedWidth = 1;              // lowest quality
    liveRec.filterMode = FilterMode.Trilinear;
    liveRec.Play();
    image.texture = liveRec;

              }

一切正常,视频运行流畅,但只有在良好的光照条件下。当我的房间变暗(低光照条件)时,视频变得非常迟钝(似乎在 25fps 左右)。我认为这是我的应用程序中的一个问题,但是当我通过 Windows 控制面板访问网络摄像头时,它也有滞后,但后来我看到了一个选项“曝光补偿”,我不知道它是什么,但是当我降低它时,视频变得更暗但再次平滑(见图) 在此处输入图像描述。现在我可以在我的应用程序中对此做些什么,如何访问和降低此参数(C#)。

我尝试过的事情:

我已经在我的 rawimage 上使用了几乎每个着色器,虽然有些似乎会使纹理变暗,但滞后仍然存在

我使用过 NatCam,但它没有在 windows 中提供完整的功能(回退到统一的实现“Webcamtexture”)

已经阅读了其他使用 DirectShow api 的问题,这对我来说似乎非常困难,并且不知道它是否可以统一使用

请帮助我,我将不胜感激!(把我当作学生而不是专业人士)

编辑:这不是特定于网络摄像头的问题,我已经在 2 台带有自己集成摄像头的笔记本电脑上测试了相同的应用程序,在低光照条件下延迟仍然存在。

4

0 回答 0