기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
예: Kinesis Video Streams SDK GStreamer 프로듀서 플러그인 - kvssink
이 주제에서는 Amazon Kinesis Video Streams SDK 프로듀서를 빌드하여 플러그인으로 GStreamer 사용하는 방법을 설명합니다.
주제
GStreamer
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플러그인 예제는 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를kvssink
로 지정합니다. 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 GStreamer 플러그인을 사용하여 네트워크 RTSP 카메라에서 스트리밍하는 파이프라인을 Ubuntu에 생성합니다.
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 플러그인을 사용합니다.
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에 생성합니다. 이 예제에서는 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 파일을 업로드하는
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실행 명령 예시.