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

Investigate setting network IO device to QMediaPlayer or to FFmpeg API

    XMLWordPrintable

Details

    • Task
    • Resolution: Out of scope
    • P2: Important
    • None
    • None
    • Multimedia
    • None
    • All
    • Multimedia Wk 13-14, Multimedia wk 15-16, Multimedia wk 17-18, Multimedia wk 19-20

    Description

      Brief introduction

      Users want to play secure video streams via QMediaPlayer. QMediaPlayer accepts URL (local file, remote file or stream, and QIODevice - tested only for local cases).
      Currently, ffmpeg implements all networking by itself, using one of the secure backends (currently, openssl on linux and android, secure transport on macOS and iOS, and some native secure API on Windows).

      FFmpeg supports different video streaming protocols, see https://ffmpeg.org/ffmpeg-protocols.html.

      FFmpeg API has the option to take a custom by AVIOContext, see avio_alloc_context, avformat_open_input.

      Problems

      • SecureTransport is a private API, and users cannot push their applications to app store on iOS.
      • It's pretty tricky to deploy dynamically linked ffmpeg with openssl dependencies, the best solution hasn't been found yet.

      Possible solutions

      • Investigate whether QIODevice is sufficient for implementing video streams (we're afraid it's not). If sufficient, we might document how to use qt networking to set a proper socket or implement specific sockets, e.g. QRtspSocket.
      • Investigate setting more parameters and some private, multimedia-specific sockets, to AVIOContext before calling avformat_open_input.

      Note, that video streaming protocols are not just TCP/UDP sockets., e.g. RTSP may use both.

      The task implies an initial investigation, so we want to get a minimalistic prototype (a proof of the concept) or conclude that the approach is super complicated and we're not going to implement it for 6.8 and 6.9.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            tpochep Timur Pocheptsov
            artemiy Artem Dyomin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes