GithubHelp home page GithubHelp logo

需要增加对于部分非标的虚拟摄像头的过滤(It is necessary to increase the filtering of some non-standard virtual cameras) about usbcamera HOT 7 CLOSED

yangjieshao avatar yangjieshao commented on July 23, 2024
需要增加对于部分非标的虚拟摄像头的过滤(It is necessary to increase the filtering of some non-standard virtual cameras)

from usbcamera.

Comments (7)

secile avatar secile commented on July 23, 2024 1

@wxharry
Hello, thank you for your information.
I confirmed that obs virtual camera do not work with my library, but Microsoft Teams app is able to use obs virtual camera.
I do not know why, but In my estimation, obs virtual camera must be used with obs studio and app that uses virtual camera at a same time,
but my library is based on DirectShow, and DirectShow can not use camera at a same time from different app.
Teams may not use DirectShow, but use more modern technology, I think.

from usbcamera.

secile avatar secile commented on July 23, 2024

Hello. Thank you for your information.

I want to confirm. please let me know.

Does problem is exception happens when FindDevices()?
It is not problem that you can not use not non-standard cameras such as 'YY开播'?

In general, virtual camera has to implement IAmStreamConfig interface,
but it seems that 'YY开播' do not have the IAmStreamConfig interface.
so I think it is difficult to use 'YY开播' as a virtual camera.

from usbcamera.

yangjieshao avatar yangjieshao commented on July 23, 2024

仅仅获取 FriendlyName 是不报异常的
(Only getting FriendlyName is ok)

只有在获取 DevicePath 的时候会报异常
(An exception will be reported only when get DevicePath)

过滤并忽略'YY开播'是可接受的
(It is acceptable to filter and ignore 'YY开播')


事实上 这确实是'YY开播'在实现USB摄像头时并未按照标准实现产生的bug
(In fact, this is really a bug that 'YY开播' did not implement USB camera according to the standard)

‘YY开播’这样实现的原因可能是因为他并不想其它软件使用他的图片流
(The reason for 'YY开播' to achieve this may be that they do not want other software to use their image stream)

但是我们并不能保证所有的第三方厂商的实现都是标准的
(However, we cannot guarantee that all third-party implementations are standard)

对于那些不标准的实现,我们至少要做到不暴露异常给最终用户
(For those non-standard implementations, we should at least not expose exceptions to end users)

对于这种不标准实现,我的建议是直接过滤不显示
(For this non-standard implementation, my suggestion is to filter directly and not display)

这样用户就不会去选择使用这个不标准的摄像头
(So users will not choose to use this non-standard camera)

也就不会出现播放视频失败的现象
(So will be no failure to play video)


you can download YY开播
image

虽然 抖音'直播伴侣'可以使用'YY开播'的视频流
(Although Tiktok '直播伴侣' can use 'YY开播' video streams)

应该是抖音做了额外的开发
(It should be that Tiktok has made additional development)

直播伴侣
image

from usbcamera.

secile avatar secile commented on July 23, 2024

Hello, sorry for late reply.

To tell the truth, I couldn’t understand what is a problem.
I tried to download ‘YY开播’, but I can’t use it because I can’t read Chinese.
But, I finally understand.

You are saying that, virtual camera such as ‘YY开播’ successes FindDevices,
But do not successes GetVideoFormat and do not work correctly. So it should not be shown by FindDevices.

As to this problem, I will not filter ‘YY开播’ to disable, but let ‘YY开播’ works in default video format.

  • when calling GetVideoFormat was failed, GetVideoFormat returns special value ‘VideoFormat.Default’.
  • when you pass VideoFormat.Default to UsbCamera constructor, UsbCamera do not change video format.

If you still have this problem, could you test it?
UsbCameraIssue#25.zip

from usbcamera.

yangjieshao avatar yangjieshao commented on July 23, 2024

thanks

from usbcamera.

wxharry avatar wxharry commented on July 23, 2024

I have a related problem with the virtual camera, I installed obs on my machine and it is detected as a device but it cannot work properly.

from usbcamera.

wxharry avatar wxharry commented on July 23, 2024

I have a related problem with the virtual camera, I installed obs on my machine and it is detected as a device but it cannot work properly.

I found get DevicePath throws an error on the virtual camera which is a way to filter it out. However, it throws an error. Alternatively, you can add [PreserveSig] to the read method and compare the output to filter out virtual cameras.

from usbcamera.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.