변경 사항 Qt Multimedia
Qt 6의 변경 사항은 프레임워크를 더 효율적이고 사용하기 쉽게 만들기 위한 의도적인 노력의 결과입니다.
저희는 각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하기 위해 노력하고 있습니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위한 과정에서 일부 변경 사항은 불가피했습니다.
이 모듈은 대대적으로 리팩토링되었으며, 분류도 필수(essential)에서 추가 기능(add-on)으로 변경되었습니다. Qt 6의 Qt Multimedia 모듈은 Qt 5.x의 Qt Multimedia 모듈을 대체합니다. Qt 5의 Qt Multimedia 를 사용하는 기존 코드는 적은 노력으로 이식할 수 있습니다.
Qt 6의 새로운 기능
Qt Multimedia 에는 다음과 같은 여러 가지 새로운 기능이 있습니다:
- QMediaCaptureSession class는 미디어 캡처의 핵심 객체입니다.
- QMediaRecorder `Recorder` 클래스는 이제 오디오 및 비디오 녹음 전용 클래스로 제한됩니다. 이 클래스는 캡처 세션에서 생성된 데이터의 인코딩을 처리합니다.
- QMediaFormat 와 QMediaRecorder 를 사용하여 녹화 시 원하는 인코딩을 설정하는 방식이 크게 변경되었습니다.
- 이제 캡처 세션에서 녹음된 오디오를 모니터링할 수도 있습니다.
- 미디어 파일 재생 시 오디오, 비디오 및 자막 트랙을 선택할 수 있는 기능이 추가되었습니다.
- QAudioDecoder 이제 모든 플랫폼에서 지원됩니다.
제거된 기능
| 제거된 기능 | 참고 사항 또는 권장 대안 |
|---|---|
| Qt 6에서는 QMediaPlayer | QMediaPlayer 의 재생 목록 기능은 Qt 6에서 더 이상 재생 목록 처리를 수행하지 않습니다. |
| QMediaPlayList | 이 클래스는 API에서 제거되었습니다. 다만, 미디어 플레이어 예제의 일부로 여전히 존재합니다. |
| QAudioProbe 및 QVideoProbe | 오디오 및 비디오 프로빙 API가 제거되었습니다. |
| QAudioRecorder | QMediaCaptureSession 또는 CaptureSession QML 유형을 사용하십시오. |
| 오디오 QML 유형 | MediaPlayer QML 유형을 사용하십시오. |
| QMediaObject 및 QMediaBindableInterface | 이 클래스들은 setVideoOutput 및 QMediaCaptureSession 등을 사용하여 객체 간의 연결을 설정하는 보다 직접적인 API를 채택함에 따라 제거되었습니다. |
| QCameraViewFinderSettings | 이 클래스는 제거되었습니다. 카메라가 사용해야 할 해상도와 프레임 속도를 정의하려면 QCameraFormat 를 사용하십시오. |
| QMediaContent | 이 클래스는 제거되었습니다. 대신 개별 미디어 파일의 경우 ` QUrl `을 사용하십시오. |
| QSound | 대신 QSoundEffect 을 사용하십시오. |
| QVideoFilterRunnable | 대신 QML에서 셰이더 효과를 사용하거나 C++에서 ` QVideoFrame`의 콘텐츠에 접근하십시오. |
| 공개 백엔드 API | Qt Multimedia 의 백엔드 API는 Qt 6에서 비공개로 변경되었습니다. 이를 통해 새로운 멀티미디어 사용 사례를 지원하는 데 필요한 응답 시간이 개선됩니다. Qt 5에서 클래스 이름에 "Control" 또는 "Abstract"라는 단어가 포함된 모든 클래스는 이제 Qt 6에서 비공개로 변경되었습니다. |
| Linux에서 ALSA 오디오 지원은 실험적 단계입니다 | Linux에서 오디오를 사용하려면 PulseAudio가 필요합니다. 실험적인 ALSA 지원은 향후 Qt 버전에서 더 이상 사용되지 않을 예정입니다. 자세한 내용은 Linux 플랫폼 참고 사항을 참조하십시오. |
변경된 기능
Qt Multimedia 에서 이전에 제공되던 여러 클래스가 변경되어, 기존에 작성된 코드에 영향을 미칠 수 있습니다. 다음 표는 이러한 변경 사항을 요약한 것입니다.
| 변경된 기능 | 참고 |
|---|---|
| 카메라 해상도 및 프레임 속도 처리 | 이들에 대한 처리가 간소화되었으며, 새로운 QCameraFormat 클래스를 통해 카메라에 적합한 해상도와 프레임 속도를 쉽게 선택할 수 있습니다. |
| C++ 측의 비디오 출력 처리가 크게 변경되었습니다. | QAbstractVideoSurface는 QVideoSink 클래스로 대체되었으며, Qt Multimedia 에서 지원하는 모든 픽셀 형식을포함하도록 일반 렌더링 지원이 강화되었습니다. |
| 메타데이터 유형 | QMediaMetaData 이 크게 변경되었습니다. 주로 문자열 기반 키에서 열거형 기반 키로 전환되었으며, 지원되는 키 집합이 대부분의 플랫폼에서 지원 가능한 키로 축소되었습니다. |
| QMediaFormat | 인코딩된 미디어의 형식 처리 및 미디어 레코더에 대한 설정이 크게 변경되었습니다. Qt 5는 문자열 기반 API, 별도의 파일 형식, 오디오 및 비디오 코덱을 세 개의 클래스로 제공합니다. 그러나 Qt 6에서는 이러한 형식들을 QMediaFormat 클래스로 통합했습니다. 추가 설정은 ` QMediaRecorder`에서 직접 지정됩니다. 파일 형식과 코덱 설정은 이제 열거형(enum)으로 구현되며 더 이상 문자열을 사용하지 않습니다. 이로 인해 사용 가능한 코덱 집합에 일부 제한이 생기지만, 일관된 크로스 플랫폼 API를 제공하는 데 도움이 됩니다. |
| QCameraImageCapture 이름 변경 QImageCapture | 없음 |
| 오디오 입력 및 출력 | QMediaPlayer 및 ` QMediaCaptureSession `(그리고 이에 대응하는 QML 유형인 ` MediaPlayer ` 및 ` CaptureSession`)은 기본적으로 어떤 오디오 장치에도 연결되어 있지 않습니다. 오디오를 캡처하거나 재생하려면 이를 ` QAudioInput` / `AudioInput ` 또는 ` QAudioOutput` / `AudioOutput `에 명시적으로 연결해야 합니다. |
| 동영상 캡처 | 캡처 세션은 기본적으로 카메라에 연결되어 있지 않습니다. 동영상이나 정지 이미지를 캡처하려면 QCamera 객체(Camera 항목)에 연결하십시오. |
© 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.