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 이름을 설정하면 된다.
이는 마지막 단계에서 테스트할 때 수행할 것이며 지금은 다음 단계부터 수행한다.,
- 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)을 통하여 확인 할 수도 있다.