// 2022.03.30 기준
Installing on Windows을 참고하여 작성하였습니다.
Download GStreamer -> 다운로드 하기
1) MSVC 64-bit항목의 runtime installer, development installer 모두 다운로드
2) Typical/Complete 선택 (저자는 Complete 선택)
3) 설치가 완료되면 C:\gstreamer에 설치 (경로는 사용자마다 다름.)
4) 윈도우 키 + R -> sysdm.cpl를 입력하여 시스템 속성에 들어가서 환경변수 Path에 경로(C:\gstreamer\1.0\msvc_x86_64\bin)를 추가.
5) 새로운 환경 변수 GST_PLUGIN_SYSTEM_PATH를 추가하여 경로(C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0) 추가
6) 명령 프롬프트에서 다음 명령을 실행하여 확인
gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink
아래와 같은 비디오 창이 실행되어야 성공.
1) Visual Studio 2022에서 새프로젝트 만들기
2) Windows 데스크톱 마법사
3) 프로젝트 -> 속성
환경에 아래 값 입력
PATH=C:\gstreamer\1.0\msvc_x86_64\bin;%PATH%
추가 포함 디렉터리 (헤더파일 위치 알려주기)
C:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0\include;C:\gstreamer\1.0\msvc_x86_64\include\gstreamer-1.0;C:\gstreamer\1.0\msvc_x86_64\include\glib-2.0;C:\gstreamer\1.0\msvc_x86_64\include\glib-2.0\glib
추가 라이브러리 디렉터리 (라이브러리파일 위치 알려주기)
C:\gstreamer\1.0\msvc_x86_64\lib
추가 종속성 (사용할 라이브러리 이름 알려주기)
gobject-2.0.lib;glib-2.0.lib;gstreamer-1.0.lib;
모든 셋업이 끝난 뒤 "확인" 클릭
Basic tutorial 1: Hello world!를 이용하여 테스트
아래 예시 코드를 작성한 뒤, 실행
#include <gst/gst.h>
int main(int argc, char* argv[])
{
GstElement* pipeline;
GstBus* bus;
GstMessage* msg;
/* Initialize GStreamer */
gst_init(&argc, &argv);
/* Build the pipeline */
pipeline =
gst_parse_launch
("playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm",
NULL);
/* Start playing */
gst_element_set_state(pipeline, GST_STATE_PLAYING);
/* Wait until error or EOS */
bus = gst_element_get_bus(pipeline);
msg =
gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE,
(GstMessageType)(GST_MESSAGE_ERROR | GST_MESSAGE_EOS));
/* See next tutorial for proper error message handling/parsing */
if (GST_MESSAGE_TYPE(msg) == GST_MESSAGE_ERROR) {
g_error("An error occurred! Re-run with the GST_DEBUG=*:WARN environment "
"variable set for more details.");
}
/* Free resources */
gst_message_unref(msg);
gst_object_unref(bus);
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(pipeline);
return 0;
}
오디오와 함께 인터넷에서 바로 재생되는 비디오가 포함된 팝업 창이 플레이 되면 성공!