[GStreamer] 윈도우 Visual Studio 개발 환경 설정

GStreamer 2017.03.06 19:42 Posted by 김한별 behonestar

Windows7 64bit, Visual Studio 10 기준으로 기술하였습니다.



GStreamer 1.10.4 설치

1. 다운로드 

2. gstreamer-1.0-x86_64-1.10.4.msi / gstreamer-1.0-devel-x86_64-1.10.4.msi 설치

 ※ 설치 경로를 기억하세요. 저는 D:\gstreamer에 설치하였습니다.



환경변수 등록

1. 내 컴퓨터 > 속성 > 고급시스템 설정 > 환경변수 > 시스템 변수 > Path [편집]

2. ..;D:\gstreamer\1.0\x86_64\bin 덧붙이고 [확인]


SDK 템플릿 Visual Studio로 복사

1. D:\gstreamer\1.0\x86_64\share\vs\2010\wizard의 파일 3개 복사

 - gst-sdk-template.ico

 - gst-sdk-template.vsdir

 - gst-sdk-template.vsz

2. C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojects에 붙여넣기

3. D:\gstreamer\1.0\x86_64\share\vs\2010\gst-template 폴더 복사

4. C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards에 붙여넣기



Windows DDK 7.1.0 설치

1. 다운로드

2. 설치 후 경로 확인 (C:\WinDDK\7600.16385.1)



Visual Studio 10 설정

1. Visual Studio 10 실행

2. New > Project > Visual C++ > gstreamer template 선택하고 프로젝트 생성


3. 프로젝트 속성 > 구성 속성 > 디버깅 > 작업 디렉토리 > 편집 >  $(GSTREAMER_1_0_ROOT_X86_64)\bin 입력 > 확인


4. 프로젝트 속성 > 구성 속성 > C/C++ > 일반 > 추가 포함 디렉터리 > 편집에서 GStreamer 경로가 포함된 것을 확인


만약 포함되어 있지 않다면, 속성 관리자 > 프로젝트 > 기존 속성 시트 추가 > D:\gstreamer\1.0\x86_64\share\vs\2010\msvc 폴더의 x86.props(32비트) 또는 x86_64.props(64비트) 열기




5. 속성 관리자 > Debug > x86_64 > config > DDK 경로 들어간 것을 확인


6. 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, 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;

}



참고

  • https://gstreamer.freedesktop.org/documentation/installing/on-windows.html