기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
예: Kinesis Video Streams 생산자 SDK GStreamer 플러그인 - kvssink
이 주제에서는 GStreamer 플러그인으로 SDK 사용할 Amazon Kinesis Video Streams 생산자를 빌드하는 방법을 설명합니다.
주제
GStreamer
GStreamer 플러그인은 Kinesis Video Streams 생산자가 제공하는 기능을 GStreamer 싱크 요소 SDK에 캡슐화하여 비디오 스트림을 Kinesis Video Streams로 자동으로 전송하는 것을 관리합니다kvssink
. GStreamer 프레임워크는 추가 처리, 렌더링 또는 스토리지를 위해 카메라 또는 기타 비디오 소스와 같은 디바이스에서 미디어 흐름을 구성하기 위한 표준 관리형 환경을 제공합니다.
GStreamer 파이프라인은 일반적으로 소스(비디오 카메라)와 싱크 요소(비디오를 렌더링하는 플레이어 또는 오프라인 검색을 위한 스토리지) 간의 링크로 구성됩니다. 이 예제에서는 생산자 SDK 요소를 비디오 소스(웹캠 또는 IP 카메라)의 싱크 또는 미디어 대상으로 사용합니다. 를 캡슐화하는 플러그인 요소는 비디오 스트림을 Kinesis Video Streams로 SDK 전송합니다.
이 주제에서는 일반적으로 중간 인코딩 단계(H.264 인코딩 사용)를 통해 Kinesis Video Streams에 연결된 웹 카메라 또는 RTSP 스트림과 같은 비디오 소스에서 비디오를 스트리밍할 수 있는 GStreamer 미디어 파이프라인을 구성하는 방법을 설명합니다. 비디오 스트림을 Kinesis 비디오 스트림으로 사용할 수 있는 경우 파서 라이브러리를 사용하여 카메라의 출력 보기를 사용하여 비디오 스트림을 추가로 처리, 재생, 저장 또는 분석할 수 있습니다.

GStreamer 요소 다운로드, 빌드 및 구성
GStreamer 플러그인 예제는 Kinesis Video Streams C++ 생산자에 포함되어 있습니다SDK. SDK 사전 조건 및 다운로드에 대한 자세한 내용은 섹션을 참조하세요C++ 생산자 라이브러리 코드 다운로드 및 구성.
macOS, Ubuntu, Raspberry Pi 또는 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 플러그인에 적합한 업스트림 요소를 사용합니다. 예를 들어 Linux 시스템의 v4l2 디바이스의 경우 v4l2srckvssink
로 지정하여 생산자에 비디오를 전송합니다SDK.
자격 증명을 제공하고 리전을 제공하는 것 외에도 kvssink
요소에는 다음과 같은 필수 파라미터가 있습니다.
-
stream-name
- 대상 Kinesis Video Streams의 이름입니다.
kvssink
선택적 파라미터에 대한 자세한 내용은 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
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
예제 2: Ubuntu의 USB 카메라에서 비디오 인코딩 및 스트리밍
다음 명령은 H.264 형식의 USB 카메라에서 스트림을 인코딩하는 GStreamer 파이프라인을 Ubuntu에 생성하고 이를 Kinesis Video Streams로 스트리밍합니다. 이 예제에서는 v4l2src
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
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에 생성합니다. 이 예제에서는 rtspsrc
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에 생성합니다. 이 예제에서는 rtspsrc
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: Raspberry Pi의 카메라에서 비디오 스트리밍
다음 명령은 Kinesis Video Streams로 비디오를 스트리밍하는 Raspberry Pi에 GStreamer 파이프라인을 생성합니다. 이 예제에서는 v4l2src
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: Raspberry Pi 및 Ubuntu에서 오디오와 비디오 모두 스트리밍
gst-launch-1.0 명령을 실행하여 Raspberry-PI 및 Ubuntu의 오디오 및 비디오 모두를 스트리밍하기 시작
예제 8: macOS의 디바이스 소스에서 오디오와 비디오 스트리밍
gst-launch-1.0 명령을 실행하여 MacOS의 오디오 및 비디오 모두를 스트리밍하기 시작
예제 9: 오디오와 비디오가 모두 포함된 MKV 파일 업로드
gst-launch-1.0 명령을 실행하여 오디오와 비디오가 모두 포함된 MKV 파일을 업로드하는
Docker 컨테이너에서 GStreamer 요소 실행
도커는 컨테이너를 사용하여 애플리케이션을 개발, 배포 및 실행하기 위한 플랫폼입니다. Docker를 사용하여 GStreamer 파이프라인을 생성하면 Kinesis Video Streams의 운영 환경이 표준화되어 애플리케이션 구축 및 사용이 간소화됩니다.
도커를 설치하고 구성하려면 다음을 참조하십시오.
Docker를 설치한 후 아래 제공된 docker pull
명령 중 하나를 사용하여 Amazon Elastic Container Registry에서 Kinesis Video Streams C++ 생산자SDK(및 GStreamer 플러그인)를 다운로드할 수 있습니다.
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
출력이 인쇄됩니다.
Ubuntu, macOS, Windows 또는 Raspberry Pi용 Docker 이미지 다운로드
운영 체제에 따라 다음 명령 중 하나를 사용하여 도커 이미지를 도커 환경으로 다운로드합니다.
Ubuntu용 Docker 이미지 다운로드
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
macOS용 Docker 이미지 다운로드
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
Windows용 Docker 이미지 다운로드
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
Raspberry Pi용 Docker 이미지 다운로드
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
이미지가 성공적으로 추가되었는지 확인하려면 다음 명령을 사용합니다.
docker images
Docker 이미지 실행
운영 체제에 따라 다음 명령 중 하나를 사용하여 도커 이미지를 실행합니다.
Ubuntu에서 Docker 이미지 실행
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에서 Docker 이미지 실행
sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
Windows에서 Docker 이미지 실행
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
Raspberry Pi에서 Docker 이미지 실행
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 시작 명령.