I'm trying to make an app that records video, but I am having a number of 
issues.
https://wiki.qt.io/Qt_5.5.0_Multimedia_Backends <- reference doc

iOS:
1. Only default recording params are configured (Yoann mentioned this last week)

Android:
1. Android actually has an X for "Video encoder settings", but these don't 
actually work in my test case. In fact setting _any_ of the parameters breaks 
the recording and gives the error: 'QMediaRecorder error: "Unable to start the 
media recorder."'

Combined:
1. The frames are not oriented correctly. I always get landscape frames even if 
the device is in portrait orientation. This means that I have to capture a 
higher quality than I otherwise would, so that I can have an equivalent level 
of detail. 99% of the video captured will be portrait.


I do not require or even want high-dev video, as I am upload time sensitive 
because the upload bandwidth is constrained. We have a minimum quality 
requirement and prefer to not capture above that because it is just work on 
Android (Nexus 6) so they also don't work. The supported*() functions don't 
return anything, so it's impossible to know the options to select from.

I'd be interested in approaches that work today (if any) as well as what it 
would take to get them working properly in the future. 

------ QML CODE ----

                function findAppropriateRate() {
                        var rates = supportedViewfinderFrameRateRanges();
                        var minRate = 100, maxRate = 0;
                        for (var i=0; i< rates.length; i++) {
                                var average = (rates[i].minimumFrameRate + 
rates[i].minimumFrameRate)/2
                                if (average < minRate) minRate = average;
                                if (average > maxRate) maxRate = average;
                                if (average > 10 && average < 30) {
                                        return average;
                                }

                        }
                        console.log("Warning: did not find appropriate 
frameRate, returning maxRate:", maxRate)
                        return maxRate;

                }

                function findAppropriateResolution() {
                        var rates = supportedViewfinderResolutions();
                        var minMp = 100, maxMp = 0;
                        var resolutions = {}
                        for (var i=0; i< rates.length; i++) {
                                var mp = rates[i].width * rates[i].height
                                resolutions[mp] = rates[i];
                                if (mp < minMp) minMp = mp;
                                if (mp > maxMp) maxMp = mp;
                                //if (mp > 300000 && mp < 1000000) { 
//somewhere between .3 and 1 megapixel
                                if (mp > 200000 && mp < 500000) { //somewhere 
between .3 and 1 megapixel
                                        return rates[i].width + "x" + 
rates[i].height
                                }

                        }
                        console.log("Warning: did not find appropriate 
resolution, returning maxMp:", maxMp, JSON.stringify(resolutions))
                        return resolutions[maxMp].width + "x" + 
resolutions[maxMp].height;

                }

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to