Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Can't get QML to playback .mp4 videos
Forum Updated to NodeBB v4.3 + New Features

Can't get QML to playback .mp4 videos

Scheduled Pinned Locked Moved QML and Qt Quick
10 Posts 4 Posters 8.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mclaus
    wrote on last edited by
    #1

    Hello - QML newbie here. I am attempting to to create a trivial app for playback of video files. The code I have works fine for .wmv files, but when I try to playback an .mp4 file, nothing plays. Screen stays black.

    I am using Qt 5.2 running on Windows 7. I can playback the .mp4 files with no problem in Windows Media Viewer, so I believe I have the right codecs installed. Qt does not report any errors and the video component reports that it is playing when I query it's status. My code as follows. Any ideas what I need to do?

    @
    import QtQuick 2.2
    import QtMultimedia 5.0
    import QtQuick.Controls 1.1
    import QtQuick.Dialogs 1.1

    Rectangle {
    width: 800
    height: 600
    color: "black"

    FileDialog {
        id:  fbrowser
        title:  "Please select a video file"
    }
    
    Row {
        id:  buttonRow
        
        Button {
            id:  goButton
            text: "Start"
            onClicked:  {
                videoPlayer.source =  videoFileName.text;
                videoPlayer.play();
            }
        }
        
        Button {
            id: stopButton
            text: "Stop"
            onClicked: {videoPlayer.stop(); }
        }
        
        Button {
            id:  chooseFileButton
            text: "Select Video File..."
            onClicked: {fbrowser.open();}
        }
        
        TextField {
            id:  videoFileName
            width: 450
            text:  fbrowser.fileUrl
        }
    }
    
    Rectangle {
        id:  videoRect
        
        anchors {left: parent.left; top: buttonRow.bottom; topMargin: 5; right:  parent.right; bottom:  parent.bottom}
        color:  "transparent"
        
        Video {
            id: videoPlayer
            focus: true
            anchors.fill: parent
        }
    }
    

    }

    @

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mclaus
      wrote on last edited by
      #2

      Update*

      I've continued to play around with this today. Oddly, I've found that if I compile my project using MSVS2012 32 bit, it loads and plays the .mp4 files just fine. But if I compile using the mingw 32 bit compiler, I cannot play .mp4 files. Any ideas why that would be true?

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mclaus
        wrote on last edited by
        #3

        I'm continuing to learn a little more about this. There seem to be a number of differences in performance and behavior between the mingw and the msvc compiler when it come to the MediaPlayer component in QML. I am attempting to place a string of small videos in a PathView component, and allow the user to scroll to one to play it. Auto repeat of the video via the "loops: Animation.Infinite" property works OK in msvc but appears to have no effect in mingw. The pathView in general behaves much better (scolls faster & more smoothly) in mingw. It also crashes unpredictably in msvc but not in mingw.

        Does anybody really understand the underlying differences in the MediaPlayer implementations with the two compilers?

        Gotta say - I'm a little dissapointed that nobody is responding to these posts - it doesn't seem to bode well for the open source support of Qt as a professional development tool.

        1 Reply Last reply
        0
        • D Offline
          D Offline
          Duff
          wrote on last edited by
          #4

          Hi mclaus,

          I noticed "here":http://qt-project.org/wiki/Qt-5-on-Windows-ANGLE-and-OpenGL that you can install on windows with either opengl or Angle. The note says that if you want to use QtMultimedia you should use Angle. Maybe that will help?

          --Duff

          1 Reply Last reply
          0
          • D Offline
            D Offline
            Duff
            wrote on last edited by
            #5

            Interestingly, The document states that opengl is required to work with Qt Quick and also that Angle is required to work with QtMutimedia. So, it looks like you may be out of luck for now since you are writing QML with QtMultimedia.

            --Duff

            1 Reply Last reply
            0
            • D Offline
              D Offline
              Duff
              wrote on last edited by
              #6

              on the other hand there is "this":https://blog.qt.digia.com/blog/2012/10/24/graphics-on-windows-from-a-different-angle/ ... It's giving me a headache :-)

              --Duff

              1 Reply Last reply
              0
              • JKSHJ Offline
                JKSHJ Offline
                JKSH
                Moderators
                wrote on last edited by
                #7

                Hi,

                This page should clarify the situation a bit: http://qt-project.org/wiki/Qt_Multimedia

                Basically, Qt uses the multimedia backend provided by your OS. Microsoft provides 2 backends: DirectShow and Windows Media Foundation. Look in C:<Qt>\plugins\mediaservice\ -- you will find the multimedia plugins there.

                DS is the legacy backend; WMF is the way forward. The WMF backend was the one that allowed you to open your .mp4 file. Unfortunately, WMF...

                • ...doesn't support Windows XP (Microsoft has no plans to do so), and
                • ...isn't properly supported by MinGW yet (it's possible for Qt to hack around this, but it's much better if it's done properly upstream).

                If you want to use MinGW, I believe you can play your .mp4 file if you can find and install a MP4 codec for DirectShow.

                [quote author="Duff" date="1394820770"]I noticed "here":http://qt-project.org/wiki/Qt-5-on-Windows-ANGLE-and-OpenGL that you can install on windows with either opengl or Angle. The note says that if you want to use QtMultimedia you should use Angle.[/quote]Yes, there's a bug that can cause crashes in Windows when playing video on OpenGL-based builds.

                Note, however, that OpenGL-vs.-ANGLE is completely unrelated to DirectShow-vs.-WMF.

                [quote author="Duff" date="1394821323"]Interestingly, The document states that opengl is required to work with Qt Quick and also that Angle is required to work with QtMutimedia. So, it looks like you may be out of luck for now since you are writing QML with QtMultimedia. [/quote]No, ANGLE simply converts OpenGL instructions into DirectX instructions. In fact, the whole reason for using ANGLE is to support Qt Quick (QML) on systems which don't have OpenGL 2.

                [quote author="Duff" date="1394822052"]on the other hand there is "this":https://blog.qt.digia.com/blog/2012/10/24/graphics-on-windows-from-a-different-angle/ ... It's giving me a headache :-)[/quote]What's wrong?

                [quote author="mclaus" date="1394809630"]I'm a little dissapointed that nobody is responding to these posts - it doesn't seem to bode well for the open source support of Qt as a professional development tool.[/quote]You'll get a reply if someone on these forums is familiar with your issue. I've noticed that there aren't many users here who are experienced in multimedia.

                If you want to talk to Qt's engineers, subscribe and post to the "Interest mailing list":http://lists.qt-project.org/mailman/listinfo/interest

                Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                1 Reply Last reply
                1
                • D Offline
                  D Offline
                  Duff
                  wrote on last edited by
                  #8

                  Okay, good. I have been hemming and hauling over which version to install on my Windows laptop. I'm hoping I can maintain one repository out on BitBucket and develop with both my Fedora and Windows machines.

                  --Duff

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    mclaus
                    wrote on last edited by
                    #9

                    JKSH & Duff - thanks so much for your thoughtful replies. I'm feeling like I understand it all a little bit better now.

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      aabc
                      wrote on last edited by
                      #10

                      How does other file formats work for you ?

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved