マルチメディアの概要
Qt Multimediaにおけるマルチメディアのサポートは、 Qt Multimedia モジュールによって提供されています。Qt Multimedia モジュールは、メディアの再生やカメラデバイスの使用など、プラットフォームのマルチメディア機能を簡単に活用できるようにする豊富な機能セットを提供します。
機能
Qt Multimedia API を使用すると、次のようなことが可能です。
- 入出力用の生オーディオデバイスにアクセスする。
- 低遅延のサウンドエフェクトを再生する。
- 3D空間オーディオを再生する。
- プレイリスト内のメディアファイル(圧縮されたオーディオファイルやビデオファイルなど)を再生します。
- オーディオを録音し、圧縮します。
- カメラを使用する(ビューファインダー、画像のキャプチャ、動画の録画を含む)。
- オーディオメディアファイルをメモリにデコードして処理する。
マルチメディアコンポーネント
Qt Multimedia API は、3 つの主要なコンポーネントに分類されます。各コンポーネントに関する詳細情報は、概要ページでご覧いただけます。また、いくつかのレシピもご参照ください。
- オーディオの概要
- ビデオの概要
- カメラの概要
- 空間オーディオの概要(テクノロジープレビュー)
マルチメディア・レシピ
簡単な活用例については、以下の表をご覧ください:
| ユースケース | 例 | QML 型 | C++クラス |
|---|---|---|---|
| 効果音の再生 | SoundEffect | QSoundEffect | |
| 3D サウンドの再生 | オーディオのパンニング | SpatialSound,AudioEngine | QSpatialSound,QAudioEngine |
| エンコードされたオーディオ(MP3、AACなど)の再生 | プレーヤー | MediaPlayer | QMediaPlayer |
| 低レイテンシーでの生オーディオデータの再生 | audiooutput | QAudioSink | |
| 生のオーディオ入力データへのアクセス | オーディオソース | QAudioSource | |
| エンコード済みオーディオデータの録音 | audiorecorder | CaptureSession,AudioInput,MediaRecorder | QMediaCaptureSession、QAudioInput 、QMediaRecorder |
| オーディオおよびビデオデバイスの検出 | audiodevices | MediaDevices,audioDevice,cameraDevice | QMediaDevices,QAudioDevice,QCameraDevice |
| 動画の再生 | player,mediaplayer | MediaPlayer,VideoOutput,Video | QMediaPlayer,QVideoWidget,QGraphicsVideoItem |
| 音声・動画のキャプチャ | カメラ、レコーダー | CaptureSession,Camera,AudioInput VideoOutput | QMediaCaptureSession,QCamera,QAudioInput,QVideoWidget |
| 写真の撮影 | カメラ、レコーダー | CaptureSession、Camera 、ImageCapture | QMediaCaptureSession,QCamera,QImageCapture |
| 動画の撮影 | カメラ、レコーダー | CaptureSession,Camera,MediaRecorder | QMediaCaptureSession,QCamera,QMediaRecorder |
マルチメディアセキュリティに関する注意事項
Qt Multimedia は、メディアハードウェアとそのドライバに大きく依存しています。そのため、セキュリティ上重大な問題を引き起こす可能性のある予期せぬQt Multimedia の動作を回避するために、カメラ、オーディオデバイス、グラフィックカード、その他の周辺機器などの信頼できるハードウェアを使用し、適切に構成された環境を整えることを強く推奨します。
Qt Multimedia QMediaPlayer 、 、 などのコンポーネントは、信頼できないメディアソースを処理する場合があります。これらのコンポーネントを使用する際は、QAudioDecoder QGStreamerVideoSource 信頼できないデータを扱う際の一般的なベストプラクティスに従ってください。当プロジェクトでは、入力として提供されるメディアファイルやストリームにかかわらず、 のセキュリティを維持することを目指しています。 ただし、このモジュールは FFmpeg や GStreamer などのサードパーティ製ライブラリに大きく依存しているため、データ処理のチェーンが長くなり、いずれかの段階で欠陥が存在する場合、セキュリティ上の問題にさらされる可能性があります。セキュリティに関連するデータフローや悪用リスクについては、「Qt Multimedia マルチメディアのセキュリティに関する考慮事項」のページを参照してください。
制限事項
Qt Multimedia のAPIは、基盤となるプラットフォームのマルチメディアフレームワークに基づいています。そのため、各種コーデックやコンテナへの対応状況はマシンによって異なる場合があります。この対応状況は、エンドユーザーがインストールしているソフトウェアによって異なります。詳細については、「サポートされているメディア形式」を参照してください。
注: Qt Multimedia APIは、QCoreApplication が提供する機能に依存しており、Qt Multimedia APIを使用して作成されたマルチメディアオブジェクトは、そのアプリケーションオブジェクトの存続期間中のみ使用可能です。したがって、Qt Multimedia APIのいずれかにアクセスする前に、QCoreApplication 、QGuiApplication 、またはQApplication を作成することが重要です。アプリケーションオブジェクトが再作成される場合は、Qt Multimedia オブジェクトもすべて再作成されるようにしてください。
以前のバージョンからの変更点
Qt 5 でQt Multimedia を使用していた場合は、「Qt Multimedia の変更点」を参照し、変更された内容や、コードを Qt 6 に移植する際に変更が必要となる可能性のある点について確認してください。
リファレンスドキュメント
© 2026 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.