QMediaRecorder Class
QMediaRecorder 클래스는 캡처 세션을 인코딩하고 기록하는 데 사용됩니다. 더 보기...
| 헤더: | #include <QMediaRecorder> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| QML에서: | MediaRecorder |
| 상속: | QObject |
공개 타입
| enum | EncodingMode { ConstantQualityEncoding, ConstantBitRateEncoding, AverageBitRateEncoding, TwoPassEncoding } |
| enum | Error { NoError, ResourceError, FormatError, OutOfSpaceError, LocationNotWritable } |
| enum | Quality { VeryLowQuality, LowQuality, NormalQuality, HighQuality, VeryHighQuality } |
| enum | RecorderState { StoppedState, RecordingState, PausedState } |
속성
|
|
공개 함수
| QMediaRecorder(QObject *parent = nullptr) | |
| virtual | ~QMediaRecorder() override |
| QUrl | actualLocation() const |
| void | addMetaData(const QMediaMetaData &metaData) |
| int | audioBitRate() const |
| int | audioChannelCount() const |
| int | audioSampleRate() const |
| bool | autoStop() const |
| QMediaCaptureSession * | captureSession() const |
| qint64 | duration() const |
| QMediaRecorder::EncodingMode | encodingMode() const |
| QMediaRecorder::Error | error() const |
| QString | errorString() const |
| bool | isAvailable() const |
| QMediaFormat | mediaFormat() const |
| QMediaMetaData | metaData() const |
| QIODevice * | outputDevice() const |
| QUrl | outputLocation() const |
| QMediaRecorder::Quality | quality() const |
| QMediaRecorder::RecorderState | recorderState() const |
| void | setAudioBitRate(int bitRate) |
| void | setAudioChannelCount(int channels) |
| void | setAudioSampleRate(int sampleRate) |
| void | setAutoStop(bool autoStop) |
| void | setEncodingMode(QMediaRecorder::EncodingMode mode) |
| void | setMediaFormat(const QMediaFormat &format) |
| void | setMetaData(const QMediaMetaData &metaData) |
| void | setOutputDevice(QIODevice *device) |
| void | setOutputLocation(const QUrl &location) |
| void | setQuality(QMediaRecorder::Quality quality) |
| void | setVideoBitRate(int bitRate) |
| void | setVideoFrameRate(qreal frameRate) |
| void | setVideoResolution(const QSize &size) |
| void | setVideoResolution(int width, int height) |
| int | videoBitRate() const |
| qreal | videoFrameRate() const |
| QSize | videoResolution() const |
공개 슬롯
신호
| void | actualLocationChanged(const QUrl &location) |
| void | audioBitRateChanged() |
| void | audioChannelCountChanged() |
| void | audioSampleRateChanged() |
| void | autoStopChanged() |
| void | durationChanged(qint64 duration) |
| void | encodingModeChanged() |
| void | errorChanged() |
| void | errorOccurred(QMediaRecorder::Error error, const QString &errorString) |
| void | mediaFormatChanged() |
| void | metaDataChanged() |
| void | qualityChanged() |
| void | recorderStateChanged(QMediaRecorder::RecorderState state) |
| void | videoBitRateChanged() |
| void | videoFrameRateChanged() |
| void | videoResolutionChanged() |
상세 설명
QMediaRecorder 클래스를 사용하여 QMediaCaptureSession 에서 생성된 미디어를 인코딩하고 녹화할 수 있습니다. 다음을 생성할 수 있습니다:
- 오디오. QAudioInput 또는 QAudioBufferInput 을 사용합니다.
- 비디오. QCamera, QScreenCapture, QWindowCapture, QVideoFrameInput 또는 QGStreamerVideoSource (
gstreamer미디어 백엔드가 설치된 임베디드 Linux 환경에서)를 사용합니다.
미디어를 녹화하려면 생성기를 해당 미디어 캡처 세션에 연결하십시오.
비디오 인코딩 및 녹화 성능은 하드웨어, 운영 체제, 설치된 그래픽 드라이버 및 입력 비디오 형식에 따라 제한을 받습니다. QCamera, QScreenCapture 또는 QWindowCapture 에서 생성되는 비디오 프레임의 속도가 QMediaRecorder 가 인코딩하고 녹화할 수 있는 속도보다 빠를 경우, 레코더가 일부 프레임을 생략할 수 있습니다. 이는 입력 프레임 해상도가 높을 경우(예: 4K)나 하드웨어 가속 인코딩을 사용할 수 없는 경우에 발생할 가능성이 높습니다. QVideoFrameInput 를 통해 입력 동영상을 생성하는 경우, 이 제한에 도달하고 내부 프레임 큐가 가득 차면 QVideoFrameInput::sendVideoFrame 메서드는 아무 작업도 수행하지 않고 false 을 반환합니다. 레코더가 새로운 프레임을 다시 수신할 준비가 되었는지 확인하려면 QVideoFrameInput::readyToSendVideoFrame 신호를 활용하십시오. 비디오 프레임 생성 속도를 변경할 수 없고 프레임 생략이 바람직하지 않은 경우, 하드웨어의 메모리 제한을 고려하여 QVideoFrameInput 을 기반으로 자체 프레임 큐를 구현하는 것을 권장합니다.
QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&audioInput);
QMediaRecorder recorder;
session.setRecorder(&recorder);
recorder.setQuality(QMediaRecorder::HighQuality);
recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3"));
recorder.record();멤버 유형 문서
enum QMediaRecorder::EncodingMode
인코딩 모드를 열거합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QMediaRecorder::ConstantQualityEncoding | 0 | 인코딩은 일정한 품질을 유지하도록 하며, 이에 맞춰 비트레이트를 조정합니다. |
QMediaRecorder::ConstantBitRateEncoding | 1 | 인코딩은 일정한 비트레이트를 사용하고, 이에 맞춰 품질을 조정합니다. |
QMediaRecorder::AverageBitRateEncoding | 2 | 인코딩은 평균 비트레이트 설정을 유지하려고 시도하지만, 필요에 따라 더 많이 또는 적게 사용합니다. |
QMediaRecorder::TwoPassEncoding | 3 | 미디어는 먼저 특성을 파악하기 위해 처리된 후, 필요한 영역에 더 많은 비트를 할당하도록 두 번째로 처리됩니다. |
enum QMediaRecorder::Error
| 상수 | 값 | 설명 |
|---|---|---|
QMediaRecorder::NoError | 0 | 오류가 없습니다. |
QMediaRecorder::ResourceError | 1 | 장치가 준비되지 않았거나 사용할 수 없습니다. |
QMediaRecorder::FormatError | 2 | 현재 형식이 지원되지 않습니다. |
QMediaRecorder::OutOfSpaceError | 3 | 장치에 남은 공간이 없습니다. |
QMediaRecorder::LocationNotWritable | 4 | 출력 위치에 쓰기가 불가능합니다. |
enum QMediaRecorder::Quality
품질 인코딩 레벨을 나열합니다.
| 상수 | 값 |
|---|---|
QMediaRecorder::VeryLowQuality | 0 |
QMediaRecorder::LowQuality | 1 |
QMediaRecorder::NormalQuality | 2 |
QMediaRecorder::HighQuality | 3 |
QMediaRecorder::VeryHighQuality | 4 |
enum QMediaRecorder::RecorderState
| 상수 | 값 | 설명 |
|---|---|---|
QMediaRecorder::StoppedState | 0 | 레코더가 활성화되어 있지 않습니다. |
QMediaRecorder::RecordingState | 1 | 녹화가 요청된 상태입니다. |
QMediaRecorder::PausedState | 2 | 레코더가 일시 정지 상태입니다. |
속성 설명
[read-only] actualLocation : QUrl
이 속성은 마지막으로 재생된 미디어 콘텐츠의 실제 위치를 저장합니다.
새로운 ` outputLocation ` 또는 `null`이 아닌 ` outputDevice `이 할당되면 실제 위치가 재설정됩니다. ` record()`가 호출되고 ` outputDevice `이 ` null `이거나 쓰기 불가능한 경우, 레코더는 다음 규칙에 따라 실제 위치를 생성합니다.
outputLocation가 비어 있거나, 디렉터리이거나, 확장자가 없는 파일인 경우, 레코더는 선택된 미디어 형식과 시스템 MIME 유형을 기반으로 적절한 확장자를 생성합니다.outputLocation가 디렉터리인 경우, 레코더는 해당 디렉터리 내에 새로운 파일 이름을 생성합니다.outputLocation가 비어 있거나, 디렉터리이거나, 확장자가 없는 파일인 경우, 레코더는 오디오 또는 비디오용 시스템별 디렉터리에서 새로운 파일 이름을 생성합니다.- 레코더는
recorderStateChanged(RecordingState)를 출력하기 전에 실제 위치를 생성합니다.
액세스 함수:
| QUrl | actualLocation() const |
알림 신호:
| void | actualLocationChanged(const QUrl &location) |
audioBitRate : int
이 속성은 압축된 오디오 스트림의 비트 전송률을 초당 비트 단위로 저장합니다.
액세스 함수:
| int | audioBitRate() const |
| void | setAudioBitRate(int bitRate) |
알림 신호:
| void | audioBitRateChanged() |
audioChannelCount : int
이 속성은 오디오 채널 수를 나타냅니다.
액세스 함수:
| int | audioChannelCount() const |
| void | setAudioChannelCount(int channels) |
알림 신호:
| void | audioChannelCountChanged() |
audioSampleRate : int
이 속성은 오디오 샘플링 주파수(Hz)를 저장합니다.
액세스 함수:
| int | audioSampleRate() const |
| void | setAudioSampleRate(int sampleRate) |
알림 신호:
| void | audioSampleRateChanged() |
autoStop : bool
이 속성은 모든 미디어 입력 소스가 스트림의 종료를 알리거나 비활성화되었을 때 미디어 레코더가 자동으로 중지되는지 여부를 제어합니다.
스트림의 끝은 빈 미디어 프레임을 전송하여 알리며, 이는 QVideoFrameInput 또는 QAudioBufferInput 를 통해 명시적으로 전송할 수 있습니다.
특히, QCamera, QScreenCapture 및 QWindowCapture 와 같은 비디오 입력은 setActive 함수를 통해 비활성화할 수 있습니다.
기본값은 false 입니다.
QMediaRecorder::autoStop은 FFmpeg 백엔드에서만 지원됩니다.
액세스 함수:
| bool | autoStop() const |
| void | setAutoStop(bool autoStop) |
알림 신호:
| void | autoStopChanged() |
QCamera, QScreenCapture 및 QWindowCapture도 참조하십시오 .
[read-only] duration : qint64
이 속성은 녹화된 미디어의 재생 시간을 밀리초 단위로 저장합니다.
액세스 함수:
| qint64 | duration() const |
알림 신호:
| void | durationChanged(qint64 duration) |
encodingMode : QMediaRecorder::EncodingMode
이 속성은 인코딩 모드를 저장합니다.
액세스 함수:
| QMediaRecorder::EncodingMode | encodingMode() const |
| void | setEncodingMode(QMediaRecorder::EncodingMode mode) |
알림 신호:
| void | encodingModeChanged() |
EncodingMode도 참조하십시오 .
[read-only] error : QMediaRecorder::Error
현재 오류 상태를 반환합니다.
액세스 함수:
| QMediaRecorder::Error | error() const |
알림 신호:
| void | errorChanged() |
errorString()도 참조하십시오 .
[read-only] errorString : QString
현재 오류 상태를 설명하는 문자열을 반환합니다.
액세스 함수:
| QString | errorString() const |
알림 신호:
| void | errorChanged() |
error()도 참조하십시오 .
mediaFormat : QMediaFormat
이 속성은 레코더의 현재 QMediaFormat 를 저장합니다.
record()를 호출할 때 이 속성의 값이 변경될 수 있습니다. 이 경우 mediaFormatChanged() 신호가 발생합니다. QMediaFormat::audioCodec 또는 QMediaFormat::fileFormat 속성이 unspecified로 설정된 경우에는 항상 이러한 현상이 발생합니다. 비디오 소스(QCamera, QScreenCapture 또는 QVideoFrameInput)가 QMediaCaptureSession 에 연결된 경우, QMediaFormat::videoCodec 도 반드시 지정되어야 합니다. 미디어 백엔드가 선택한 파일 형식이나 코덱을 지원하지 않는 경우, QMediaFormat::audioCodec 및 QMediaFormat::videoCodec 속성 값도 변경될 수 있습니다.
동영상 형식이 요청되었지만 QMediaCaptureSession 에 연결된 동영상 소스가 없는 경우, QMediaFormat::fileFormat 속성 값이 audio 전용 형식으로 변경될 수도 있습니다. 예를 들어, QMediaFormat::fileFormat 가 QMediaFormat::MPEG4 로 설정된 경우, QMediaFormat::Mpeg4Audio 로 변경될 수 있습니다.
애플리케이션은 QMediaFormat::isSupported() 함수를 호출하여 녹화가 시작되기 전에 mediaFormat 이 변경될지 여부를 확인할 수 있습니다. 비디오 입력 없이 녹화할 때, 다음 조건이 충족되면 record()은 QMediaFormat 을 변경하지 않습니다:
- QMediaFormat::fileFormat 가 지정된 경우
- QMediaFormat::audioCodec 이 지정된 경우
- QMediaFormat::videoCodec 지정되지 않은 경우
- QMediaFormat::isSupported()가 반환할 때
true
비디오 입력이 있는 상태에서 녹화할 때, 다음 조건이 모두 충족되면 mediaFormat 는 변경되지 않습니다:
- QMediaFormat::fileFormat 지정됨
- QMediaFormat::audioCodec 지정된 경우
- QMediaFormat::videoCodec 지정된 경우
- QMediaFormat::isSupported() 반환값
true
참고: ` QMediaRecorder `는 ` QMediaFormat::fileFormat`을 결정할 때 ` outputLocation ` 속성의 파일 이름 확장자를 고려하지 않으며, 확장자가 지정된 경우 ` outputLocation ` QUrl 의 확장자를 선택한 파일 형식에 맞게 조정하지 않습니다. 따라서 애플리케이션은 QMediaRecorder::mediaFormat::fileFormat 를 파일 확장자와 일치하도록 설정하거나, 파일 확장자를 지정하지 않도록 해야 합니다. 파일 확장자가 지정되지 않은 경우, actualLocation 파일 확장자는 녹화에 사용된 파일 형식과 일치하도록 업데이트됩니다.
액세스 함수:
| QMediaFormat | mediaFormat() const |
| void | setMediaFormat(const QMediaFormat &format) |
알림 신호:
| void | mediaFormatChanged() |
QMediaFormat::isSupported() 및 actualLocation도 참조하십시오 .
metaData : QMediaMetaData
녹화와 관련된 메타데이터를 반환합니다.
액세스 함수:
| QMediaMetaData | metaData() const |
| void | setMetaData(const QMediaMetaData &metaData) |
알림 신호:
| void | metaDataChanged() |
outputLocation : QUrl
이 속성은 미디어 콘텐츠의 대상 위치를 저장합니다.
예를 들어, 서비스가 로컬 파일 시스템 위치만 지원하는데 네트워크 URL이 전달된 경우와 같이 위치 설정이 실패할 수 있습니다. 작업이 실패하면 ` errorOccurred()` 신호가 발생합니다.
레코더에 쓰기 가능한 outputDevice 가 할당된 경우 출력 위치는 무시됩니다. 이 동작은 향후 변경될 수 있으므로, outputLocation 또는 outputDevice 중 하나의 출력만 설정하는 것이 좋습니다.
출력 위치는 빈 값, 디렉터리 또는 파일일 수 있습니다. 디렉터리나 파일의 경로는 상대 경로 또는 절대 경로일 수 있습니다. record() 메서드는 지정된 출력 위치와 시스템별 설정에 따라 실제 위치를 생성합니다. 자세한 내용은 actualLocation 속성 설명을 참조하십시오.
Access 함수:
| QUrl | outputLocation() const |
| void | setOutputLocation(const QUrl &location) |
actualLocation 및 outputDevice()도 참조하십시오 .
quality : Quality
녹음 품질을 반환합니다.
액세스 함수:
| QMediaRecorder::Quality | quality() const |
| void | setQuality(QMediaRecorder::Quality quality) |
알림 신호:
| void | qualityChanged() |
[read-only] recorderState : QMediaRecorder::RecorderState
이 속성은 미디어 레코더의 현재 상태를 나타냅니다.
state 속성은 사용자 요청을 나타내며, record(), pause() 또는 stop() 호출 중에 동기적으로 변경됩니다. 또한 녹화가 실패할 경우 레코더 상태가 비동기적으로 변경될 수도 있습니다.
액세스 함수:
| QMediaRecorder::RecorderState | recorderState() const |
알림 신호:
| void | recorderStateChanged(QMediaRecorder::RecorderState state) |
[since 6.6] videoBitRate : int
이 속성은 압축된 비디오 스트림의 비트 전송률을 초당 비트 단위로 저장합니다.
이 열거형은 Qt 6.6에서 도입되었습니다.
액세스 함수:
| int | videoBitRate() const |
| void | setVideoBitRate(int bitRate) |
알림 신호:
| void | videoBitRateChanged() |
[since 6.6] videoFrameRate : qreal
이 속성은 인코딩에 사용되는 비디오 프레임 속도를 지정합니다.
이 속성이 양수의 프레임 속도로 설정된 경우, QMediaRecorder 은 해당 속도로 인코딩을 시도합니다. 원본 비디오와 리코더의 프레임 속도가 다른 경우, 목표 속도에 도달하기 위해 원본의 프레임이 생략되거나 중복될 수 있습니다.
기본값(-1)으로 두거나 양수가 아닌 다른 값으로 설정된 경우, ` QMediaRecorder `는 비디오 소스 및 코덱의 제한 사항을 바탕으로 최적의 선택을 시도합니다.
이 열거형은 Qt 6.6에서 도입되었습니다.
액세스 함수:
| qreal | videoFrameRate() const |
| void | setVideoFrameRate(qreal frameRate) |
Notifier 신호:
| void | videoFrameRateChanged() |
[since 6.6] videoResolution : QSize
이 속성은 인코딩된 비디오의 해상도를 나타냅니다.
QSize 가 비어 있으면, 레코더가 비디오 소스에서 사용할 수 있는 내용과 코덱의 제한 사항을 바탕으로 최적의 해상도를 선택함을 의미합니다.
이 열거형은 Qt 6.6에서 도입되었습니다.
액세스 함수:
| QSize | videoResolution() const |
| void | setVideoResolution(const QSize &size) |
| void | setVideoResolution(int width, int height) |
알림 신호:
| void | videoResolutionChanged() |
멤버 함수 문서
QMediaRecorder::QMediaRecorder(QObject *parent = nullptr)
미디어 레코더를 생성합니다. 이 미디어 레코더는 ` parent`의 자식 객체입니다.
[override virtual noexcept] QMediaRecorder::~QMediaRecorder()
미디어 레코더 객체를 삭제합니다.
[signal] void QMediaRecorder::actualLocationChanged(const QUrl &location)
기록된 미디어의 실제 location 값이 변경되었음을 알리는 신호입니다. 이 신호는 일반적으로 기록이 시작될 때 발생합니다.
참고: 속성 actualLocation 에 대한알림 신호입니다.
void QMediaRecorder::addMetaData(const QMediaMetaData &metaData)
녹화된 미디어에 ‘ metaData ’을 추가합니다.
int QMediaRecorder::audioBitRate() const
압축된 오디오 스트림의 비트 전송률을 초당 비트 단위로 반환합니다.
참고: audioBitRate 속성에 대한게터 함수입니다.
참조: ` setAudioBitRate()` 함수.
[signal] void QMediaRecorder::audioBitRateChanged()
오디오 녹음 비트 레이트가 변경될 때 신호를 보냅니다.
참고: 속성 audioBitRate 에 대한알림 신호입니다.
int QMediaRecorder::audioChannelCount() const
오디오 채널 수를 반환합니다.
참고: audioChannelCount 속성에 대한게터 함수입니다.
setAudioChannelCount()도 참조하십시오 .
[signal] void QMediaRecorder::audioChannelCountChanged()
오디오 녹음 채널 수가 변경될 때 신호를 보냅니다.
참고: 속성 audioChannelCount 에 대한알림 신호입니다.
int QMediaRecorder::audioSampleRate() const
오디오 샘플 레이트를 Hz 단위로 반환합니다.
참고: audioSampleRate 속성에 대한게터 함수입니다.
setAudioSampleRate()도 참조하십시오 .
[signal] void QMediaRecorder::audioSampleRateChanged()
오디오 녹음 샘플 레이트가 변경될 때 신호를 보냅니다.
참고: 속성 audioSampleRate 에 대한알림 신호입니다.
QMediaCaptureSession *QMediaRecorder::captureSession() const
미디어 캡처 세션을 반환합니다.
[signal] void QMediaRecorder::durationChanged(qint64 duration)
기록된 미디어의 duration 속성이 변경되었음을 알리는 신호입니다.
참고: duration 속성에 대한알림 신호입니다.
QMediaRecorder::EncodingMode QMediaRecorder::encodingMode() const
인코딩 모드를 반환합니다.
참고: encodingMode 속성에 대한게터 함수입니다.
setEncodingMode() 및 EncodingMode도 참조하십시오 .
[signal] void QMediaRecorder::encodingModeChanged()
인코딩 모드가 변경될 때 신호를 보냅니다.
참고: encodingMode 속성에 대한알림 신호입니다.
[signal] void QMediaRecorder::errorOccurred(QMediaRecorder::Error error, const QString &errorString)
error 가 발생했음을 알리는 신호이며, errorString 에 오류에 대한 설명이 포함되어 있습니다.
bool QMediaRecorder::isAvailable() const
미디어 레코더 서비스가 사용 가능한 상태이면 ` true `를 반환합니다.
[signal] void QMediaRecorder::metaDataChanged()
미디어 객체의 메타데이터가 변경되었음을 알립니다.
여러 메타데이터 요소가 변경된 경우 metaDataChanged() 신호가 한 번 발생합니다.
참고: 속성 ` metaData`에 대한알림 신호입니다.
QIODevice *QMediaRecorder::outputDevice() const
미디어 콘텐츠에 대한 출력 IO 장치를 반환합니다.
setOutputDevice()도 참조하십시오 .
[slot] void QMediaRecorder::pause()
녹음을 일시 중지합니다.
레코더 상태가 ' QMediaRecorder::PausedState'으로 변경됩니다.
플랫폼에 따라 녹화 일시 중지가 지원되지 않을 수 있습니다. 이 경우 레코더 상태는 변경되지 않습니다.
[signal] void QMediaRecorder::qualityChanged()
녹화 품질이 변경될 때 신호를 보냅니다.
참고: 속성 quality 에 대한알림 신호입니다.
[slot] void QMediaRecorder::record()
녹화를 시작합니다.
레코더 상태는 즉시 c{QMediaRecorder::RecordingState}로 변경되지만, 녹화는 비동기적으로 시작될 수 있습니다.
녹화가 실패하면 error() 신호가 발송되며, 레코더 상태는 QMediaRecorder::StoppedState 로 재설정됩니다.
이 메서드는 생성 규칙에 따라 actualLocation 를 업데이트합니다.
참고: 모바일 기기의 경우 , 녹화는 record 호출 당시 기기의 방향대로 진행되며 녹화 기간 동안 기기의 방향이 고정됩니다. 사용자 인터페이스에 이상 현상이 발생하지 않도록 하려면, 녹화가 진행되는 동안 QWindow 의 contentOrientation 속성을 사용하여 사용자 인터페이스를 동일한 방향으로 고정해 두고, 녹화가 끝나면 다시 잠금을 해제하는 것이 좋습니다.
QMediaRecorder::RecorderState QMediaRecorder::recorderState() const
현재 미디어 레코더의 상태를 반환합니다.
참고: recorderState 속성에 대한게터 함수입니다.
QMediaRecorder::RecorderState도 참조하십시오 .
[signal] void QMediaRecorder::recorderStateChanged(QMediaRecorder::RecorderState state)
미디어 레코더의 ` state ` 속성이 변경되었음을 알리는 신호입니다.
참고: recorderState 속성에 대한알림 신호입니다.
void QMediaRecorder::setAudioBitRate(int bitRate)
오디오의 비트/초( bitRate ) 값을 설정합니다.
참고: audioBitRate 속성에 대한설정 함수입니다.
audioBitRate()도 참조하십시오 .
void QMediaRecorder::setAudioChannelCount(int channels)
오디오 channels 의 개수를 설정합니다.
값이 -1인 경우, 레코더는 오디오 소스에서 사용할 수 있는 정보와 코덱의 제한 사항을 바탕으로 최적의 선택을 해야 함을 나타냅니다.
참고: audioChannelCount 속성에 대한설정 함수입니다.
audioChannelCount()도 참조하십시오 .
void QMediaRecorder::setAudioSampleRate(int sampleRate)
오디오 sampleRate 를 Hz 단위로 설정합니다.
-1 값은 레코더가 오디오 소스에서 제공되는 정보와 코덱의 제한 사항을 바탕으로 최적의 선택을 해야 함을 나타냅니다.
참고: audioSampleRate 속성에 대한설정 함수입니다.
audioSampleRate()도 참조하십시오 .
void QMediaRecorder::setEncodingMode(QMediaRecorder::EncodingMode mode)
인코딩 mode 설정을 지정합니다.
ConstantQualityEncoding 가 설정된 경우 품질 인코딩 매개변수가 사용되고 비트레이트는 무시되며, 그렇지 않은 경우 비트레이트가 사용됩니다.
참고: encodingMode 속성에 대한세터 함수입니다.
encodingMode() 및 EncodingMode도 참조하십시오 .
void QMediaRecorder::setMetaData(const QMediaMetaData &metaData)
메타데이터를 metaData 로 설정합니다.
참고: 메타데이터가 올바르게 설정되도록하려면 녹화를 시작하기 전에 설정해야 합니다. 녹화가 시작되면 설정된 메타데이터는 다음 녹화에 적용됩니다.
참고: metaData 속성에 대한설정 함수입니다.
참조: metaData()
void QMediaRecorder::setOutputDevice(QIODevice *device)
미디어 콘텐츠에 대한 출력 IO 장치를 설정합니다.
녹화가 시작되기 전에 device 가 WriteOnly 또는 ReadWrite 모드로 열려 있어야 합니다.
미디어 레코더는 지정된 device 의 소유권을 가져가지 않습니다. 녹화가 시작된 경우, recorderStateChanged(StoppedState) 신호가 전송될 때까지 해당 장치를 활성 상태로 유지하고 열어두어야 합니다.
이 메서드는 지정된 device 가 null 가 아닌 경우 actualLocation 를 즉시 재설정합니다.
레코더에 쓰기 가능한 출력 장치가 할당된 경우, ` outputLocation `는 무시되며, 녹화가 시작될 때 ` actualLocation `가 생성되지 않습니다. 이 동작은 향후 변경될 수 있으므로, ` outputLocation ` 또는 ` outputDevice` 중 하나만 출력 장치로 설정할 것을 권장합니다.
QMediaRecorder::setOutputDevice 이는 FFmpeg 백엔드에서만 지원됩니다.
outputDevice() 및 outputLocation도 참조하십시오 .
void QMediaRecorder::setVideoBitRate(int bitRate)
bitRate 속성을 초당 비트 단위로 설정합니다.
참고: videoBitRate 속성에 대한세터 함수입니다.
videoBitRate()도 참조하십시오 .
void QMediaRecorder::setVideoFrameRate(qreal frameRate)
frameRate 의 비디오 인코딩을 설정합니다.
참고: videoFrameRate 속성에 대한세터 함수입니다.
videoFrameRate()도 참조하십시오 .
void QMediaRecorder::setVideoResolution(const QSize &size)
인코딩된 비디오의 해상도를 size 로 설정합니다.
빈 QSize 객체를 전달하면 레코더가 비디오 소스에서 사용할 수 있는 해상도와 코덱의 제한 사항을 바탕으로 최적의 해상도를 선택합니다.
참고: videoResolution 속성에 대한세터 함수입니다.
videoResolution()도 참조하십시오 .
void QMediaRecorder::setVideoResolution(int width, int height)
인코딩된 비디오의 해상도에 대한 ` width ` 및 ` height ` 속성을 설정합니다.
참고: videoResolution 속성에 대한세터 함수입니다.
이 함수는 오버로드된 함수입니다.
[slot] void QMediaRecorder::stop()
레코더는 녹화를 중지합니다. 다만, 처리 대기 중인 영상 및 오디오 데이터를 처리하는 데는 여전히 시간이 다소 소요될 수 있습니다. 미디어 레코더의 상태가 ‘ QMediaRecorder::StoppedState ’로 변경되면 녹화가 완료됩니다.
int QMediaRecorder::videoBitRate() const
압축된 비디오 스트림의 비트 전송률을 초당 비트 단위로 반환합니다.
참고: videoBitRate 속성에 대한게터 함수입니다.
참조: ` setVideoBitRate()` 함수.
[signal] void QMediaRecorder::videoBitRateChanged()
녹화 중인 비디오의 비트레이트가 변경될 때 신호를 보냅니다.
참고: 속성 videoBitRate 에 대한알림 신호입니다.
qreal QMediaRecorder::videoFrameRate() const
비디오 인코딩 프레임 속도를 반환합니다.
참고: videoFrameRate 속성에 대한게터 함수입니다.
setVideoFrameRate()도 참조하십시오 .
[signal] void QMediaRecorder::videoFrameRateChanged()
비디오 인코딩 프레임 속도가 변경될 때 신호를 보냅니다.
참고: videoFrameRate 속성에 대한알림 신호입니다.
QSize QMediaRecorder::videoResolution() const
인코딩된 동영상의 해상도를 반환합니다.
참고: videoResolution 속성의게터 함수입니다.
setVideoResolution()도 참조하십시오 .
[signal] void QMediaRecorder::videoResolutionChanged()
동영상 녹화 해상도가 변경될 때 신호를 보냅니다.
참고: 속성 ` videoResolution`에 대한알림 신호입니다.
© 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.