안녕하세요! mAy-I의 엔지니어 고강련입니다 :)
영상처리에 꼭 필요한 것 중 하나는 영상을 어떻게 처리하고, 저장할 수 있는지라고 생각합니다. 메이아이에서는 실시간 영상 수집을 위한 개발을 진행하고 있으며, 이를 위한 도구 중 하나인 Gstreamer라는 파이프라인 기반 멀티미디어 프레임워크의 사용법에 대해 공유해드리려 합니다. Gstreamer는 오디오 및 비디오 재생, 저장, 처리 등을 할 수 있는 프레임워크로 영상 편집기, 미디어 플레이어 같은 프로그램을 만드는데도 사용할 수 있습니다.
Gstreamer를 어떻게 설치하는지에서 부터 구성 요소와 용어는 어떤 것을 사용하는지, Gstreamer를 사용하는 예시는 무엇인지 등에 대해서 테스트해보고, 성공했던 예시를 알려드리겠습니다!
이번 포스팅에서는 Ubuntu 18.04 LTS가 설치된 라즈베리파이4를 사용합니다.
List
1. 라즈베리파이4에 Gstreamer 최신 릴리즈 버전 설치하기
2. 라즈베리파이4에 Gstreamer 1.16 version 설치하기
2–1. 패키지들 설치
2–2. dir 생성 및 dir 이동
2–3. repo에서 다운로드
2–4. 다운받은 파일들 빌드하기
2–5. motion cells를 위한 gstreamer-devel 설치하기
3. 설치 확인하기, 테스트 코드
3–1. 설치 확인하기
3-2. ip camera의 rtsp protocol에 접근해 영상을 가져오는 테스트 코드
2. 라즈베리파이4에 Gstreamer 1.16 version 설치하기
2–1. 패키지들 설치
2–2. dir 생성 및 dir 이동
2–3. repo에서 다운로드
2–4. 다운받은 파일들 빌드하기
2–5. motion cells를 위한 gstreamer-devel 설치하기
3. 설치 확인하기, 테스트 코드
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의 기초와 각종 예시에 대해 알려드리겠습니다.
▼ 오프라인 공간 분석 트랜드를 알고 싶다면 구독하세요!
메이아이 뉴스레터 구독신청
″영상처리 인공지능을 통해 오프라인 공간의 디지털 트랜스포메이션을 만들자” 오프라인 방문객 분석 트랜드, 메이아이의 인공지능 엔진 ‘daram’의 성장 이야기 그리고 메이아이의 다양한 소식을 만날 수 있습니다. 나날이 더욱 강력한 인공지능으로 거듭나고 있는 메이아이의 든든한 구독자가 되어 보세요!