Linux2015. 9. 15. 13:20


http://docs.gstreamer.com/display/GstSDK/Installing+the+SDK


GstreamerSDK는 리눅스배포판별로 바이너리 패키지셋을 제공한다. 배포판 중에 Ubuntu에 대한 자세항 설명을 기술할거다.

소스코드를 다운로드하고 직접 빌드해서 환경을 설정할 수 도 있다.


다운로드 및 SDK 설치


1. Ubuntu 12.04(Precise Pangolin) 설치

2. gstreamer-sdk.list를 apt source list에 추가

SDK의 repository정보를 apt source list에 추가해주어야 한다.

다운로드 후 다음 명령으로 추가한다.

sudo cp gstreamer-sdk.list /etc/apt/sources.list.d/

3. GPG key추가 및 레포지트리 리프레시

이어서 apt repository의 GPG key가 추가되어야 하고 목록이 리프레시 되어야 한다.

wget -q -O - http://www.freedesktop.org/software/gstreamer-sdk/sdk.gpg | sudo apt-key add -

sudo apt-get update

4. SDK 설치

이제 새 레포지트리가 활성화되었다. 아래 명령으로 SDK를 설치하면 된다.

sudo apt-get install gstreamer-sdk-dev


개발환경 설정


빌드시 컴파일러는 하이브러리드를 반드시 특정 위치에 있어야 한다.  시스템에 설치된 Gstreamer와의 충돌을 방지하기 위해 비표준 위치(/opt/gstreamer-sdk)에 설치 된다.  쉘스크립트인 gst-sdk-shell은 SDK로 빌드하기 위한 필요한 환경변수들을 설정해준다.

/opt/gstreamer-sdk/bin/gst-sdk-shell

한가지더 필요한 개발환경은 gcc compiler와 text editor이다. SDK로 앱 코드를 빌드할 때 gcc command에 아래 내용을 반드시 추가해 주어야 한다.

'pkg-config --cflags --libs gstreamer-0.10'

다른 gstreamer library를 사용하고 있다면 예를 들어 video 라이브러리 같은... gstreamer-0.10뒤에 추가해주어야 한다.

'pkg-config --cflags --libs gstreamer-0.10 gstreamer-video-0.10'

빌드 시 libtool이 필요한 경우 즉 automake/autoconf를 사용하는 경우라면 configure 스크립트를 gst-sdk-shell환경으로부터 실행해야 한다.

SDK경로를 포함시킬 수 있는 방법이 있는데 그렇게 하면 gst-sdk-shell로부터 실행할 필요가 없다. gcc옵션에 다음과 같이 추가하면 된다.

-Wl, -rpath=/opt/gstreamer-sdk/lib 'pkg-config --cflags --libs gstreamer-0.10'

libtool을 사용하는 경우라면 자동으로 -Wl과 -rpath를 추가해줄것이기 때문에 걱정이 필요없다.


튜터리얼 소스코드 받기


git clone git://anongit.freedesktop.org/gstreamer-sdk/gst-sdk-tutorials

/opt/gstreamer-sdk/share/gst-sdk/tutorials


튜터리얼 빌드하기


시스템과 충돌없이 올바른 라이브러리로 빌드하기 위해서 Gstreamer SDK shell로 먼저 진입해야 한다. /opt/gstreamer-sdk/bin/gst-sdk-shell 을 실행하여 쉘로 진입하라.

그리고 튜터리얼 코드가 있는 폴더로 이동해서 아래 명령으로 빌드하면 된다.


gcc basic-tutorial1-1.c -o basic-tutorial-1 'pkg-config --cflags --libs gstreamer-0.10'


사용하려고 하는 라이브러리에 따라서 pkg-config에 추가가 더 되어야 한다.  튜터리얼코드의 아랫부분에는 필요한 라이브러리들이 순서대로 기술되어 있을 것이다.


앱 배포

배포할 앱은 반드시 필요한 라이브러리들이 함께 있어야 한다. 몇가지 옵션이 있다.

한가지는 shared sdk를 설치할거라면 앱은 /opt/gstreamer-sdk에 두고 .desktop파일을 /usr/share/applications에 만들어 두는 것이다. 문제없이 동작하게 하려면 -Wl, -rpath=/opt/gstreamer-sdk/lib 파라메터로 앱이 빌드되어 있어야 한다.

또는 wrapper script를 사용하는것이다. 이는 필요한 환경변수를 셋팅하고 나서 앱을 생성한다. 그리고 .desktop file을 /usr/share/applications에 생성한다. 가장 많이 사용되는 접근법이고 -WL, -rpath파라메터를 요구하지 않고 더 효율적이다. gst-sdk-shell파일을 둘러보아서 스크립트가 멀 하는지 알아보길 바란다.


Posted by 삼스