예: Kinesis Video Streams 프래그먼트의 파싱 및 렌더링 - Amazon Kinesis Video Streams

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

예: Kinesis Video Streams 프래그먼트의 파싱 및 렌더링

에는 Amazon Kinesis 비디오 스트림 KinesisVideoRendererExample 프래그먼트의 구문 분석 및 렌더링을 보여주는 이름의 데모 애플리케이션이 파서 라이브러리를 사용하여 스트리밍 포함되어 있습니다. 이 예제에서는 애플리케이션을 JCodec사용하여 수집된 H.264로 인코딩된 프레임을 디코딩하는 데 사용합니다. 예: Kinesis Video Streams SDK GStreamer 프로듀서 플러그인 - kvssink 를 사용하여 프레임을 디코딩한 후 가시 이미지는 를 사용하여 JCodec 렌더링됩니다. JFrame

이 예에서는 다음 작업을 수행하는 방법을 보여줍니다.

  • 를 사용하여 Kinesis 비디오 스트림에서 프레임을 검색하고 볼 수 GetMedia API 있도록 스트림을 렌더링합니다.

  • Kinesis Video Streams 콘솔을 사용하는 대신 사용자 지정 애플리케이션에서 스트림의 비디오 콘텐츠를 볼 수 있습니다.

또한 이 예제의 클래스를 사용하여 표시되기 전에 디코딩할 필요가 없는 JPEG 파일 스트림과 같이 H.264로 인코딩되지 않은 Kinesis 비디오 스트림 콘텐츠를 볼 수 있습니다.

다음 절차에서는 렌더러 데모 애플리케이션을 설정하고 사용하는 방법을 소개합니다.

사전 조건

렌더러 예제 라이브러리를 검사하고 사용하려면 다음이 필요합니다.

렌더러 예제 실행

  1. 디렉터리를 만든 다음 리포지토리에서 예제 소스 코드를 복제합니다 GitHub.

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. 사용 IDE 중인 자바 (예: Eclipse 또는 IntelliJ IDEA) 를 열고 다운로드한 Apache Maven 프로젝트를 가져옵니다.

    • Eclipse: [File], [Import], [Maven], [Existing Maven Projects]를 차례로 선택합니다. kinesis-video-streams-parser-lib 디렉터리로 이동합니다.

    • IntelliJ Idea에서 [Import]를 선택합니다. 다운로드한 패키지의 루트에 있는 pom.xml 파일을 찾습니다.

      참고

      IntelliJ가 종속성을 찾을 수 없는 경우 다음을 수행해야 할 수 있습니다.

      • 빌드 정리: File(파일), Settings(설정), Build, Execution, Deployment(구축, 실행, 배포), Compiler(컴파일러)를 선택합니다. 재빌드 시 출력 디렉터리 지우기가 선택되어 있는지 확인한 다음 [빌드 ], [프로젝트 빌드] 를 선택합니다.

      • 프로젝트 다시 가져오기: 프로젝트의 컨텍스트(오른쪽 클릭) 메뉴를 열고 Maven, Reimport(다시 가져오기)를 선택합니다.

    자세한 내용은 관련 IDE 설명서를 참조하십시오.

  3. Java에서 IDE 여십시오src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest.

  4. 파일에서 @Ignore 명령을 제거합니다.

  5. Kinesis 비디오 스트림의 이름으로 .stream 파라미터를 업데이트합니다.

  6. KinesisVideoRendererExample 테스트를 실행합니다.

작동 방식

이 예제 애플리케이션은 다음과 같은 방법을 보여줍니다.

데이터 전송 MKV

이 예제에서는 rendering_example_video.mkv 파일에서 샘플 MKV 데이터를 전송하고, 를 PutMedia 사용하여 이름이 지정된 스트림으로 비디오 데이터를 render-example-stream전송합니다.

이 애플리케이션에서는 PutMediaWorker를 생성합니다.

PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);

PutMediaWorker 클래스에 대한 자세한 내용은 파서 라이브러리를 사용하여 스트리밍 설명서의 통화 PutMedia 단원을 참조하십시오.

MKV프래그먼트를 프레임으로 파싱하기

그런 다음 예제에서는 다음을 사용하여 스트림에서 MKV 프래그먼트를 검색하고 파싱합니다. GetMediaWorker

GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);

GetMediaWorker 클래스에 대한 자세한 내용은 파서 라이브러리를 사용하여 스트리밍설명서의 통화 GetMedia 단원을 참조하십시오.

프레임 디코딩 및 표시

그런 다음 예제에서는 를 사용하여 프레임을 디코딩하고 표시합니다. JFrame

다음 코드 예제는 KinesisVideoFrameViewer 클래스에서 가져온 것으로, JFrame을 확장합니다.

public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }

이미지는 java.awt.image 인스턴스로 표시됩니다. BufferedImage. BufferedImage 작업 방법을 보여주는 예제는 이미지 읽기/로드를 참조하십시오.