본문 바로가기
SWE/스트리밍

Linux에 GStreamer 설치 (Ubuntu)

by S나라라2 2022. 7. 1.
반응형

Linux에 GStreamer 설치 (Ubuntu)

 

 

개발 환경

Ubuntu LTS 20.04.4

 

 

리눅스에 GStreamer 설치하기

 

1. 관리자 권한으로 변경

*GStreamer를 올바르게 설치하기 위해서는 super user권한으로 설치해야 한다.

$su root

 

2.GStreamer 설치

아래 명령어로 gstreamer를 설치한다.

# apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

 

3.GStreamer설치 확인

# dpkg -l | grep gstreamer

 

아래와 같이 gstreamer이름이 들어간 패키지들이 나오면 설치 성공이다.


GStreamer를 이용해서 application 빌드하기

 

1. 튜토리얼 소스코드 다운받기

$ git clone https://gitlab.freedesktop.org/gstreamer/gst-docs

 

모든 튜토리얼을 다운받을 생각이 없다면 아래의 코드만 테스트해봐도 된다. 

c파일을 만들고 아래 코드를 복사한다.

더보기
#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
            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;
}

 

2. 튜토리얼1(Hello world) 빌드하기

$ gcc basic-tutorial-1.c -o basic-tutorial-1 `pkg-config --cflags --libs gstreamer-1.0`

GSteamer코드를 컴파일하기 위해서는 gcc 명령어에 뒤에 'pkg-config' 를  추가해야 한다.

 

사용하고 있는 라이브러리를 뒤에 추가하면 된다.

예를 들어 video library를 사용한다면 아래와 같이 gstreamer-video-1.0를 추가한다.

$pkg-config --cflags --libs gstreamer-1.0 gstreamer-video-1.0

 

3. 튜토리얼1 실행하기

$ ./basic-tutorial-1

아래와 같이 영상이 플레이되면 성공이다

(나는 big buck bunny 트레일러를 실행시켜서 토끼가 나오고 있지만, basic tutorial 코드를 그대로 실행했다면 신텔 트레일러가 나온다.)

* 빅버니 트레일러 url = https://wiki.yoctoproject.org/wiki/images/a/a6/Big-buck-bunny_trailer.webm

 

 

 

반응형