예: Kinesis Video Streams SDK GStreamer 프로듀서 플러그인 - kvssink - Amazon Kinesis Video Streams

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

예: Kinesis Video Streams SDK GStreamer 프로듀서 플러그인 - kvssink

이 주제에서는 Amazon Kinesis Video Streams SDK 프로듀서를 빌드하여 플러그인으로 GStreamer 사용하는 방법을 설명합니다.

GStreamer여러 카메라 및 비디오 소스에서 모듈식 플러그인을 결합하여 사용자 지정 미디어 파이프라인을 생성하는 데 사용하는 인기 있는 미디어 프레임워크입니다. Kinesis Video GStreamer Streams 플러그인은 GStreamer 기존 미디어 파이프라인과 Kinesis Video Streams의 통합을 간소화합니다. 통합 GStreamer 후에는 웹캠 또는 실시간 스트리밍 프로토콜 (RTSP) 카메라의 비디오를 Kinesis Video Streams로 스트리밍하여 실시간 또는 이후 재생, 저장 및 추가 분석을 수행할 수 있습니다.

GStreamer플러그인은 Kinesis Video Streams 프로듀서가 제공하는 기능을 싱크 요소에 캡슐화하여 Kinesis Video Streams로의 비디오 스트림 전송을 자동으로 관리합니다. SDK GStreamer kvssink GStreamer프레임워크는 카메라 또는 기타 비디오 소스와 같은 디바이스에서 추가 처리, 렌더링 또는 저장을 위한 미디어 흐름을 구성하는 표준 관리 환경을 제공합니다.

GStreamer파이프라인은 일반적으로 소스 (비디오 카메라) 와 싱크 요소 (비디오를 렌더링하는 플레이어 또는 오프라인 검색용 스토리지) 간의 링크로 구성됩니다. 이 예시에서는 Producer SDK 요소를 비디오 소스 (웹캠 또는 IP 카메라) 의 싱크 또는 미디어 대상으로 사용합니다. 를 캡슐화한 플러그인 요소는 비디오 스트림을 Kinesis SDK Video Streams로 전송합니다.

이 항목에서는 일반적으로 중간 인코딩 단계 (H.264 인코딩 사용) 를 통해 Kinesis Video Streams로 연결되는 웹 카메라 또는 RTSP 스트림과 같은 비디오 소스에서 비디오를 스트리밍할 수 있는 GStreamer 미디어 파이프라인을 구성하는 방법을 설명합니다. 비디오 스트림을 Kinesis 비디오 스트림으로 사용할 수 있는 경우 비디오 스트림의 추가 처리, 재생, 저장 또는 분석에 를 사용할 수 있습니다. 파서 라이브러리를 사용하여 카메라 출력 보기

카메라에서 서비스로 비디오를 스트리밍하기 위한 GStreamer 미디어 파이프라인의 기능적 보기.

GStreamer요소를 다운로드, 빌드, 구성합니다.

GStreamer플러그인 예제는 Kinesis Video Streams SDK C++ 프로듀서에 포함되어 있습니다. SDK사전 요구 사항 및 다운로드에 대한 자세한 내용은 을 참조하십시오. C++ 프로듀서 라이브러리 코드를 다운로드하고 구성합니다.

macOS, 우분투, 라즈베리 파이 또는 Windows에서 프로듀서 SDK GStreamer 싱크를 동적 라이브러리로 빌드할 수 있습니다. GStreamer플러그인은 디렉터리에 있습니다. build 이 플러그인을 로드하려면 플러그인이 사용자 폴더에 있어야 합니다GST_PLUGIN_PATH. 다음 명령 실행:

export GST_PLUGIN_PATH=`pwd`/build
참고

macOS에서는 Docker GStreamer 컨테이너에서 실행할 때만 네트워크 카메라의 비디오를 스트리밍할 수 있습니다. Docker 컨테이너의 macOS USB 카메라에서 비디오를 스트리밍하는 것은 지원되지 않습니다.

엘리먼트를 실행합니다. GStreamer

Kinesis Video Streams SDK 프로듀서 요소를 싱크로 사용하여 실행하려면 명령을 GStreamer 사용하십시오gst-launch-1.0. GStreamer플러그인이 사용하기에 적합한 업스트림 요소를 사용하십시오. 예를 들어, 리눅스 시스템의 v4l2 디바이스의 경우 v4l2src를, 디바이스의 경우 rtspsrc를 예로 들 수 있습니다. RTSP 프로듀서로 비디오를 전송할 싱크 (파이프라인의 최종 목적지) kvssink 로 지정합니다. SDK

자격 증명을 제공하고 지역을 제공하는 것 외에도 kvssink 요소에는 다음과 같은 필수 매개변수가 있습니다.

  • stream-name— 대상 Kinesis Video Streams의 이름

kvssink 선택적 파라미터에 대한 자세한 내용은 GStreamer요소 파라미터 참조 단원을 참조하십시오.

GStreamer플러그인 및 파라미터에 대한 최신 정보는 GStreamer플러그인을 참조하십시오. GStreamer요소 또는 플러그인 이름 gst-inspect-1.0 뒤에 붙여 해당 정보를 인쇄하고 장치에서 사용할 수 있는지 확인할 수도 있습니다.

gst-inspect-1.0 kvssink

빌드에 kvssink 실패했거나 GST PLUGIN _ PATH _가 제대로 설정되지 않은 경우 출력은 다음과 비슷하게 표시됩니다.

No such element or plugin 'kvssink'

GStreamer실행 명령 예시

다음 예시는 kvssink GStreamer 플러그인을 사용하여 다양한 유형의 기기에서 비디오를 스트리밍하는 방법을 보여줍니다.

예 1: Ubuntu의 RTSP 카메라에서 비디오 스트리밍

다음 명령은 rtspsrc GStreamer 플러그인을 사용하여 네트워크 RTSP 카메라에서 스트리밍하는 파이프라인을 Ubuntu에 생성합니다. GStreamer

gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128

예제 2: Ubuntu 카메라의 비디오 인코딩 및 스트리밍 USB

다음 명령은 USB 카메라의 스트림을 H.264 형식으로 인코딩하고 Kinesis Video Streams로 스트리밍하는 GStreamer 파이프라인을 Ubuntu에 생성합니다. 이 예제에서는 v4l2src 플러그인을 사용합니다. GStreamer

gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"

예 3: Ubuntu의 카메라에서 사전 인코딩된 비디오를 스트리밍합니다. USB

다음 명령은 카메라가 이미 H.264 형식으로 인코딩한 비디오를 Kinesis Video Streams로 스트리밍하는 GStreamer 파이프라인을 Ubuntu에 생성합니다. 이 예제에서는 v4l2src 플러그인을 사용합니다. GStreamer

gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="plugin" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"

예 4: macOS의 네트워크 카메라에서 비디오 스트리밍

다음 명령은 네트워크 카메라에서 Kinesis Video Streams로 비디오를 스트리밍하는 GStreamer 파이프라인을 macOS에 생성합니다. 이 예제에서는 GStreamerrtspsrc 플러그인을 사용합니다.

gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"

예 5: Windows의 네트워크 카메라에서 비디오를 스트리밍합니다.

다음 명령은 네트워크 카메라에서 Kinesis Video Streams로 비디오를 스트리밍하는 GStreamer 파이프라인을 Windows에 생성합니다. 이 예제에서는 GStreamerrtspsrc 플러그인을 사용합니다.

gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"

예제 6: 라즈베리파이에서 카메라의 동영상 스트리밍

다음 명령은 비디오를 Kinesis Video Streams로 스트리밍하는 GStreamer 파이프라인을 Raspberry Pi에 생성합니다. 이 예제에서는 GStreamerv4l2src 플러그인을 사용합니다.

gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1,profile=baseline ! kvssink stream-name="YourStreamName" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"

예 7: 라즈베리 파이와 우분투에서 오디오와 비디오를 모두 스트리밍합니다.

gst-launch-1.0 명령을 실행하여 Raspberry-PI 및 Ubuntu의 오디오 및 비디오 모두를 스트리밍하기 시작하는 방법을 알아봅니다.

예 8: macOS의 기기 소스에서 오디오와 비디오를 모두 스트리밍

gst-launch-1.0 명령을 실행하여 MacOS의 오디오 및 비디오 모두를 스트리밍하기 시작하는 방법을 알아봅니다.

예 9: 오디오와 비디오가 모두 포함된 MKV 파일 업로드

gst-launch-1.0 명령을 실행하여 오디오와 비디오가 모두 포함된 MKV 파일을 업로드하는 방법을 참조하십시오. h.264와 인코딩된 MKV 미디어가 포함된 테스트 파일이 필요합니다. AAC

Docker 컨테이너에서 GStreamer 요소를 실행합니다.

도커는 컨테이너를 사용하여 애플리케이션을 개발, 배포 및 실행하기 위한 플랫폼입니다. Docker를 사용하여 GStreamer 파이프라인을 생성하면 Kinesis Video Streams의 운영 환경이 표준화되어 애플리케이션 구축 및 사용이 간소화됩니다.

도커를 설치하고 구성하려면 다음을 참조하십시오.

Docker를 설치한 후 아래에 제공된 명령 중 하나를 사용하여 Amazon Elastic 컨테이너 레지스트리에서 Kinesis Video Streams C++ SDK 프로듀서 (GStreamer및 플러그인) 를 다운로드할 수 있습니다. docker pull

Kinesis Video Streams SDK 프로듀서 요소를 Docker 컨테이너의 싱크로 GStreamer 사용하여 실행하려면 다음을 수행하십시오.

Docker 클라이언트를 인증하십시오.

이미지를 가져오려는 Amazon ECR 레지스트리에 Docker 클라이언트를 인증합니다. 사용된 각 레지스트리에 대한 인증 토큰을 가져와야 합니다. 토큰은 12시간 동안 유효합니다. 자세한 내용은 Amazon Elastic Container Registry 사용 설명서레지스트리 권한을 참조하세요.

예 : Amazon에서 인증 ECR

Amazon에서 ECR 인증하려면 표시된 대로 다음 명령을 복사하여 붙여넣습니다.

sudo aws ecr get-login-password --region us-west-2 | docker login -u AWS --password-stdin https://546150905175.dkr.ecr.us-west-2.amazonaws.com

성공하면 Login Succeeded 출력이 인쇄됩니다.

우분투, macOS, 윈도우 또는 라즈베리 파이용 도커 이미지 다운로드

운영 체제에 따라 다음 명령 중 하나를 사용하여 도커 이미지를 도커 환경으로 다운로드합니다.

우분투용 도커 이미지 다운로드

sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest

macOS용 도커 이미지 다운로드

docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest

윈도우용 도커 이미지 다운로드

docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest

라즈베리파이용 도커 이미지 다운로드

sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest

이미지가 성공적으로 추가되었는지 확인하려면 다음 명령을 사용합니다.

docker images

도커 이미지 실행

운영 체제에 따라 다음 명령 중 하나를 사용하여 도커 이미지를 실행합니다.

우분투에서 도커 이미지 실행

sudo docker run -it --network="host" --device=/dev/video0 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash

macOS에서 도커 이미지 실행하기

sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash

윈도우에서 도커 이미지 실행

docker run -it 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-windows AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY RTSP_URL STREAM_NAME

라즈베리파이에서 도커 이미지 실행

sudo docker run -it --device=/dev/video0 --device=/dev/vchiq -v /opt/vc:/opt/vc 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi /bin/bash

Docker는 컨테이너를 시작하고 컨테이너 내에서 명령을 사용하기 위한 명령 프롬프트를 표시합니다.

컨테이너에서 다음 명령을 사용하여 환경 변수를 설정합니다.

export LD_LIBRARY_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH export PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin:$PATH export GST_PLUGIN_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH

kvssink를 사용하여 디바이스와 비디오 소스에 적합한 파이프라인을 gst-launch-1.0 실행하도록 스트리밍을 시작하세요. 파이프라인의 예는 을 참조하십시오GStreamer실행 명령 예시.