기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Kinesis 비디오 스트림으로 데이터 전송
이 섹션에서는 카메라의 미디어 데이터를 이전 섹션에서 만든 Kinesis 비디오 스트림으로 보내는 방법을 설명합니다. 이 섹션에서는 C++ 프로듀서 라이브러리 사용를 예: Kinesis Video Streams SDK GStreamer 프로듀서 플러그인 - kvssink 플러그인으로 사용합니다.
다양한 운영 체제의 다양한 디바이스에서 미디어를 전송하기 위해 이 자습서에서는 Kinesis Video Streams C++ 프로듀서 라이브러리와 카메라 GStreamer및 기타 미디어 소스에 대한 액세스를 표준화하는 오픈 소스 미디어 프레임워크를 사용합니다.
빌드 및 샘플 SDK
컴퓨터나 내부에서 SDK 및 샘플을 만들 수 있습니다 AWS Cloud9. 아래의 적절한 절차를 따르십시오.
- Build on your computer
-
readme 파일의 지침을 사용하여 제작자 라이브러리와 샘플 애플리케이션을 빌드하십시오.
여기에는 다음이 포함됩니다.
-
종속성 설치
-
리포지토리 복제
-
메이크파일 CMake생성에 사용
-
make를 사용하여 바이너리 파일 빌드하기
- Build in AWS Cloud9
-
다음 절차에 따라 Kinesis Video AWS Cloud9 Streams에 업로드하십시오. 컴퓨터에 아무것도 다운로드할 필요가 없습니다.
-
AWS Management Console에서 엽니다 AWS Cloud9.
환경 만들기를 선택합니다.
-
환경 만들기 화면에서 다음을 완료하십시오.
다른 필드는 기본 선택 사항을 그대로 둘 수 있습니다.
-
환경이 생성되면 IDECloud9 열에서 Open을 선택합니다.
화면 하단 중간 영역에 표시됩니다. Admin:~/environment $
이것은 AWS Cloud9
(아마존EC2) 터미널입니다.
실수로 터미널을 닫은 경우 창, 새 터미널을 선택합니다.
터미널에서 다음 명령을 실행하여 볼륨을 20GiB로 변경합니다.
-
스크립트를 다운로드합니다.
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
-
스크립트에 실행 권한을 부여합니다.
chmod +x resize_volume.sh
-
스크립트를 실행합니다.
./resize_volume.sh
-
고급 패키징 도구 (APT) 를 통해 설치하거나 업데이트할 수 있는 모든 소프트웨어에 대한 최신 정보를 가져옵니다.
이 명령은 소프트웨어 자체를 업데이트하지는 않지만 사용 가능한 최신 버전이 무엇인지 시스템이 알 수 있도록 합니다.
sudo apt-get update
-
C++ 프로듀서 SDK 종속성을 설치합니다.
sudo apt-get install -y cmake m4 git build-essential pkg-config 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
-
git을 사용하여 C++ 프로듀서를 복제합니다. SDK
git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
-
빌드 디렉터리를 준비하세요.
cd amazon-kinesis-video-streams-producer-sdk-cpp
mkdir build
cd build
-
메이크파일을 생성하는 CMake 데 사용합니다.
cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF
예상 출력의 끝은 다음과 같습니다.
-- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
-
make를 사용하여 애플리케이션 SDK 및 샘플 애플리케이션을 컴파일하고 최종 실행 파일을 빌드할 수 있습니다.
make
예상 출력의 끝은 다음과 같습니다.
[100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
[100%] Built target kvs_gstreamer_file_uploader_sample
-
샘플 파일이 빌드되었는지 확인합니다. 현재 디렉터리의 파일 목록:
ls
다음 파일이 있는지 확인합니다.
-
kvs_gstreamer_sample
-
libgstkvssink.so
-
(선택 사항) 셸의 시작 스크립트에 GST _ PLUGIN _ PATH 환경 변수 설정을 추가할 수 있습니다. 이렇게 하면 새 터미널 세션 중에 GST PLUGIN _ PATH _가 제대로 설정됩니다. 에서 AWS Cloud9셸의 시작 스크립트는 다음과 같습니다. ~/.bashrc
다음 명령을 실행하여 셸의 시작 스크립트 끝에 명령을 추가합니다.
echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
다음을 입력하여 셸의 시작 스크립트를 실행합니다.
source ~/.bashrc
GSTPLUGIN_ PATH _가 설정되었는지 확인합니다.
echo $GST_PLUGIN_PATH
출력을 올바르게 설정하면 다음과 같은 출력이 표시됩니다. 출력이 비어 있으면 환경 변수가 제대로 설정되지 않은 것입니다.
/home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
샘플을 실행하여 Kinesis Video Streams에 미디어를 업로드합니다.
샘플 애플리케이션은 IMDS 자격 증명을 지원하지 않습니다. 터미널에서 IAM 사용자 또는 역할과 스트림이 위치한 지역의 AWS 자격 증명을 내보냅니다.
export AWS_ACCESS_KEY_ID=YourAccessKey
export AWS_SECRET_ACCESS_KEY=YourSecretKey
export AWS_DEFAULT_REGION=YourAWSRegion
임시 AWS 자격 증명을 사용하는 경우 세션 토큰도 내보내세요.
export AWS_SESSION_TOKEN=YourSessionToken
- .mp4 files
-
샘플 .mp4 비디오를 다운로드하여 Kinesis Video Streams에 업로드하십시오.
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4
비디오 사양:
이전에 만든 스트림의 이름을 사용하여 다음 명령을 실행합니다. 아직 스트림을 만들지 않았다면 을 참조하십시오Amazon Kinesis 비디오 스트림을 생성하십시오..
./kvs_gstreamer_sample YourStreamName
./sample.mp4
- Sample video from GStreamer
-
를 사용하여 동영상을 생성하려면 다음 명령어를 사용하십시오GStreamer.
kvssink
GStreamer플러그인을 GStreamer 어디에 배치해야 하는지 알려주세요. 빌드 디렉터리에서 libgstkvssink.so
파일이 들어 있는 폴더의 경로를 지정합니다.
빌드 디렉터리에서 다음 명령을 실행합니다.
export GST_PLUGIN_PATH=`pwd`
이 GStreamer 파이프라인은 640x480 픽셀의 해상도로 초당 10프레임으로 실행되는 표준 테스트 패턴을 사용하여 라이브 테스트 비디오 스트림을 생성합니다. 현재 시스템 시간 및 날짜를 표시하는 오버레이가 추가되었습니다. 그러면 비디오가 H.264 형식으로 인코딩되고 최대 10프레임마다 키프레임이 생성되므로 프래그먼트 지속 시간 (사진 그룹 (GoP) 크기라고도 함) 은 1초가 됩니다. kvssink
H.264로 인코딩된 비디오 스트림을 가져와 Matroska (MKV) 컨테이너 형식으로 패키징한 다음 Kinesis 비디오 스트림에 업로드합니다.
다음 명령 실행:
gst-launch-1.0 -v videotestsrc is-live=true \
! video/x-raw,framerate=10/1,width=640,height=480 \
! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \
! x264enc bframes=0 key-int-max=10 \
! h264parse \
! kvssink stream-name="YourStreamName
"
GStreamer파이프라인을 중지하려면 터미널 창을 선택하고 +C를 누릅니다. CTRL
승인 개체 검토
업로드 중에 Kinesis Video Streams는 업로드를 수행하는 클라이언트에 확인 객체를 다시 보냅니다. 명령 출력에 이러한 내용이 인쇄되어 있어야 합니다. 예는 다음과 같습니다.
{"EventType":"PERSISTED","FragmentTimecode":1711124585823
,"FragmentNumber":"12345678901234567890123456789012345678901234567
"}
확인이 사실이라면 Kinesis Video Streams가 검색PERSISTED
, 분석 및 장기 저장을 위해 이 미디어 청크를 안정적으로 저장하고 암호화했음을 의미합니다. EventType
승인에 대한 자세한 내용은 을 참조하십시오. PutMedia