[초보자] Amazon Kinesis Video Streams를 사용해 보세요.

5131 단어 KinesisVideoStreamAWS

의 목적

  • 애니메이션 발표에 대한 지식을 배워야 하기 때문에 먼저 실제 기계로 기본적인 내용을 시도하기로 했다.
  • Kinessis Video Streams는 (자신의 이해)

  • 카메라의 운동 이미지를 수신하여 흐름으로 저장하여 나누어 주고 해석하는 다른 서비스에 전달할 수 있는 서비스.
  • 해본 일

  • USB 카메라(Buffalo BSWHD06M)를 래칫 휠(Raspberry Pi3 model B)에 연결합니다.
  • Kinessis Video Streams의 ProducterSDK를 래칫 휠에 설치합니다.
  • 실러캔스 파이에서 나온 애니메이션을 AWS 도쿄 지역으로 보내 관리 콘솔의 애니메이션 미리 보기 화면에서 확인한다.
  • 구성도



    작업 단계


    공식 문서: Kiness 비디오 스트리밍 시작에 따라 작업을 진행하다.

    Access Key 릴리즈

  • IAM 사용자를 만들고 "Amazo n K i e sis Video StreamsFull Access"권한을 부여하여 Access Key를 발행합니다.이후 톱니바퀴 옆에 있는 애니메이션 발송 명령을 실행할 때 사용합니다.
  • 흐름 생성

  • 관리 콘솔의 Kinessis Video Streams 화면에 흐르는'mksamba-video-stream'을 만듭니다.흐름이란 카메라 등(producter)에서 운동 이미지를 수신하고 축적하여 다른 서비스 등(consummer)으로 전송하는 파이프 같은 구역이다.
  • 사과파이를 준비하다

  • OS(Raspbian Stretch)를 설치합니다.환경은 다음과 같습니다.
  • pi@raspberrypi:~ $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Raspbian
    Description:    Raspbian GNU/Linux 9.8 (stretch)
    Release:        9.8
    Codename:       stretch
    
  • USB 카메라가/dev/video0으로 인식되었음을 확인합니다.
  • 클라이언트 설치


  • 공식 문서: 단계 3: Kinesis가 영상 흐름에 데이터를 보내기에 따라 라떼 파이에 사용되는 클라이언트(C++ 프로듀서 라이브러리)를 넣습니다.
  • 문서와 같이 "Raspbian 상황에서..."를 관찰하면서 명령을 입력했지만 오류가 계속 발생하여 오류 추정에 따라 패키지를 추가합니다.
  • $ git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp 
    $ sudo apt-get install gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
    $ sudo apt-get install gstreamer1.0-omx
    (kinesis-video-native-build ディレクトリに移動し、) $ ./min-install-script
    
  • 다음은 공식 문서에 없는 추가 설치입니다.먼저실행할 때 cmake가 없다고 해서 cmake를 추가합니다.
  • $ sudo apt-get install cmake
    
  • 이어'Could NOT find Log4cplus(missing: LOG4CPUS LIBRARIES LOG4CPLUS INCLUDE DIR'등의 오류가 발생할 수 있으므로 다음과 같은 내용을 추가한다.
  • 공식 문서에는 다음과 같은 봉인이 필요하지 않지만 github의 README에 기재되어 있다.
  • $ sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-1.1-9 liblog4cplus-dev
    
  • 공식 문서에 기재된 다음 명령을 사용하여 카메라 애니메이션을 Kinessis Video Streams에 전송하려고 했으나 오류가 발생했습니다.순서대로 수정하다.
  • $ 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="MyKinesisVideoStream" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
    
  • 우선 WARNING(실제로는 잘못된 것으로 영상 발송이 불가)이 발생했는데 이 WARNING'속성'은 원소'omxh264enc-omxh264enc0'에 없다.'periodicity-idr'를'periodicty-idr'로 수정합니다.(영어 단어는'periodicity'이지만 매개 변수는'periodicty'입니다.)
  • 에 이어'WARNING: 원소'kvssink'가 없는 WARNING이 발생했다.공식 문서에 기재되지 않았기 때문에 AWS 지원도 확인하고 다음과 같은 설정을 추가한다.kvssink의 실체libgstkvssink.so가 gstreamer에서 참조할 수 있도록 경로를 조정해야 합니다.
  • export GST_PLUGIN_PATH=/home/pi/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH
    export LD_LIBRARY_PATH=/home/pi/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib
    cp -p /home/pi/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/libgstkvssink.so /home/pi/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib/gstreamer-1.0/
    
    

    비디오 전송 확인


  • 카메라의 입력은 안전하게 Kinessis Video Streams에 전송되며 관리 컨트롤러를 통해 표시할 수 있다.
  • 오른쪽 하단에'LIVE-8.0초'로 표시되는데 필자의 환경에서 영상을 올리고 표시하는 데 약 8초가 걸린다.어느 구간이 시간이 걸렸는지 알 수 없다(lazupi의 인코딩 처리, 인터넷을 통한 업로드, AWS 측 처리 등).
  • 라즈파 방면의 구조로서의 대체적인 이해는 다음과 같다.
  • gstreamer는 흐르는 미디어 응용을 만드는 프레임워크입니다.
  • kvssink는 AWS가 gstreamer를 위해 개발한 플러그인(동기화 소자)이다.소자란 gstreamer에서 입력과 출력을 하는 파이프를 가리키며 동기화 소자는 외부 출력을 하는 소자입니다.
  • 감상

  • 클라이언트를 설치하는 데 상당한 시간이 소요됩니다.만약 linux 지식 등이 있다면 문서에 기재되지 않아도 뇌에 보충할 수 있다
  • 다음 단계로 Rekognition Video 등과 연합을 실시하고자 합니다.
  • 참고 문장

  • Gstreamer 어플리케이션 개발 브로셔
  • 좋은 웹페이지 즐겨찾기