변경 사항 Qt Multimedia

Qt 6는 프레임워크를 보다 효율적이고 사용하기 쉽게 만들기 위한 의식적인 노력의 결과입니다.

각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하려고 노력합니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위해 몇 가지 변경이 불가피했습니다.

모듈이 크게 리팩터링되었으며 필수에서 애드온으로 분류가 변경되었습니다. Qt 6의 Qt Multimedia 모듈은 Qt 5.x의 Qt Multimedia 모듈을 대체합니다. Qt 5의 Qt Multimedia 를 사용하는 기존 코드는 제한적인 노력으로 포팅할 수 있습니다.

Qt 6의 새로운 기능

Qt Multimedia 에는 여러 가지 새로운 기능이 있습니다:

  • QMediaCaptureSession 클래스는 미디어 캡처를 위한 중심 객체입니다.
  • QMediaRecorder 클래스는 이제 오디오 및 비디오 녹화에 국한된 클래스입니다. 이 클래스는 캡처 세션에서 생성된 데이터의 인코딩을 처리합니다.
  • QMediaFormatQMediaRecorder 을 사용하여 녹화 시 원하는 인코딩을 설정하면 크게 변경되었습니다.
  • 이제 캡처 세션에서 녹음된 오디오를 모니터링할 수도 있습니다.
  • 미디어 파일 재생 시 오디오, 동영상 및 자막 트랙 선택 기능이 추가되었습니다.
  • QAudioDecoder 이제 모든 플랫폼에서 지원됩니다.

제거된 기능

제거된 기능참고 또는 제안된 대안
재생 목록 QMediaPlayerQMediaPlayer 는 더 이상 Qt 6에서 재생 목록 처리를 하지 않습니다.
QMediaPlayList이 클래스는 API에서 제거되었습니다. 그러나 미디어 플레이어 예제의 일부로 여전히 존재합니다.
QAudioProbe 및 QVideoProbe오디오 및 비디오 프로빙 API가 제거되었습니다.
QAudioRecorderQMediaCaptureSession 또는 CaptureSession QML 유형을 사용합니다.
오디오 QML 유형MediaPlayer QML 유형을 사용합니다.
QMediaObject 및 QMediaBindableInterface이러한 클래스는 예를 들어 setVideoOutput 및 QMediaCaptureSession 을 사용하여 개체 간 연결을 설정하는 보다 직접적인 API를 위해 제거되었습니다.
QCameraViewFinderSettings이 클래스는 제거되었습니다. QCameraFormat 을 사용하여 카메라가 사용해야 하는 해상도와 프레임 속도를 정의하세요.
QMediaContent이 클래스는 제거되었습니다. 대신 개별 미디어 파일에 QUrl 을 사용하세요.
QSound대신 QSoundEffect 을 사용하십시오.
Q비디오필터 실행 가능대신 QML에서 셰이더 효과를 사용하거나 C++에서 QVideoFrame 의 콘텐츠에 액세스하세요.
공개 백엔드 APIQt Multimedia 의 백엔드 API는 Qt 6에서 비공개입니다. 이를 통해 새로운 멀티미디어 사용 사례를 지원하기 위한 응답 시간이 향상됩니다. Qt 5의 클래스 이름에 "Control" 또는 "Abstract"라는 단어가 포함된 모든 클래스는 이제 Qt 6에서 비공개입니다.
백엔드 플러그인Qt Multimedia 은 더 이상 백엔드에 플러그인 인프라를 사용하지 않습니다. 즉, 사용자는 더 이상 애플리케이션과 함께 백엔드를 제공할 필요가 없습니다. 대신, 사용되는 백엔드는 컴파일 시점에 기본 운영 체제에 따라 결정됩니다. Qt는 Linux에서는 gstreamer를, Windows에서는 WMF를, macOS와 iOS에서는 AVFoundation을, Android에서는 Android 멀티미디어 API를 사용합니다.

변경된 기능

이전에 Qt Multimedia 에서 제공되었던 여러 클래스가 이전에 작성된 코드에 영향을 줄 수 있는 방식으로 변경되었습니다. 다음 표에서는 이러한 변경 사항을 중점적으로 설명합니다.

변경된 기능참고
카메라 해상도 및 프레임 속도 처리카메라 해상도와 프레임 속도 처리가 간소화되었으며, 새로운 QCameraFormat 클래스가 카메라에 적합한 해상도와 프레임 속도를 선택하는 데 도움을 줍니다.
C++ 측의 비디오 출력 처리가 크게 변경되었습니다.QAbstractVideoSurface는 QVideoSink 클래스로 대체되었으며, 일반 렌더링 지원은 Qt Multimedia 에서 지원하는 모든 픽셀 형식을포함하도록 향상되었습니다.
메타데이터 유형QMediaMetaData 은 주로 문자열 기반에서 열거형 기반 키로 바뀌었고, 지원되는 키 세트가 대부분의 플랫폼에서 지원 가능한 키로 축소되는 등 크게 변경되었습니다.
QMediaFormat인코딩된 미디어의 형식 처리와 미디어 레코더의 설정이 크게 변경되었습니다. Qt 5는 문자열 기반 API, 분리된 파일 형식, 오디오 및 비디오 코덱을 세 가지 클래스로 제공합니다. 하지만 Qt 6에서는 QMediaFormat 클래스로 포맷을 통합했습니다. 추가 설정은 QMediaRecorder 에서 직접 지정할 수 있습니다. 이제 파일 형식 및 코덱 설정은 열거형으로 구현되며 더 이상 문자열을 사용하지 않습니다. 이로 인해 사용할 수 있는 코덱 집합에 약간의 제한이 있지만 일관된 크로스 플랫폼 API를 제공하는 데 도움이 됩니다.
QCameraImageCapture의 이름이 QImageCaptureNone
오디오 입력 및 출력QMediaPlayerQMediaCaptureSession (및 해당 QML 유형 MediaPlayerCaptureSession)은 기본적으로 오디오 장치에 연결되지 않습니다. 오디오를 캡처하거나 재생하려면 QAudioInput/AudioInput 또는 QAudioOutput/AudioOutput 에 명시적으로 연결하세요.
동영상 캡처하기캡처 세션은 기본적으로 카메라에 연결되지 않습니다. 동영상 또는 정지 이미지를 캡처하려면 QCamera 객체(카메라 항목)에 연결하세요.

© 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.