Visual Studio 2019에서 GStreamer를 사용하기 위해 설정하는 방법을 설명합니다.
2022. 1. 13 최초작성
1. 다음 링크에서 Visual Studio용 GStreamer를 다운로드할 수 있습니다. 글작성 시점에서 최신버전은 1.18.5 입니다. MSVC 64-bit 항목에 있는 runtime installer와 development installer를 다운로드 해야 합니다.
https://gstreamer.freedesktop.org/download/
2. gstreamer-1.0-msvc-x86_64-1.18.5.msi 설치를 진행합니다. 설치 중 Typical을 선택했습니다.
주의할점은 USB 메모리나 외장 하드가 연결되지 않은 상태에서 해야 합니다. 마지막 드라이브에 설치되기 때문입니다.
예를 들어 C드라이브와 D드라이브가 있는 경우 D드라이브에 설치됩니다.
원하는 디렉토리로 변경하려면 Custom을 선택하여 진행하세요. 이때 설치 패키지 항목은 변경할 필요가 없습니다.
3. gstreamer-1.0-devel-msvc-x86_64-1.18.5.msi 설치를 진행합니다. 설치 중 Typical을 선택했습니다.
주의할점은 USB 메모리나 외장 하드가 연결되지 않은 상태에서 해야 합니다. 마지막 드라이브에 설치되기 때문입니다.
예를 들어 C드라이브와 D드라이브가 있는 경우 D드라이브에 설치됩니다.
원하는 디렉토리로 변경하려면 Custom을 선택하여 진행하세요. 이때 설치 패키지 항목은 변경할 필요가 없습니다.
4. 설치가 완료되면 D:\gstreamer에 설치됩니다. 드라이브명은 사용하는 PC의 마지막 드라이브가 됩니다.
본 글에서는 D:\gstreamer에 설치된 것으로 가정하고 진행하니 주의하세요.
5. 윈도우 키 + R을 누른 후, sysdm.cpl을 실행합니다.
사용자 변수에 gstreamer의 루트 디렉토리가 다음처럼 추가되어 있습니다. 설치한 PC의 드라이브 차이로 다음 경로에서 드라이브명만 차이가 있을 수 있습니다.
6. 환경변수 path에 gstreamer의 bin 디렉토리를 추가합니다. 설치한 PC의 드라이브 차이로 다음 경로에서 드라이브명만 차이가 있을 수 있습니다.
D:\gstreamer\1.0\msvc_x86_64\bin
7. 시스템 변수에 다음 변수를 추가합니다.
변수 이름 : GST_PLUGIN_SYSTEM_PATH
변수 값 : D:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0
8. 명령 프롬프트에서 다음 명령을 실행합니다. 다음처럼 실행되어야 합니다. 문제가 있다면 앞에서 설정이 잘못된 것입니다.
gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink
9. Visual Studio 2019에서 새 프로젝트 만들기를 선택합니다.
10. Windows 데스크톱 마법사를 선택합니다.
11. 프로젝트 이름을 적고 만들기를 클릭합니다.
12. 애플리케이션 종류로 콘솔 애플리케이션을 선택하고, 빈 프로젝트를 체크합니다. 확인을 클릭합니다.
13. 솔루션 탐색기에서 소스 파일을 선택하고 마우스 우클릭하여 메뉴에서 추가 > 새 항목을 선택합니다.
14. C++ 파일을 선택하고 이름 항목에서 cpp 파일 이름을 수정합니다. 추가를 클릭합니다.
15. 솔루션 플랫폼을 x64로 변경합니다.
16. 메뉴에서 프로젝트 > 속성을 선택합니다.
17. 구성을 모든 구성으로 변경하고 왼쪽 항목에서 디버깅을 선택합니다. 오른쪽에서 환경을 선택하고 다음값을 입력합니다.
DLL 파일의 위치를 알려주기 위한 것입니다.
PATH=D:\gstreamer\1.0\msvc_x86_64\bin;%PATH%
18. 왼쪽 항목에서 C/C++ 항목을 선택하고 오른쪽에서 추가 포함 디렉터리를 선택한 후, 다음 값을 입력합니다.
헤더파일 위치를 알려주기 위한 것입니다.
D:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0\include;D:\gstreamer\1.0\msvc_x86_64\include\gstreamer-1.0;D:\gstreamer\1.0\msvc_x86_64\include\glib-2.0;D:\gstreamer\1.0\msvc_x86_64\include\glib-2.0\glib
19. 왼쪽 항목에서 링커를 선택하고 오른쪽에서 추가 라이브러리 디렉터리를 선택한 후, 다음 값을 입력합니다.
라이브러리 파일 위치를 알려주기 위한 것입니다.
D:\gstreamer\1.0\msvc_x86_64\lib
20. 왼쪽 항목에서 링커 > 입력을 선택하고, 오른쪽에서 추가 종속성을 클릭한 후, 다음 값을 입력합니다.
사용할 라이브러리 이름을 알려주기 위한 것입니다.
gobject-2.0.lib;glib-2.0.lib;gstreamer-1.0.lib;
설정이 완료되었으니 확인 버튼을 클릭하세요.
21. 다음 코드를 cpp 파일에 복사합니다.
#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)); /* Free resources */ if (msg != NULL) gst_message_unref(msg); gst_object_unref(bus); gst_element_set_state(pipeline, GST_STATE_NULL); gst_object_unref(pipeline); return 0; } |
22. 실행해보면 다음처럼 영상이 플레이 됩니다. 디버그 / 릴리즈 모드에서 동작이 가능했습니다.
참고한 사이트
https://homanhuang.medium.com/back-to-the-gstreamer-basic-1-c-vs2019-d516c35c9e2f
'Gstreamer' 카테고리의 다른 글
OpenCV + GStreamer로 만드는 RTSP Streaming (0) | 2024.01.14 |
---|---|
Ubuntu에 GStreamer 설치하고 웹캠 영상 가져와보기 (0) | 2023.10.18 |
GStreamer를 RTSP Client로 사용시 패스워드에 @가 포함되어 있다면 인증 에러가 발생합니다. (0) | 2023.10.14 |
Visual Studio 프로젝트의 코드에서 Gstreamer 플러그인 위치 지정 (0) | 2023.10.13 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!