기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Kinesis 비디오 스트림으로 데이터 전송
이 섹션에서는 카메라의 미디어 데이터를 이전 섹션에서 만든 Kinesis 비디오 스트림으로 보내는 방법을 설명합니다. 이 섹션에서는 C++ 생산자 라이브러리를 스트리머 플러그인 - 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.
환경 만들기를 선택합니다.
-
환경 만들기 화면에서 다음을 완료하십시오.
다른 필드는 기본 선택 사항을 그대로 둘 수 있습니다.
-
환경이 생성되면 Cloud9 IDE 열에서 열기를 선택합니다.
화면 하단 중간 영역에 표시됩니다. 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
GST_PLUGIN_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
비디오 사양:
이전에 만든 스트림의 이름을 사용하여 다음 명령을 실행합니다. 아직 스트림을 만들지 않았다면 을 참조하십시오Kinesis 비디오 스트림 생성.
./kvs_gstreamer_sample YourStreamName
./sample.mp4
- Sample video from GStreamer
-
다음 명령어를 사용하여 GStreamer를 사용하여 비디오를 생성하십시오.
GStreamer에게 GStreamer 플러그인을 어디에 설치해야 하는지 알려주세요. kvssink
빌드 디렉터리에서 파일이 들어 있는 폴더의 경로를 지정합니다. 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 파이프라인을 중지하려면 터미널 창을 선택하고 Ctrl+C를 누릅니다.
승인 객체를 검토하세요.
업로드 중에 Kinesis Video Streams는 업로드를 수행하는 클라이언트에 확인 객체를 다시 보냅니다. 명령 출력에 이러한 내용이 인쇄되어 있어야 합니다. 예는 다음과 같습니다.
{"EventType":"PERSISTED","FragmentTimecode":1711124585823
,"FragmentNumber":"12345678901234567890123456789012345678901234567
"}
확인이 사실이라면 Kinesis Video Streams가 검색PERSISTED
, 분석 및 장기 저장을 위해 이 미디어 청크를 안정적으로 저장하고 암호화했음을 의미합니다. EventType
승인에 대한 자세한 내용은 을 참조하십시오. PutMedia