본문 바로가기

동계 현장 실습/AWS Rekognition

AWS Rekognition (18) GStreamer 설치 및 환경설정

참고: https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/streaming-using-gstreamer-plugin.html

 

GStreamer 플러그인을 사용하여 스트리밍 - Amazon Rekognition

시작 명령이 비협상 오류로 종료되면 장치 모니터의 출력을 확인하고videoconvert매개 변수 값은 장치의 유효한 기능입니다.

docs.aws.amazon.com

 

1단계: GStreamer 설치

sudo apt update

패키지를 업데이트 해줍니다.

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

GStreamer를 설치합니다.

 gst-inspect-1.0 --version

GStreamer 설치 버전을 확인합니다.

 

gst-launch-1.0 videotestsrc ! autovideosink

설치 후 테스트 비디오 실행 결과입니다.

실행 결과입니다.

 

2단계: Kinesis Video Streams 제작자 플러그인 설치

git clone --recursive https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git

(git 설치가 안 되신 분들은 sudo apt install git을 통해 git을 설치해주시기 바랍니다.)

실행 모습입니다.

 

실행 후, https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/README.md 의 지침을 활용하여 환경설정을 진행합니다.

 

cmake가 설치되어있지 않다면, 설치해줍니다.

sudo apt  install cmake  # version 3.16.3-1ubuntu1

커맨드로 설치해야합니다.

 

<위의 홈페이지에 나온 환경설정>

git clone을 통해 다운받은 파일을 빌드해야합니다.

mkdir -p amazon-kinesis-video-streams-producer-sdk-cpp/build
cd amazon-kinesis-video-streams-producer-sdk-cpp/build
cmake ..

디렉토리를 만들고, 디렉토리로 이동합니다. 컴파일합니다.

***********

우분투 환경에 설치하는 것이므로, 라이브러리를 다운받기 위해 아래와 같은 명령을 입력합니다.

 cd .. 를 입력하여 build 디렉토리가 아닌, amazon-kinesis-video-streams-producer-sdk-cpp 디렉토리에서 실행합니다.

cd ..
sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools

 

설치 후에 다시 build 디렉토리에서 아래 커맨드를 입력합니다.

 

cd build
cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_JNI=TRUE

 

build 디렉토리에서 컴파일을 위해 cmake를 실행했다면, make를 입력합니다..

make

 

 

이제 좀 어려운 과정입니다. 

cd ..
pwd

의 결과로 나오는 현재 디렉토리의 위치를 복사해줍니다.

현재 위치를 복사합니다.

cd

홈 디렉토리로 이동하여, 아래와 같은 명령을 입력합니다.

export GST_PLUGIN_PATH=`pwd`/build
export LD_LIBRARY_PATH=`pwd`/open-source/local/lib

실제 명령을 사용한 모습입니다.

즉 'pwd'에 들어갈 부분을 build 디렉토리의 부모 디렉토리의 위치 (pwd) 값을 넣어주는 것 입니다.

 

명령어 실행 후, 아래와 같은 명령을 실행합니다.

gst-inspect-1.0 kvssink

설치 후, 팩토리 및 플러그인 세부 정보와 같읕 다음 정보가 나타납니다.

Factory Details:
  Rank                     primary + 10 (266)
  Long-name                KVS Sink
  Klass                    Sink/Video/Network
  Description              GStreamer AWS KVS plugin
  Author                   AWS KVS <kinesis-video-support@amazon.com>
                
Plugin Details:
  Name                     kvssink
  Description              GStreamer AWS KVS plugin
  Filename                 /Users/YOUR_USER/amazon-kinesis-video-streams-producer-sdk-cpp/build/libgstkvssink.so
  Version                  1.0
  License                  Proprietary
  Source module            kvssinkpackage
  Binary package           GStreamer
  Origin URL               http://gstreamer.net/
  
  ...

 

위와 같은 실행 결과를 확인할 수 있습니다.

 

3단계: Kinesis 비디오 스트림 플러그인을 사용하여 GStreamer 실행

디바이스 카메라에서 Kinesis Video Streams으로 스트리밍을 시작하기 전에 미디어 소스를 Kinesis 비디오 스트림에 적합한 코덱으로 변환해야할 수 있습니다. 현재 컴퓨터에 연결된 디바이스의 사양 및 포맷 기능을 확인하려면 다음 명령을 실행합니다.

gst-device-monitor-1.0

스트리밍을 시작하려면 다음 샘플 명령을 사용하여 Gstreamer를 실행하고 자격 증명 및 Amazon Kinesis Video Streams 정보를 추가합니다. 생성한 IAM 서비스 역할에 대한 액세스 키와 리전을 사용해야 합니다.Amazon Rekognition Kinesis 스트림에 대한 액세스 권한 부여. 액세스 키에 대한 자세한 내용은IAM 사용자의 액세스 키 관리IAM 사용 설명서. 또한 사용량에 따라 필요하고 장치에서 사용할 수 있도록 비디오 형식 인수 매개 변수를 조정할 수 있습니다.

 

gst-launch-1.0 autovideosrc device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! 
                x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! 
                kvssink stream-name="YOUR_STREAM_NAME" storage-size=512 access-key="YOUR_ACCESS_KEY" secret-key="YOUR_SECRET_ACCESS_KEY" aws-region="YOUR_AWS_REGION"

리전과 Access key에 관한 설명은 https://jhlim2993.tistory.com/11?category=1066379 

 

AWS Rekognition 사용 (2)- 초기 환경 설정

참고: https://docs.aws.amazon.com/ko_kr/rekognition/latest/dg/get-started-exercise.html 3단계: 을 사용하여 시작하기AWS CLI및AWSSDK API - Amazon Rekognition 이 페이지에 작업이 필요하다는 점을 알려 주..

jhlim2993.tistory.com

 

 

GStreamer 시작 명령 참고 사이트: https://docs.aws.amazon.com/ko_kr/kinesisvideostreams/latest/dg/examples-gstreamer-plugin.html#examples-gstreamer-plugin-launch

 

예: Kinesis Video Streams 생산자 SDK GStreamer 플러그인 - Amazon Kinesis Video Streams

에서는 Docker 컨테이너에서 macOS를 실행할 때만 네트워크 카메라에서 비디오를 스트리밍할 수 있습니다.GStreamer 도커 컨테이너의 macOS에 있는 USB 카메라에서 비디오를 스트리밍하는 것은 지원되

docs.aws.amazon.com