Comments (8)
If you are willing to follow up, you may be able to isolate the DirectShow issue by trying to see if 60FPS can be selected in an application that can perform video capture with the OSS implementation.
For example, if 60FPS is selectable with OBS, then all we need to do is to check which set of APIs OBS is using. If they are using the MediaFoundation API, then the above hypothesis will be reinforced.
from flashcap.
Thank you for using FlashCap!
Maybe this camera supports 60FPS in a format that is not supported by FlashCap.
I did a test branch and made some modifications to FlashCap:
https://github.com/kekyo/FlashCap/tree/feature/52
Check out this branch, open sln and build it, then run the Avalonia sample code.
If you see an item in the format selection combo box that is Unknown
at 60FPS, then that is a possibility. Selecting that combo box item will raise an exception, but the exception message will contain a value that indicates the format (either an easy-to-understand name or a seemingly obscure value like GUID), so if you can identify this, maybe you can handle it.
throw new ArgumentException(
$"FlashCap: Couldn't use unknown pixel format: {characteristics} ({characteristics.RawPixelFormat})");
I imagine it might be some kind of YUV format that FlashCap does not support (in that case, we would need to implement a transcoder...)
from flashcap.
thanks a lot for the prompt feedback.
After some straggling with .NET Framework 4.0 Dev I was able to check out the feature/52 branch and build it.
the unknown properties are now available (see screenshot) but non of them has the 60 FPS :(
For comparison, the windows camera app options:
Could there be a general problem with DirectShow and Logitech Cameras?
from flashcap.
Interesting, and unexpected... :(
I suspect some kind of DirectShow issue, since devices that actually support 60FPS, such as the screenshot we presented, definitely enumerate 60FPS characteristics.
I assume that UWP applications (I believe Windows Camera does too) are internally using the MediaFoundation API, not the DirectShow API.
It could be that the DirectShow API is lying (somehow ignoring that particular), or it could be that the MediaFoundation API is lying (e.g., bitmap doubling to make 30 FPS look like 60 FPS when it is actually 30 FPS).
I have a plan to support the MediaFoundation API (#15 (comment)), but it has been put on the back burner because it has to be implemented from scratch...
from flashcap.
Hey, did you have any chance too see my last comment?
from flashcap.
I installed OBS and the 60 FPS option is avaiable:
effectively the recording is in 60fps:
I did some experimenting the last days with my 2nd pc wich has no usb-c/3.0 support:
With the attached stream cam I am on not able to select the 60 FPS option (neither in Windows Camer app nor in other apps)
Then I tried the the Logitech Capture application in which there was displayed the following message: "If you want to use your Logitech StreamCam with 60FPS please attach the camera to a USB 3.0 Port"
On my main pc i obviously have an usb3.0, but the 30 fps option is missing...so could it be, that the DrivetShow Api which we are using doesn't recognizes the usb3.0 support or loads by default the usb2.x driver and therefore the 60fps option is missing?
from flashcap.
Yes, and I am having trouble figuring out what is causing it... What we know at this point is:
- The characteristic information obtained from the DirectShow API has a format
Unknown
that is not supported by FlashCap.- This may be NV12, a kind of YUV, since many cameras support NV12.
- The characteristic information obtained from the DirectShow API does not provide a format that supports 60fps.
- I don't know the reason for this at all. It may be that DirectShow internally drops out formats that do not correspond to the characteristics provided by the camera.
- OBS can select 60fps. From this fact, it is possible that OBS does not use DirectShow API (It uses MediaFoundation API?)
If OBS is using MediaFoundation API, it could work if FlashCap supports MediaFoundation API. We would like to confirm that the MediaFoundation API can reliably acquire 60fps information. However, due to my lack of knowledge of the MediaFoundation API (although I have some documentation on hand in case of such a situation), I have not been able to verify this due to lack of time in the near future...
from flashcap.
In 1.10.0, supported NV12 transcoder. Maybe it can be improved in YUV format, but I believe it is probably a DS API issue. Give it a try if you are interested. This issue is closed for now.
from flashcap.
Related Issues (20)
- Capture Error event handler HOT 1
- SET the power line frequency property HOT 1
- After running StartAsync() on linux, executing StopAsync() and then StartAsync(), pixelBufferArrived will not be executed again. HOT 4
- VideoCharacteristics not detected HOT 17
- Typo in Linux device enumeration HOT 3
- Reversed logic when enumerating Linux device capabilities HOT 3
- 执行OpenAsync时发生异常 HOT 1
- Elgato CamLink 4K DirectShow Pixel Format HOT 4
- Capture works first time on Linux, but not subsequent times HOT 4
- How to do shrink memory when capturing from WebCam to WPF HOT 2
- Avalonia aot 启动失败
- Is there a camera snapshot event handler? HOT 1
- AutoPixelBufferScope set PixelBuffer to null, cause allocate new PixelBuffer for every frame HOT 3
- Possible leaks in AsyncLock HOT 1
- Desktop Screen Capture Support HOT 1
- Support for camera module/ CSIconnector on Pi Zero 2W HOT 3
- OnPixelBufferArrived can not get new YUYV buffer in v1.10.0 (v1.9.0 is ok) HOT 5
- Support for AV to USB HOT 3
- 当同时连接多个摄像头(比如6个)的时候,数据返回会缺失 (When multiple cameras are connected simultaneously (such as 6), data return will be missing) HOT 2
- Verified Capture Cards HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flashcap.