안녕하세요! mAy-I의 엔지니어 고강련입니다 :)
영상처리에 꼭 필요한 것 중 하나는 영상을 어떻게 처리하고, 저장할 수 있는지라고 생각합니다. 메이아이에서는 실시간 영상 수집을 위한 개발을 진행하고 있으며, 이를 위한 도구 중 하나인 Gstreamer라는 파이프라인 기반 멀티미디어 프레임워크의 사용법에 대해 공유해드리려 합니다. Gstreamer는 오디오 및 비디오 재생, 저장, 처리 등을 할 수 있는 프레임워크로 영상 편집기, 미디어 플레이어 같은 프로그램을 만드는데도 사용할 수 있습니다.
Gstreamer를 어떻게 설치하는지에서 부터 구성 요소와 용어는 어떤 것을 사용하는지, Gstreamer를 사용하는 예시는 무엇인지 등에 대해서 테스트해보고, 성공했던 예시를 알려드리겠습니다!
이번 포스팅에서는 Ubuntu 18.04 LTS가 설치된 라즈베리파이4를 사용합니다.
| List |
- 라즈베리파이4에 Gstreamer 최신 릴리즈 버전 설치하기
- 라즈베리파이4에 Gstreamer 1.16 version 설치하기
2–1. 패키지들 설치
2–2. dir 생성 및 dir 이동
2–3. repo에서 다운로드
2–4. 다운받은 파일들 빌드하기
2–5. motion cells를 위한 gstreamer-devel 설치하기 - 설치 확인하기, 테스트 코드
3–1. 설치 확인하기
3–2. ip camera의 rtsp protocol에 접근해 영상을 가져오는 테스트 코드
1. 라즈베리파이4에 Gstreamer 최신 릴리즈 버전 설치하기
- Gstreamer의 최신 릴리즈 버전을 설치하는 것은 매우 간단합니다.
아래의 링크로 들어가 자신의 운영체제에 해당하는 명령어를 ‘복사- 붙여넣기’만 하면 됩니다. - https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c
- Ubuntu 18.04 LTS를 설치한 라즈베리파이4에는 [Install GStreamer on Ubuntu or Debian] 의 코드를 사용해야 겠네요!

2. 라즈베리파이4에 Gstreamer 1.16 version 설치하기
- Gstreamer의 버전은 많고, 사용하고자 하는 기능이 최신 릴리즈 버전에 존재하지 않을 때는 원하는 Gstreamer 버전을 선택해 빌드하는 것이 좋습니다.
2–1. 패키지들 설치
- 아래의 명령어를 입력해 패키지를 설치합니다.

- 설치 중에 아래처럼 libtag1-dev 설치 오류가 발생했을 경우 ‘sudo apt-get update -y’ 명령어를 입력한 후 다시 진행합니다.


- 설치 중에 gobject-introspection (1.58.3–2) 항목에서 오랜 시간동안 기다리게 되는데 오류가 난 것이 아니니 안심하셔도 됩니다.

- 설치가 제대로 된 경우 아래의 로그가 남게 됩니다!

2–2. dir 생성 및 dir 이동
- 필요한 디렉토리를 생성 후 이동합니다.


2–3. repo에서 다운로드

- 이렇게 설치 후, h264parse를 사용할 때 h264parse가 없다 하면 해당 플러그인을 새로 설치해주면 됩니다.

2–4. 다운받은 파일들 빌드하기
- 위에서 다운받은 gstreamer, gst-plugins-(base, good, ugly, bad), gst-libav, gst-python를 빌드합니다. 총 7개 폴더에서 빌드를 해야하니 제대로 확인해주세요!
- 각 명령어 중에 autogen.sh, make 하는 데 시간이 걸립니다.(약 10~20분)
- branch 종류를 확인하고, 원하는 버전을 $BRANCH 위치에 넣어주어야 합니다. (여기서는 1.16 버전을 사용해 보겠습니다)

- 어떤 branch가 존재하는지 ‘git branch -r’ 명령어로 확인할 수 있습니다.

2–4–1) gstreamer




2–4–2) gst-plugins-base

2–4–3) gst-plugins-good

2–4–4) gst-plugins-ugly

2–4–5) gst-libav

2–4–6) gst-plugins-bad

2–4–7) gst-python

2–5. motion cells를 위한 gstreamer-devel 설치하기
- gstreamer1.0-opencv 안에 motioncells 존재하는데, 현재는 gstreamer1.0-opencv가 없기에 gstreamer1.0-opencv를 설치합니다.

3. 설치확인하기, 테스트 코드
3–1. 설치확인하기



3–2. ip camera의 rtsp protocol에 접근해 영상을 가져오는 테스트 코드
- pipline_r 변수에 들어가는 것이 pipeline을 구성하는 것입니다.

지금까지 최신 Gstreamer를 설치하는 방법, 원하는 버전의 Gstreamer를 설치하는 방법에 대해 다루었습니다. 다음 포스팅에서는 Gstreamer의 기초와 각종 예시에 대해 알려드리겠습니다.
👇 오프라인 공간 분석 트랜드를 알고 싶다면 구독하세요!
