이 페이지에서

QGStreamerVideoSource Class

QGStreamerVideoSource 클래스는 사용자 정의 GStreamer 요소를 기반으로 하는 비디오 소스를 제공합니다. 더 보기...

헤더: #include <QGStreamerVideoSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
다음부터: Qt 6.12부터
QML에서: GStreamerVideoSource
상속: QObject

속성

공개 함수

QGStreamerVideoSource(GstElement *gstElement, QObject *parent = nullptr)
QGStreamerVideoSource(const QString &gstBinDescription, QObject *parent = nullptr)
QString gstBinDescription() const
GstElement *gstElement() const
bool isActive() const

공개 슬롯

void setActive(bool active)
void start()
void stop()

신호

void activeChanged(bool active)

상세 설명

경고: ` GStreamerVideoSource ` 클래스는 제한된 호환성을 보장합니다. 이 클래스에 대해서는 소스 또는 바이너리 호환성이 보장되지 않으며, 이는 해당 API가 애플리케이션이 개발된 Qt 버전에서만 작동이 보장됨을 의미합니다. 그러나 비호환성 변경 사항은 최소한으로 유지되도록 노력하며, 마이너 릴리스에서만 이루어집니다. 애플리케이션에서 이 클래스를 사용하려면 (CMake를 사용하는 경우) Qt::MultimediaPrivate 에 링크하고, 헤더 #include <spi/qgstreamervideosource.h>를 포함시키십시오.

GStreamer bin 설명이나 기존 GstElement 를 사용하여 QGStreamerVideoSource를 생성하고, QMediaCaptureSession::setNativeVideoSource()를 통해 이를 QMediaCaptureSession 에 연결하십시오.

일반적인 경우에는 사용자 정의 비디오 소스를 처리하기 위해 GStreamer 전용 구성이 필요한 경우가 아니라면, 이 클래스 대신 QCamera 를 사용하는 것을 권장합니다.

기본적으로 이 클래스는 meta-qt6 빌드에서 사용할 수 있습니다. GStreamer를 지원하는 사용자 정의 빌드에서는 gstreamer_qt_api 기능을 활성화하여 이 클래스를 사용할 수 있습니다.

QtMultimedia 이 클래스가 작동하려면 gstreamer 미디어 백엔드와 함께 실행해야 합니다.

QMediaCaptureSession session;
QGStreamerVideoSource videoSource(QStringLiteral("videotestsrc name=testsrc"));

session.setNativeVideoSource(&videoSource);
videoSource.start();

QMediaCaptureSession 및 QCamera도 참조하십시오 .

속성 설명서

active : bool

비디오 소스가 현재 활성화되어 있는지 여부를 나타냅니다.

비디오 소스가 미디어 캡처 그룹( QMediaCaptureSession)에 연결된 경우, 이 속성은 해당 비디오 소스의 기본 비디오 소스( GstElement )가 미디어 캡처 세션 내의 미디어 그룹( GstPipeline )에 연결되어 있는지 여부를 나타냅니다.

액세스 함수:

bool isActive() const
void setActive(bool active)

알림 신호:

void activeChanged(bool active)

[read-only] gstBinDescription : const QString

비디오 소스와 관련된 GStreamer 바이너리 설명을 나타냅니다.

비디오 소스가 작동하지 않거나 기존 GstElement 에서 생성된 경우, 이 속성의 문자열은 비어 있습니다.

액세스 함수:

QString gstBinDescription() const

멤버 함수 문서

[explicit] QGStreamerVideoSource::QGStreamerVideoSource(GstElement *gstElement, QObject *parent = nullptr)

기존의 ` gstElement ` 및 ` parent`를 사용하여 `QGStreamerVideoSource`를 생성합니다.

이 요소는 캡처 세션에서 사용할 수 있는 비디오 소스를 제공해야 합니다. GstElement 유형은 QGStreamerVideoSource 헤더에서 사전 선언되어 있으므로, GStreamer 라이브러리의 해당 유형을 사용해야 합니다.

지정된 요소가 null인 경우, 생성된 비디오 소스는 작동하지 않습니다.

참고: 이 클래스는 제공된 요소에 대해 추가적인 유효성 검사를 수행하지 않으므로, 지정된 요소가 GstPipeline 에 대한 비디오 입력을 나타내지 않는 경우, QGStreamerVideoSource 및 관련 QMediaCaptureSession 가 정상적으로 작동하지 않을 수 있습니다.

참고: QGStreamerVideoSource는 제공된 GstElement 에 대한 소유권을 호출자와 공유합니다.

[explicit] QGStreamerVideoSource::QGStreamerVideoSource(const QString &gstBinDescription, QObject *parent = nullptr)

GStreamer 빈 설명 gstBinDescription 과 ` parent`을 사용하여 `QGStreamerVideoSource`를 생성합니다.

GStreamer 백엔드는 이 설명을 해석하여 캡처 세션의 비디오 소스 역할을 할 수 있는 빈을 생성합니다. 생성된 빈에 액세스하려면 gstElement() 메서드를 사용하십시오.

설명 문자열의 구문에 대해서는 GStreamer 문서를 참조하십시오.

지정된 설명을 파싱할 수 없어 GstBin 가 생성되지 않는 경우, 생성된 QGStreamerVideoSource는 작동하지 않으며, gstElement()는 nullptr 를 반환하고, gstBinDescription()는 빈 문자열을 반환합니다.

참고: QGStreamerVideoSource는 제공된 bin 설명에 대해 추가적인 유효성 검사를 수행하지 않으므로, 생성된 GstBin 가 GstPipeline 에 대한 비디오 입력을 나타내지 않는 경우, QGStreamerVideoSource 및 관련 QMediaCaptureSession 가 정상적으로 작동하지 않을 수 있습니다.

기본이 되는 GStreamer 요소를 더 잘 제어하려면, 기존 GstElement 를 사용하여 QGStreamerVideoSource를 생성할 수도 있습니다.

gstElement() 및 gstBinDescription()도 참조하십시오 .

GstElement *QGStreamerVideoSource::gstElement() const

비디오 소스가 사용하는 기본 GstElement 를 반환하거나, 비디오 소스가 작동하지 않는 경우 nullptr 를 반환합니다.

비디오 소스가 GStreamer bin 설명에서 생성된 경우, 반환된 ` GstElement `는 ` GstBin `의 하위 클래스로 변환할 수 있습니다.

참고: 이 메서드는 GstElement 의 소유권을 이전하지 않습니다.

[slot] void QGStreamerVideoSource::start()

비디오 소스를 시작합니다.

active 속성을 true 으로 설정하는 것과 동일합니다.

[slot] void QGStreamerVideoSource::stop()

비디오 소스를 중지합니다.

active 속성을 false 로 설정하는 것과 동일합니다.

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