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, 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(). )

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.