Qt Multimedia on WebAssembly

This page covers the availability of Qt Multimedia features on WebAssembly.

Limitations

  • Due to its asynchronous nature, some features such as getting the list of QMediaDevices, will not be readily available and may take some time to request permissions and gather the list of devices. The audioInputsChanged, audioOutputsChanged and videoInputChanged signals from QMediaDevices class will be emitted when they are available.
  • Camera and Microphone inputs require user permissions, and can only be used in a secure https context.
  • Playing video currently works by using a html 2d context, so all operations are on the CPU.
  • Performance is acceptable, although there is a copy on every frame, so it may be less performant than desktop platforms when playing hi-def video.
  • Using and selecting different Codecs/video formats is not currently supported.
  • Playing data from a stream (using setSourceDevice(QIODevice*)), instead of fetching a URL, is not currently supported.
  • Some advanced features such as spacial audio, codecs, screen and window recording are not currently supported.
  • Files can be served from the/any web server, respective of CORS.
  • Although possible, playing local files stored in the application file system is discouraged because of the limited size of local file storage.
  • Selecting encoding codecs is not possible.
  • Issues may exist when using the Firefox browser on any platform.
  • Due to platform limitations, QMediaDevices must be run on the main thread.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.