카테고리 없음

AWS Kinesis Video Stream 라즈베리 파이 Producer 만들기

Wood Pecker 2021. 7. 26. 23:01

1. 개요

라즈베리파이에서 AWS의 Kinesis Video Stream에  비디오를 전송하고 이를 인터넷을 통하여 플레이 하여본다.

 

2. AWS Media Viewer(Consumer)

https://aws-samples.github.io/amazon-kinesis-video-streams-media-viewer/

이 뷰어를 이용하여 전송되는 비디오를 볼 것이다. Access Key와 SceretKey를 입력하고 Stream 이름을 설정하면 된다.

이는 마지막 단계에서 테스트할 때 수행할 것이며 지금은 다음 단계부터 수행한다.,

  1. AWS설정하기
    Video Stream을 Full Access 가능한 user를 산규 추가한다.

최종적으로 Create User를 클릭하면 Access key ID, Secret access key 를 만들어 준다. 이 키는 잘 보관한다.

다음은 Kinesis Video Streams를 선택한다.

새로운 video steream을 생성한다. testStream 을 만들었다.

 

 

 

4. Raspberry Pi 설정하기(Producer 만들기)

 

아마존 설정이 완료되면 비디오를 생성해서 아마존 클라우드에 보내고자 한다.

gstream에서 사용할 kvssink 플러그인을 만들 것이다. 먼저 필요한 패키지 부터 설치한다.

sudo apt-get install cmake m4 git build-essential
sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-tools
sudo apt-get install gstreamer1.0-omx
sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-app
sudo apt-get install openjdk-8-jdk
sudo apt-get install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-armhf

Kinesis Video Stream SDK를 다운로드하고 컴파일 한다. 아래의 명령어를 입력하자.

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

다운받은 폴더에 build 만들고 이동한다.

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

프로그램을 컴파일한다. 시간이 많이 소요될 것이다.

cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_JNI=TRUE
make

실행하여 본다. 먼저 build애서 상위 폴더를 이동하고 아래와 같이 환경 설정을 한다.

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

즉 다시 요약 설명하면 아래와 같다.

cd /home/pi/GunDetect/amazon-kinesis-video-streams-producer-sdk-cpp 
export GST_PLUGIN_PATH=`pwd`/build
export LD_LIBRARY_PATH=`pwd`/open-source/local/lib

다음 명령어를 입력하여 정상적으로 동작하는지 확인한다.

gst-device-monitor-1.0 
gst-inspect-1.0 kvssink 

다음 명령어로 서버에 비디오를 전송하여 본다. 물론 라즈베리에 카메라 모듈이 설치되어 있어야 한다.

gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480 ! omxh264enc control-rate=2 target-bitrate=512000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="스트림 이름" access-key="액세스키" secret-key="시크릿키" aws-region="설정된 지역"

스트림은 testStream이며 aws-region은 "us-east-1"을 사용하였다.

비디오 스트림이 정상적으로 동작하면 아마존 콘솔(Web Console)을 통하여 확인 할 수도 있다.

반응형