-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Qt is unable to get Camera parameters on Windows Surface Pro 7 #12
Comments
Now that I think about it, I don't know how Qt interacts on Surface Pro. It is also possible that Kvazzup needs to be specifically compiled for that platform to have the correct Qt libraries to get these parameters |
I found these instruction: https://doc.qt.io/qt-5/winrt-support.html If the build was built using those instructions, the camera might work better. All in all, I have to say Kvazzup releases probably don't support Windows Surface Pro/UWP at the moment. At some point later I might include the UWP builds with the release. Current build you are using is probably not compatible with UWP. |
Hi, yeah, thanks for you developing such software. I already tested quite a bit of software and the best i got so far is trueconf with VP8/H.264 with 10 Mbit/s which works with good hardware acceleration and has a good connection. So at the moment I'm searching for a program which alllows HEVC or VP9 with > 5 Mbit/s or a program with VP8/H.264 and >10Mbit/s. I already tested Jami (and also qtox, but that was really bad). But that didn't work so stable and hardware acceleration didn't seem to work. And comparing e.g. skype: that has on good quality only 1,5 Mbit/s. I really don't understand why there seems to be almost no software for peer to peer (without server) which supports a good codec (VP9 and H.265, with hardware acceleration) and custom set bitrates. Especially in this "corona time" i want to connect to people via video call, and that beeing as good as it gets. And there is so little software. Most software just offers mediocre Quality, that you can think you view the other person, but not truely HD. I really don't get it why this is so. I mean for 1 to 1 call there doesn't even need to be server there (so there is no cost argument). Program someting like this: Just set Upload speed (minus some buffer) as upload bitrate and download speed (minus some buffer) as download bitrate and video software and get super high quality with VP9 and H.265 (which many plattforms now support with hardware acceleraton). You use hevc hardware acceleration in this software, do you (or the libraries you use do)? Some info about surface pro: It's just like a normal laptop with normal Windows (only you can do some things like removing keyboard and have a touch screen and pen), there is nothing special, so I don't know what you mean by UWP. You can use UWP Apps like on any Windows 10 but you can also you "normal" programs. |
For the lack of stability, I would guess the reason is that many of the existing open-source software are very old. They have massive code bases and it may be hard to keep things stable. That may also be the reason why they are not very enthusiastic to adopt new technologies such as HEVC, because existing code base makes it difficult. A more cynical person might say their code base is bad for business reasons, so they get more consultation requests, but it's probably better not to go that far... The companies on the other hand are probably more incentivized to have total control of the users data so that is why they are not peer-to-peer. From a purely technical perspective, I'm not exactly sure why peer-to-peer is not more popular. It is probably because there are some advantages in conferencing to have a media server (mostly reduced upload bandwidth requirement for user). Another reason is probably just the simplicity of not having another kind of connection system in place and conferences are actually easier to implement using a separate server since the server handles distribution of media. Currently Kvazzup media is purely peer-to-peer and I will at least try to make the conferencing also work in a peer-to-peer fashion so it is easy for the user. The signalling (SIP) is more difficult to operate peer-to-peer, but it is possible and I think Jami tries to support this in some fashion. Kvazzup still needs a central SIP server to start the call so it can pass firewalls easily. Actually nothing in Kvazzup uses hardware acceleration for HEVC. The downside of this approach is the higher CPU usage, but the upside is better quality and lower bit rate compared to hardware acceleration. Kvazzup should be able to compete with (and hopefully beat) Skype in terms of quality and bit rate. We are a research group and the original idea of Kvazzup was to serve as a practical application using our HEVC software encoder Kvazaar and we have also develop our own RTP library called uvgRTP. The original reason why I created Kvazzup was because the existing solutions seemed like non-function behemoths of complicated code and it did not want me to start modifying them. Currently Kvazzup gives user the possibility to control everything because I haven't had the time to implement a proper system for controlling those parameters ^^'. There is no download speed though, but the rate controls of the encoders works for upload. BareSIP also support HEVC, but it is command line based. I remember that Linphone had some kind of bandwidth settings, but my experiences with Linphone have not been very good. Maybe they have improved. Not sure what is the issue here. For some reason Qt is not providing those camera parameters. Compiling on the specific platform might help, but I'm not sure. Maybe Qt multimedia just doesn't support Surface pro? This doesn't seem to directly be a Kvazzup issue, but I would of course like Kvazzup to work everywhere. Maybe at some point I will have time to use some other camera API that Qt. |
Ok, thanks for your extensive response.
Hmm, ok. That might be a problem for me. Because HEVC is even more resource-intensive than h.264 and VP8; no hardware acceleration will be a probably a problem for resolutions >= FullHD? Especially for passive cpus. But I don't know how far it can go with fast coder preset. __ It's interesting what you're telling. I would have thought it would be quite easy to make some peer to peer video call app, but that is probably very naive (like get an library for camera and one for media and codecs and one for internet transfer, even maybe all things by qt, stuck them together and voila, but that probably not so easy). But what about browsers? Browsers give good api for camera, mic and also for hardware acceleration and one could use WebRTC? (I think they use it e.g. on https://obs.ninja/ , probably also on talky but i think the last one is not open source). Also found movim using jingle ( https://prosody.im/doc/jingle ). But never tested that. (jitsi, not jitsi meet, does not support fullhd). |
Take it with a grain of salt. I'm still learning these things and I would not be surprised if I didn't know something crucial.
You are right. At this point it will probably be difficult to run high resolutions on low-end CPU with Kvazzup. Kvazzup is capable of 4K calls, but it needs decent CPU to do it. This should get better with time both in terms of how efficient Kvazzup and Kvazaar are and how fast CPUs are. As this is a research project, the focus is on the future. Of course hardware encoder is not unlimited source of quality calls either. Hardware has specific restrictions that one cannot cross where as software performance is mostly only CPU bound. I'm not an expert on this, but hardware usually has a much higher bit rate. I wouldn't be surprised if some day Kvazzup would also support hardware HEVC encoding, but at the moment it is not the most important task for me.
I don't think you are wrong. I was just speculating what could be the reasons for not having p2p calling. The problem for me has been that the existing libraries have not been very good and we have had to implement them ourselves. Especially lack of good modest size SIP implementation has taken a lot of my time.
The reason why I didn't choose WebRTC was that browsers don't support HEVC. I can't say much more on that.
Although XMPP(Jingle) can be used with SIP, there is much overlap and I probably don't need both at this point. Also prosody doesn't seem to support windows which is kind of a deal-breaker. I must thank you for bringing me all this information. It is of course sad to hear that you are having problems finding software up to you standards, but for me this means there is a need for Kvazzup. |
I've upgraded Kvazzup to Qt6 and added support for various input formats that were not supported before. I'm relatively confident that v0.13.0 fixes this issue. If there are still issues regarding video format settings, a new issue can be created. Best Regards, |
Hi, i was searching for a high quality video call program which support hevc and found this. Is this production ready to use or does this not really work? I'm using a windows surface pro 7 installed 0.09 and saw this in option (nothing selectable):
this isn't right, is it?
The text was updated successfully, but these errors were encountered: