How to find QMediaPlayer Video Resolution and Aspect Ratio
-
This seems too simple, I must be overlooking something?
How do I find the native video size or aspect ratio from a video file being displayed by a QMediaPlayer?
The video Resolution, PixelAspectRatio, etc., should be in the MetaData, but I wait for MetaData Update Signals, and wait for seconds after the video .play()s, but isMetaDataAvailable() always returns false, and .availableMetaData() and .metaData(QMediaMetaData::Resolution).toSize() always return empty.
There seems to be nowhere else to get the video resolution information, or am I missing something?
I can open the video, play the video at full screen, etc.
-
You may try to use QMediaPlayer::media() to get QMediaContent and then get a list of QMediaResources. The media resource should contain resolution data if it is available from a stream or a file.
-
I tried the suggestion from andreyc using QMediaPlayer::media() - which did not work. The QMediaResources had information like URL (localFile name), but the resolution data returned 0 (unknown).
I did find an answer at http://forum.qt.io/topic/31278/solved-get-resolution-of-a-video-file-40-qmediaplayer-41/2, using QGraphicsVideoItems class property: nativeSize after the video started playing. (Note here - need to wait for the video to actually load & play after calling QMediaPlayer::play(). )