Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-131802

QMediaPlayer is unable to play some flac/ogg streams

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • None
    • 6.7.3
    • Multimedia
    • None
    • Windows

      This is not 100% reproducible bug. I suspect that internal QMediaPlayer's buffer is to small for flac/ogg streams. Playing them from files working fine.

      Some observations:

      ffplay is able to play all the streams listed below.

      Example command I used:

      ffplay http://stream.radioparadise.com/global-flacm 

       

      Minimum reproducible example

      import QtQuick
      import QtQuick.Controls
      import QtMultimedia
      
      ApplicationWindow {
          id: root
          width: 640
          height: 480
          visible: true
          title: qsTr("Qml App")
      
          MediaPlayer {
              id: mediaPlayer
              function mediaStatusString(): string {
                  if (mediaStatus == MediaPlayer.NoMedia) {
                      return "NoMedia";
                  }
                  if (mediaStatus == MediaPlayer.LoadingMedia) {
                      return "LoadingMedia";
                  }
                  if (mediaStatus == MediaPlayer.LoadedMedia) {
                      return "LoadedMedia";
                  }
                  if (mediaStatus == MediaPlayer.BufferingMedia) {
                      return "BufferingMedia";
                  }
                  if (mediaStatus == MediaPlayer.StalledMedia) {
                      return "StalledMedia";
                  }
                  if (mediaStatus == MediaPlayer.BufferedMedia) {
                      return "BufferedMedia";
                  }
                  if (mediaStatus == MediaPlayer.EndOfMedia) {
                      return "EndOfMedia";
                  }
                  if (mediaStatus == MediaPlayer.InvalidMedia) {
                      return "InvalidMedia";
                  }
                  return "Unknown Status";
              }        
      
              // http://r5.zetcast.net/flac
              // https://stream10.xdevel.com/audio15s976748-2280/stream/icecast.audio
              // http://stream-uk1.radioparadise.com/flac
              // http://stream.radioparadise.com/global-flacm
              source: "http://stream.radioparadise.com/global-flacm"
              audioOutput: AudioOutput {}       
              onMediaStatusChanged: {
                  console.log("Status", mediaStatusString());
              }
              onErrorStringChanged: {
                  console.log("Error:", errorString);
              }
           }    
          Button {
              anchors.fill: parent        
              text: "Play"
              onClicked: {
                  mediaPlayer.play();
              }
          }
      }
      

      Output with QT_FFMPEG_DEBUG: 

      "FFmpeg log: Opening 'http://stream.radioparadise.com/global-flacm' for reading"
      "FFmpeg log: Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy,data'"
      "FFmpeg log: Original list of addresses:"
      "FFmpeg log: Address 93.190.141.46 port 80"
      "FFmpeg log: Interleaved list of addresses:"
      "FFmpeg log: Address 93.190.141.46 port 80"
      "FFmpeg log: Starting connection attempt to 93.190.141.46 port 80"
      "FFmpeg log: Successfully connected to 93.190.141.46 port 80"
      "FFmpeg log: request: GET /global-flacm HTTP/1.1\r\nUser-Agent: Lavf/61.1.100\r\nAccept: */*\r\nRange: bytes=0-\r\nConnection: close\r\nHost: stream.radioparadise.com\r\nIcy-MetaData: 1\r\n\r\n"
      "FFmpeg log: Format ogg probed with size=2048 and score=100"
      "FFmpeg log: Before avformat_find_stream_info() pos: 36221 bytes read:36891 seeks:0 nb_streams:1"
      "FFmpeg log: All info found"
      "FFmpeg log: After avformat_find_stream_info() pos: 36221 bytes read:36891 seeks:0 frames:1"
      qt.multimedia.ffmpeg.mediadataholder: AVStream duration -9223372036854775808 is invalid. Taking it from the metadata
      qml: Status: LoadedMedia
      "FFmpeg log: detected 12 logical cores"
      qml: Status: BufferingMedia
      "FFmpeg log: Original list of addresses:"
      "FFmpeg log: Address 93.190.141.46 port 80"
      "FFmpeg log: Interleaved list of addresses:"
      "FFmpeg log: Address 93.190.141.46 port 80"
      "FFmpeg log: Starting connection attempt to 93.190.141.46 port 80"
      "FFmpeg log: Successfully connected to 93.190.141.46 port 80"
      "FFmpeg log: request: GET /global-flacm HTTP/1.1\r\nUser-Agent: Lavf/61.1.100\r\nAccept: */*\r\nRange: bytes=0-\r\nConnection: close\r\nHost: stream.radioparadise.com\r\nIcy-MetaData: 1\r\n\r\n"
      "FFmpeg log: Original list of addresses:"
      "FFmpeg log: Address 93.190.141.46 port 80"
      "FFmpeg log: Interleaved list of addresses:"
      "FFmpeg log: Address 93.190.141.46 port 80"
      "FFmpeg log: Starting connection attempt to 93.190.141.46 port 80"
      "FFmpeg log: Successfully connected to 93.190.141.46 port 80"
      "FFmpeg log: request: GET /global-flacm HTTP/1.1\r\nUser-Agent: Lavf/61.1.100\r\nAccept: */*\r\nRange: bytes=0-\r\nConnection: close\r\nHost: stream.radioparadise.com\r\nIcy-MetaData: 1\r\n\r\n"
      "FFmpeg log: Using s16p internally between filters"
      "FFmpeg log: Metadata update for StreamTitle: Bonobo - Black Sands"
      qml: Status: BufferedMedia

        1. FlacOgg.7z
          1 kB
          Vladimir Lem
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            qtmultimediateam Qt Multimedia Team
            yunag Vladimir Lem
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes