2016년 3월 9일 수요일

Gear VR 로 TV 보기 - 3편 (안드로이드에서 Gstreamer?)

안드로이드를 잘 모르고 gstreamer 에 익숙한 개인 취향 때문에 약간 자기 합리화가된 경향이 있 나 reynaldo 가 잘 정리한 글을 보고나서 용기가 생겨서 이 방법으로 계속 진행해 보려고 한다.

원문 : Kickstart Your GStreamer on Android Development in 6 Easy Steps

멀티미디어와 gstreamer 에 익숙하고 제조사가 제공하는 High level API  에 만족하지 못하는 개발자들에게는 이 글이 가뭄의 단비와 같은 기회가 될 수 있을 것 같다.

거두 절미하고 6단계를 적어 보면, (참고로 안드로이드 개발에 경험이 없는 나를 기준으로 설명 하고자 한다.)

Step 1. 사전 준비

 개발에 필요한 소스들을 다운로드 해서 설치 해 둔다.

 3가지가 필요한데 기본 Android SDK, gstreamer android port 를 위한 Cerbero, 따라하고 공부를 위한 gst-sdk-tutorial 이다.

 각각의 세부 절차를 살펴보면,
 -  Android SDK
  Android Studio 와 Stand-Alone SDK Tools 중에 하나를 선택해서 ubuntu 에 설치한다.
  일전에 google glass app 하나 만들어 볼때 studio 를 설치해 봤기 때문에 이번에는 stand-alone sdk 를 다운 받았다.

  다운로드 링크 : Installing the Android SDK

 - Cerbero
  $ git clone git://anongit.freedesktop.org/gstreamer/cerbero

 - gst-sdk-tutorial
  $ git clone git://people.freedesktop.org/~slomo/gst-sdk-tutorials

Step 2. 빌드 준비

 준비가 되면 cerbero 를 빌드 하기 위해 bootstrap 을 해 준다.  $ cd cerbero
  $ ./cerbero-uninstalled -c config/cross-android.cbc bootstrap &&
    ./cerbero-uninstalled -c config/cross-android.cbc package gstreamer-1.0 &&
    echo $?

 관련 패키지를 모두 받아 빌드 해야 하기 때문에 시간이 많이 소요 된다. 차한잔 하고 오면 0 이 찍혀 있으면 성공 한 것이다. 다행히 한번에 성공.

Step 3. 안드로이드를 위한 gstreamer 준비

 빌드한 gstreamer 는 gstreamer-1.0-android-arm-1.7.90-runtime.tar.bz2 와
 gstreamer-1.0-android-arm-1.7.90.tar.bz2 2개 파일이 결과물이다.
 이 것을 적절한 위치에 풀어서 경로를 GSTREAMER_ROOT_ANDROID 환경 변수를 설정한다.

  $ mkdir ~/hobby/gstreamer-android-root
  $ cat "export GSTREAMER_ROOT_ANDROID=/home/gouache/hobby/gstreamer" >> .bashrc
  $ source ~/.bashrc

Step 4. App 빌드

 자.. app 개발할 준비가 끝났다. 아직 어떻게 개발할지 감이 없으니 tutorial 을 통해서 연습을 하고 그 코드를 base 로 확장해 나가야 겠다. android 는 5개의 tutorial 이 있는데 이 중에 마지막 것을 선택한다.

  $ cd ~/hobby/gst-sdk/tutorials/android-tutorial-5
  $ android update project -p . -s --target "android-23"
  $ ndk-build
  $ ant debug

  Release 로 패키징 하려면 key sign 이 필요하다.
  개인적으로 빌드하고 자동 실행하면서 쓰는 script (build.sh) 를 적어 보면
  #!/bin/bash
  ndk-build
  adb uninstall com.gst_sdk_tutorials.tutorial_5
  ant clean
  ant debug
  adb install bin/Tutorial5-debug.apk
  adb shell am start -n com.gst_sdk_tutorials.tutorial_5/.Tutorial5

Step 5. 앱 설치

 빌드가 금방 끝나면 apk 가 생성이 되고 이를 설치해 준다.

  $ adb install ./bin/Tutorial5-debug.apk

Step 6. 실행

 노트5 에 설치된 앱을 실행해 준다.

[gstreamer-sdk-tutorial5 App]
  그림은 http://docs.gstreamer.com/media/sintel_trailer-368p.ogv 를 스트리밍한 결과다

참고 

gstreamer 에 친숙한 사람이라면 '그냥 gst-launch 만 쓰면 편하잖아!' 라고 할텐데 이런 사람들을 위해 gst-launch-remote 라는 project 가 있다.

자 이렇게 reynaldo 의 가이드를 모두 따라해 봤다. 제목이 Easy step 이라서 정말 쉬울까 의문이 들었었는데 정말 쉽다. 이 정도라면 생면부지의 안드로이드 개발도 해볼만 하겠다.

그럼 다음엔 기본 방송 재생을 위해 tutorial5 코드를 base 로 layout 을 바꿔가며 app 을 만들어 봐야 겠다.

댓글 없음: