Amazon IVS 스트리밍 구성 - Amazon IVS

Amazon IVS 스트리밍 구성

개발자는 Amazon Interactive Video Service(IVS)를 통해 지연 시간이 짧은 비디오를 전 세계 시청자에게 손쉽게 전송할 수 있습니다. Amazon IVS를 사용하는 경우 스트리머는 스트림 프로덕션만 처리한 다음, 스트림을 Amazon IVS로 보내기만 하면 됩니다. Amazon IVS는 Amazon IVS 플레이어를 통해 수집(ingesting) 및 트렌스코딩(transcoding)과 같은 영상 처리, 전송 및 재생 등의 기능을 사용자에게 제공합니다.

라이브 스트리밍을 위한 솔루션도 다양합니다. 여러 대의 카메라, 비주얼 전환기, 그래픽 합성, 다양한 오디오 믹싱 장비를 갖춘 스튜디오에서든, 또는 스마트폰으로 첫 번째 스트림을 시작할 계획이든 간에 몇 가지 동일한 개념과 인코딩 파라미터를 처리해야 합니다.

이 문서에서는 Amazon IVS로 스트리밍하기 위해 비디오 인코더를 구성하는 방법에 대해 설명합니다. 이 문서는 애플리케이션에 스트리밍 기능을 구축하려는 개발자를 대상으로 합니다.

단 IVS 저지연 스트리밍에는 오디오 전용 입력이 지원되지 않습니다.

사전 조건

IVS 지연 시간이 짧은 스트리밍 시작하기의 단계를 따라 채널을 생성하고 스트리밍을 설정하세요. 이 과정에서 스트림 수집 및 재생을 위한 URL과 함께 채널 ARN(Amazon 리소스 이름) 및 스트림 키가 지정됩니다. 스트리밍 애플리케이션이 수집 URL을 가리켜야 합니다.

이 문서를 읽기 전에 다음을 충분히 숙지해야 합니다.

지연 시간 단축

Amazon IVS Low-Latency Streaming은 대부분의 스트리밍 애플리케이션과 호환되며, 스트리밍 애플리케이션 구성을 조금만 변경하면 됩니다. 지연 시간을 최소화하려면 Amazon IVS 플레이어를 사용해야 합니다. 서드 파티 HLS 비디오 플레이어는 지원되지 않습니다. 자세한 내용은 Amazon IVS Player SDK 설명서를 참조하세요.

지연 시간이 짧은 스트리밍을 위한 스트리밍 애플리케이션을 준비하려면 다음을 수행합니다. (참고: 일부 스트리밍 애플리케이션에서는 이러한 옵션 중 일부를 사용할 수 없습니다.

  • 비디오 인코더에서 IDR/Keyframe을 2초 간격 또는 전반적인 지연 시간이 더 짧은 경우에도 1초로 설정합니다.

    IDR/Keyframe은 스트림 시작 타이밍과 이와 관련된 EventBridge 이벤트(스트림 시작 및 레코딩 시작)의 지연 시간에 직접적인 영향을 미칩니다. IDR/Keyframe이 2초인 경우, 스트림 시작 지연 시간은 약 6초~7초입니다. IDR/Keyframe이 1초인 경우, 스트림 시작 지연 시간은 약 3초~4초입니다. 비디오는 최초 스트림 시작 지연 시간이 지난 후에만 시청자가 이용할 수 있으며 Amazon S3로 자동 레코딩할 수 있습니다.

    더 짧은 1초 키프레임 간격을 사용하는 경우 약간의 QoS가 상쇄됩니다. 이 경우 Amazon IVS 플레이어의 가변 비트 전송률 스트리밍(ABR)이 해상도를 더 자주 전환할 수 있습니다. 세그먼트 크기가 작을수록 ABR을 더 자주 확인합니다. 해상도 전환이 늘어나거나 시청자의 네트워크가 세그먼트를 충분히 빠르게 다운로드할 수 없는 경우 버퍼링이 증가할 수 있습니다. 1초 또는 2초 키프레임 간격을 결정할 때 이러한 상쇄 효과를 고려합니다.

    5초보다 높은 값으로 IDR/Keyframe을 설정하는 것은 자제하시기 바랍니다. 1초~2초를 사용하는 경우보다 스트림 시작 지연 시간이 길어질 뿐만 아니라 IVS에서는 재생용으로 생성된 모든 세그먼트가 IDR/키프레임으로 시작된다고 보장할 수 없습니다. 세그먼트가 IDR/키프레임으로 시작하지 않으면 최종 사용자가 재생을 시작하거나 변환을 변경할 때 디코딩 오류 또는 시각적 왜곡 현상이 발생할 수 있습니다.

  • 사용 가능한 경우 x264 구성 내에서 인코더를 지연 시간 제로 튜닝으로 설정합니다.

  • 버퍼 크기(VBV)가 스트림의 평균 비트 전송률(초당 킬로비트)을 초과하지 않는지 확인합니다.

서드 파티 스트리밍/전달 서비스 금지

Amazon IVS로 콘텐츠를 재스트리밍하거나 전달하는 데 서드 파티 서비스를 사용하지 않는 것이 좋습니다. 이 경우 지연 시간이 더 늘어납니다. 지연 시간을 줄이려면 Amazon IVS로 직접 스트리밍하세요.

인코더 설정

스트림 수집: 코덱 및 수집 프로토콜

코덱(Codecs): Amazon IVS는 비디오에 대해 H.264를 지원하고 오디오에는 AAC(LC)를 지원합니다.

수집 프로토콜: Amazon IVS는 스트리밍 소프트웨어 및 하드웨어에 사용되는 가장 일반적인 수집 프로토콜인 RTMPS(Real-Time Messaging Protocol over a TLS/SSL) 연결, RTMP, SRT(Secure Reliable Transport)를 지원합니다. RTMPS를 통한 Amazon IVS 스트리밍에는 TLS 버전 1.2 이상이 필요합니다.

RTMPS/RTMP

비디오 인코더는 아웃바운드 포트 443/TCP와 연결된 RTMPS 프로토콜을 통해 Amazon IVS 수집에 연결해야 합니다. 이렇게 하려면 경로에 포트가 포함된 IVS 수집 서버를 지정합니다.

rtmps://<IVS-ingest-server>/<IVS-stream-key>

예제:

rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/<IVS-stream-key>

비보안 RTMP 수집을 허용하도록 IVS 채널을 구성할 수도 있지만 RTMP가 필요한 구체적이고 검증된 사용 사례가 없는 한 RTMPS를 사용하는 것이 좋습니다. RTMP를 스트리밍할 때는 프로토콜이 rtmp://로 설정되어 있는지 확인하고 :443 포트를 제거합니다. 예제:

rtmp://a1b2c3d4e5f6.global-contribute.live-video.net/app/<IVS-stream-key>

SRT

비디오 인코더는 포트 9000의 SRT 프로토콜을 사용하여 수집 엔드포인트에 연결해야 합니다. 이렇게 하려면 경로에 포트와 암호가 포함된 수집 엔드포인트를 지정합니다.

srt://<ingest-endpoint>:<port>?streamid=<stream-key>&passphrase=<passphrase>

채널에 대해 안전하지 않은 수집이 활성화되지 않은 경우에만 암호를 사용합니다.

예제:

srt://a1b2c3d4e5f6.srt.live-video.net:9000?streamid=sk_us-west-2_abcd1234efgh5678ijkl&passphrase=ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ

SRT 스트림 성능을 최적화하려면 이 Haivision 블로그: How to Configure SRT Settings on Your Video Encoder for Optimal Performance.을 참조하세요.

해상도/비트 전송률/FPS

스트림의 해상도는 주로 비트 전송률과 프레임 속도(초당 프레임 또는 FPS)를 결정합니다. 이를 위해 다음 지침을 사용하시기 바랍니다. 권장 사항은 다음과 같습니다. 아래 표시된 해상도는 가로 방향(가로 x 세로)이므로 세로 방향의 경우 반대로 적용합니다.

허용 가능한 품질(SD) 480p(852x480) 양호한 품질(HD) 720p(1280x720) 높은 품질(풀 HD) 1080p(1920x1080)
비트 전송률 최대 1,500Kbps 최대 4,500Kbps 최대 8,500Kbps
FPS 30 30 또는 60 30 또는 60
키프레임 간격 2초 2초 2초

비트 전송률, FPS 및 해상도는 상호 연관되어 있습니다. 최적의 값은 상황에 따라 다르며, 결정하기 복잡할 수 있습니다. 가장 좋은 지침은 위의 값에서 시작해서 원하는 경우 실험해보는 것입니다. 목표는 스트리밍 중에 비디오 구성 요소가 선명하고 부드럽게 움직이고 사용 가능한 대역폭 내에서 양호한 해상도를 확보하는 것입니다. 프레임 속도 및/또는 해상도를 높이면 전체 비디오 품질이 향상되지만, 대역폭 때문에 이를 제한할 수밖에 없습니다.

Amazon IVS는 최대 60FPS의 프레임 속도(유럽 PAL 25 및 50 표준 프레임 속도 포함)를 지원합니다. 비트 전송률 대역폭이 적절하다면 프레임 속도가 높을수록 품질이 향상됩니다. 애플리케이션에 따라 낮은 프레임 속도는 허용 가능합니다(예: 보안 카메라).

채널 유형

채널 유형에서 허용되는 해상도 및 비트 전송률을 결정합니다. 허용되는 입력 해상도 또는 비트 전송률을 초과하면 스트림 연결이 즉시 해제될 수 있습니다.

채널 유형에는 STANDARDADVANCED_SDADVANCED_HD, BASIC 등 네 가지가 있습니다. 채널을 생성할 때 기본 유형은 STANDARD입니다.

비디오 처리에는 트랜스코딩트랜스먹싱의 두 가지 유형이 있습니다. 이는 채널 유형, 채널이 멀티트랙 비디오 입력에 대해 구성되어 있는지 여부, 브로드캐스터가 멀티트랙 지원 클라이언트를 사용하는지 여부에 따라 결정됩니다. (멀티트랙 비디오는 채널 데이터 유형의 multitrackInputConfiguration API 속성으로 구성됩니다.)

  • STANDARD(멀티트랙 입력 사용 안 함) 및 ADVANCED 채널의 비디오는 트랜스코딩됩니다. 원래 입력에서 여러 가지 품질이 생성되어 뷰어의 디바이스 및 네트워크 조건에 가장 적합한 경험을 자동으로 제공합니다. 트랜스코딩을 사용하면 다양한 다운로드 속도에서 더 높은 재생 품질을 얻을 수 있습니다. 트랜스코딩은 첫 번째 인터넷 연결 및/또는 디바이스 기능(예: 데스크톱 PC 대신 휴대전화)이 제한된 브로드캐스터에 가장 적합한 옵션입니다.

  • STANDARD(멀티트랙 입력이 활성화되어 있고 멀티트랙이 활성화된 클라이언트를 사용하는 브로드캐스터) 및 BASIC 채널의 비디오는 트랜스먹싱됩니다. Amazon IVS는 뷰어에게 원래 입력을 전달합니다. 트랜스코딩과 마찬가지로 트랜스먹싱된 멀티트랙 입력은 뷰어에게 디바이스 및 네트워크 조건에 대한 최상의 경험을 제공합니다.

트랜스코딩된 모든 채널에는 어떤 변환을 생성할지 결정하는 트랜스코딩 사전 설정이 있으며 이를 ABR 래더(ABR ladders)라고 생각하면 이해하기 쉽습니다. ABR 래더를 통해 사용 가능한 다운로드 대역폭과 비디오 품질을 절충하여 시청 환경을 최적화할 수 있습니다.

  • STANDARD 채널에는 기본 트랜스코딩 사전 설정이 하나 있습니다.

  • ADVANCED 채널에는 선택 가능한 트랜스코딩 사전 설정이 두 개 있습니다.

    • 제한된 대역폭 전송은 품질 수준마다 STANDARD보다 낮은 비트 전송률을 사용합니다. 다운로드 대역폭이 낮거나 비디오 콘텐츠가 단순한 경우(예: 토킹 헤드)에 사용하세요.

    • 더 높은 대역폭 전송은 품질 수준마다 더 높은 비트 전송률을 사용합니다. 다운로드 대역폭이 높거나 비디오 콘텐츠가 복잡한 경우(예: 플래시 및 빠른 장면 전환)에 사용하세요. 이 값이 기본값입니다.

표준 채널

단일 트랙 비디오 입력

STANDARD 채널이 트랜스코딩됩니다. 가장 높은 비디오 해상도는 Full HD, 1080p입니다. 이것이 기본 채널 유형입니다.

  • 트랜스코딩 사전 설정: 기본 트랜스코딩 사전 설정 래더가 하나 있습니다.

  • 오디오: 360p 이하 변환의 경우 오디오가 트랜스코딩됩니다. 다른 변환의 경우 원본 오디오가 전달됩니다.

입력 해상도 및 최대 비트레이트 래더 세부 정보

8.5Mbps일 때 1080p60

  1. 비디오: 소스 패스스루, 오디오: 소스 패스스루

  2. 비디오: 3.4Mbps일 때 720p60, 오디오: 소스 패스스루

  3. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  4. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  5. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

8.5Mbps일 때 1080p30

  1. 비디오: 소스 패스스루, 오디오: 소스 패스스루

  2. 비디오: 2.4Mbps일 때 720p30, 오디오: 소스 패스스루

  3. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  4. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  5. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

8.5Mbps일 때 1080p60 미만 및 720p60 초과

  1. 비디오: 소스 패스스루, 오디오: 소스 패스스루

  2. 비디오: 3.4Mbps일 때 720p60, 오디오: 소스 패스스루

  3. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  4. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  5. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

8.5Mbps일 때 1080p30 미만 및 720p30 초과

  1. 비디오: 소스 패스스루, 오디오: 소스 패스스루

  2. 비디오: 2.4Mbps일 때 720p30, 오디오: 소스 패스스루

  3. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  4. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  5. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

8.5Mbps일 때 720p60

  1. 비디오: 3.4Mbps일 때 720p60, 오디오: 소스 패스스루

  2. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  3. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

8.5Mbps일 때 720p30

  1. 비디오: 2.4Mbps일 때 720p30, 오디오: 소스 패스스루

  2. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  3. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

8.5Mbps일 때 720p30/60 미만 및 480p30/60 이상

  1. 비디오: 1.4Mbps일 때 480p30, 오디오: 소스 패스스루

  2. 비디오: 0.63Mbps일 때 360p30, 오디오: 64kbps

  3. 비디오: 0.23Mbps일 때 160p30, 오디오: 48kbps

멀티트랙 비디오 입력

STANDARD 채널은 입력이 멀티트랙 비디오일 때 트랜스먹싱됩니다. 생성된 최고 비디오 해상도는 multitrackInputConfiguration.maximumResolution 속성에 의해 제한됩니다. 특정 변환은 브로드캐스터의 시스템 및 환경 요구 사항에 따라 동적입니다.

모든 비디오 변환에서 오디오는 소스 패스스루입니다.

고급 HD 채널

ADVANCED-HD 채널이 트랜스코딩됩니다. 가장 높은 비디오 해상도는 HD, 720p입니다.

  • 트랜스코딩 사전 설정: 선택 가능한 트랜스코딩 사전 설정 래더가 두 개 있습니다.

  • 오디오: 오디오가 트랜스코딩됩니다.

입력 해상도 및 최대 비트레이트 래더 세부 정보

8.5Mbps일 때 720p60~ 최대 1080p60

트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):

  1. 비디오: 3Mbps일 때 720p60, 오디오: 128kbps

  2. 비디오: 1.3Mbps일 때 480p30, 오디오: 128kbps

  3. 비디오: 0.7Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.27Mbps일 때 160p30, 오디오: 48kbps

  5. 64kbps일 때 오디오 전용

트랜스코딩 사전 설정: 제한된 대역폭 전송:

  1. 비디오: 2.2Mbps일 때 720p60, 오디오: 128kbps

  2. 비디오: 0.8Mbps일 때 480p30, 오디오: 128kbps

  3. 비디오: 0.4Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.22Mbps일 때 160p30, 오디오: 48kbps

  5. 64kbps일 때 오디오 전용

8.5Mbps일 때 720p30~최대 1080p30

트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):

  1. 비디오: 2.3Mbps일 때 720p30, 오디오: 128kbps

  2. 비디오: 1.3Mbps일 때 480p30, 오디오: 128kbps

  3. 비디오: 0.7Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.27Mbps일 때 160p30, 오디오: 48kbps

  5. 64kbps일 때 오디오 전용

트랜스코딩 사전 설정: 제한된 대역폭 전송:

  1. 비디오: 1.9Mbps일 때 720p30, 오디오: 128kbps

  2. 비디오: 0.8Mbps일 때 480p30, 오디오: 128kbps

  3. 비디오: 0.4Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.22Mbps일 때 160p30, 오디오: 48kbps

  5. 0.08Mbps일 때 오디오 전용

8.5Mbps일 때 720p30/60 미만 및 480p30/60 초과

트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):

  1. 비디오: 2.3Mbps로 트랜스코딩된 소스, 오디오: 128kbps

  2. 비디오: 1.3Mbps일 때 480p30, 오디오: 128kbps

  3. 비디오: 0.7Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.27Mbps일 때 160p30, 오디오: 48kbps

  5. 64kbps일 때 오디오 전용

트랜스코딩 사전 설정: 제한된 대역폭 전송:

  1. 비디오: 1.9Mbps로 트랜스코딩된 소스, 오디오: 128kbps

  2. 비디오: 0.8Mbps일 때 480p30, 오디오: 128kbps

  3. 비디오: 0.4Mbps일 때 360p30, 오디오: 64kbps

  4. 비디오: 0.22Mbps일 때 160p30, 오디오: 48kbps

  5. 64kbps일 때 오디오 전용

8.5Mbps일 때 480p30/60

트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):

  1. 비디오: 1.3Mbps일 때 480p30, 오디오: 128kbps

  2. 비디오: 0.7Mbps일 때 360p30, 오디오: 64kbps

  3. 비디오: 0.27Mbps일 때 160p30, 오디오: 48kbps

  4. 64kbps일 때 오디오 전용

트랜스코딩 사전 설정: 제한된 대역폭 전송:

  1. 비디오: 0.8Mbps일 때 480p30, 오디오: 128kbps

  2. 비디오: 0.4Mbps일 때 360p30, 오디오: 64kbps

  3. 비디오: 0.22Mbps일 때 160p30, 오디오: 48kbps

  4. 64kbps일 때 오디오 전용

고급 SD 채널

ADVANCED-SD 채널이 트랜스코딩됩니다. 사용 가능한 변환은 입력 품질로 제한되며 상향 변환은 없습니다.

  • 트랜스코딩 사전 설정: 선택 가능한 트랜스코딩 사전 설정 래더가 두 개 있습니다.

  • 오디오: 오디오가 트랜스코딩됩니다.

입력 해상도 및 최대 비트레이트 래더 세부 정보

8.5Mbps일 때 480p30/60~최대 1080p30/60

트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):

  1. 비디오: 1.3Mbps일 때 480p30, 오디오: 128kbps

  2. 비디오: 0.7Mbps일 때 360p30, 오디오: 64kbps

  3. 비디오: 0.27Mbps일 때 160p30, 오디오: 48kbps

  4. 64kbps일 때 오디오 전용

트랜스코딩 사전 설정: 제한된 대역폭 전송:

  1. 비디오: 0.8Mbps일 때 480p30, 오디오: 128kbps

  2. 비디오: 0.4Mbps일 때 360p30, 오디오: 64kbps

  3. 비디오: 0.22Mbps일 때 160p30, 오디오: 48kbps

  4. 64kbps일 때 오디오 전용

기본 채널

BASIC 채널이 변환됩니다. 단일 변환이 생성됩니다.

  • 트랜스코딩 사전 설정: NA

  • 오디오: 소스 오디오가 전달됩니다.

입력 해상도 및 최대 비트레이트 래더 세부 정보

3.5Mbps일 때 480p30/60 초과 및 1080p30/60 이하

소스 인코딩 파라미터(래더 없음)

1.5Mbps일 때 480p30/60

소스 인코딩 파라미터(래더 없음)

비디오 설정

다음 설정을 권장합니다. 대부분의 H.264 비디오 인코딩 소프트웨어 또는 하드웨어 API에서 사용할 수 있습니다.

  • 비디오 인코더에서 IDR/Keyframe을 2초 간격 또는 전반적인 지연 시간이 더 짧은 경우에도 1초로 설정합니다.

  • H.264 레벨: 기본

  • 장면 변경: 꺼짐(기본 설정)

  • 채도 하위 샘플: YUV420P

  • CABAC: 기본 설정

  • ColorSpace: BT.709(HDTV 및 컴퓨터 디스플레이 간의 호환성 극대화를 위해 권장됨). Amazon IVS 비디오 트랜스코딩은 ColorSpace 패스스루를 지원하므로, 고급 사용자는 다른 ColorSpace 비디오 및 전체 범위 비디오를 사용할 수 있습니다.

오디오 설정

다음과 같은 설정을 지원합니다.

  • 코덱: AAC(LC)

  • 비트 전송률: 96Kbps~320Kbps

  • 샘플 속도: 44.1kHz 또는 48KHz(프로덕션 오디오 흐름에 맞추는 것이 가장 좋음)

  • 채널: 최대 2개 - 스테레오(1: 모노 또는 2: 스테레오 오디오 채널 지원)

VBR이 아닌 CBR 사용

인코더의 속도 제어 방법으로 가변 비트 전송률(Variable BitRate, VBR) 대신, 항상 고정 비트 전송률(Constant BitRate, CBR)을 사용합니다. CBR은 네트워크의 고정 대역폭 특성에 더 적합하며, 클라이언트 디바이스에 대해 보다 예측 가능하고 안정적인 비디오 재생을 제공합니다. 일관된 비트 전송률을 사용하면 시청자가 시간이 지나더라도 연결에서 처리할 수 있는 품질 수준을 쉽게 선택할 수 있습니다.

장면의 복잡성에 따라 VBR에서는 비트 전송률이 급증할 수 있으며, 이때 비디오가 Amazon IVS에 도달하기 전에 프레임이 떨어지거나 클라이언트 플레이어에서 버퍼링이 발생할 수 있습니다.

따라서 CBR만 사용하는 것을 권장합니다. VBR을 사용하는 경우 스트림에서 버퍼링 및 재생이 원활하지 않습니다.

프로그레시브 신호 사용

프로그레시브 신호 흐름(progressive signal flows)을 사용합니다. 프로덕션 흐름 또는 인코딩에서는 인터레이스 비디오(interlaced video) 사용을 자제하시기 바랍니다. 프로그레시브 스트림 신호를 사용하면 인터레이스 신호를 표시할 때 생성되는 모션 아티팩트를 방지하며 한 번에 전체 프레임을 표시하는 재생 품질이 크게 향상됩니다.

네트워크 요구 사항

적절하고 지속적인 업로드 스트림을 유지할 수 있는 안정적인 인터넷 연결을 사용해야 합니다. 인터넷 연결이 불안정하면 시청자 측에서 스트림이 끊어지거나 지연이 발생할 수 있습니다.

유선 연결을 사용합니다. WiFi 및 LTE 연결은 QoS/패킷 대기열 우선순위 지정으로 인해 문제가 발생하거나 간섭 또는 지연 시간이 발생할 수 있습니다. 가능하면 스트림에 대해 유선 연결을 사용합니다.

필요한 최소 대역폭보다 50% 더 많은 대역폭을 할당하도록 계획합니다. 비디오 비트 전송률의 인코딩에서 비트 전송률 변동을 보정하기 위해 오버헤드가 추가됩니다.

인코딩 시스템에 대한 전용 인터넷 VLAN을 사용합니다. 인코더를 별도의 네트워크에 보관하면 트래픽에 의한 오염, 대역폭 병목 현상 및 부정적 보안 요인과 같은 파괴적인 영향을 줄 수 있는 잠재 요인들을 방지할 수 있습니다.

폐쇄 자막

IVS는 폐쇄 자막(closed caption)을 지원합니다. 스트리머로 시청자에게 자막을 제공하려면 비디오 인코더를 통해 스트림에 포함되거나 스트림과 함께 허용된 형식으로 자막 데이터를 전송해야 합니다.

Amazon IVS는 21 CEA-708/EIA-608 형식(통칭 608에서 708 형식) 자막에서 21 라인을 허용합니다. 다음 방법 중 하나를 사용하여 자막을 전송할 수 있습니다.

  • CEA-708/EIA-608은 ATSCA/72(SEI user_data)에서 설명한 바와 같이 비디오 기본 스트림에 포함되어 있습니다. 이는 TV 브로드캐스트 인코더에서 흔히 사용되는 형식입니다.

  • CEA-708/EIA-608은 RTMPS onCaptionInfo 스크립트/AMF0 태그를 통해 전송됩니다. 이 형식은 Elemental Technologies 및 Wowza와 같은 인터넷 브로드캐스트 인코더와 미디어 서버에서 일반적입니다. Amazon IVS Player SDK는 하나의 언어를 지원하며 다중 트랙 자막 재생을 지원하지 않습니다.

참고: Amazon IVS Player SDK는 CC1 NTSC 필드 1의 자막 데이터만 지원합니다. 다중 트랙 자막 재생은 지원하지 않습니다.

RTMPS를 통해 전송할 때 페이로드는 다음 두 개의 요소 페어가 있는 ECMA 어레이를 포함해야 합니다.

  • 이름이 type인 문자열로, 708 문자를 포함합니다.

  • 이름이 data인 문자열로, base64로 인코딩된 CEA-708/EIA-608 페이로드를 포함합니다.

예:

00000000 12 00 00 69 00 00 00 00 00 00 00 02 00 0d 6f 6e |...i..........on| 00000010 43 61 70 74 69 6f 6e 49 6e 66 6f 08 00 00 00 02 |CaptionInfo.....| 00000020 00 04 74 79 70 65 02 00 03 37 30 38 00 04 64 61 |..type...708..da| 00000030 74 61 02 00 3c 74 51 41 78 52 30 45 35 4e 41 4e |ta..<tQAxR0E5NAN| 00000040 4c 41 50 79 55 72 76 79 55 49 50 79 52 51 50 7a |LAPyUrvyUIPyRQPz| 00000050 49 35 66 7a 73 37 50 7a 76 4c 50 77 67 56 50 7a |I5fzs7PzvLPwgVPz| 00000060 33 36 66 7a 30 34 2f 78 6f 67 50 79 55 4c 2f 38 |36fz04/xogPyUL/8| 00000070 3d 00 00 09 00 00 00 74 |=......t|

Elemental 비디오 인코더를 사용하는 경우 다음과 같이 설정합니다.

  • 캡션 임베드를 'capture 608 Field 1'로 설정합니다.

  • 출력 그룹의 RTMPS 태그로 onCaptionInfo를 사용하여 자막을 포함합니다.

자세한 내용은 블로그 게시물, Adding Closed Captions to an Amazon IVS Live Stream을 참조하세요.

FFmpeg를 사용한 스트림

FFmpeg는 비디오, 오디오 및 기타 멀티미디어 파일과 스트림을 처리하기 위한 방대한 소프트웨어 라이브러리 모음으로 구성된 무료 오픈 소스 프로젝트로 다양한 운영 체제 및 디바이스에서 사용할 수 있습니다. 많은 운영 체제 및 디바이스에서 사용할 수 있습니다.

FFmpeg에 대한 설치 및 자세한 내용은 FFmpeg 웹 사이트를 참조하세요. 최신 정적 빌드를 사용합니다(컴파일하지 마세요).

설치 후 FFmpeg에 대한 오디오 및 비디오 입력 소스를 선택합니다. 다음과 같이 사용할 수 있는 항목을 찾을 수 있습니다.

ffmpeg -list_devices true -f dshow -i dummy.

자세한 내용은 여기에서 확인하세요. 사용 가능한 항목과 대상 캡처 방법에 따라 선택한 디바이스에서 직접 비디오 및 오디오(포함됨)를 캡처하고 FFmpeg로 신호를 인코딩할 수 있어야 합니다. 예:

  • 웹캠-Logitech C920 웹캠에서 출력을 캡처합니다.

    ffmpeg -f dshow -video_size 1920x1080 -framerate 30 -i video="HD Pro Webcam C920":audio="Microphone (HD Pro Webcam C920)" -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -r 30 -s 1920x1080 -profile:v main -preset veryfast -g 120 -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/<IVS-stream-key>
  • 비디오 파일-FFmpeg는 다양한 비디오 파일 형식 및 캡처 카드에서 작동합니다. 다음은 MP4 입력을 기반으로 한 스트리밍의 예제입니다.

    ffmpeg -re -i input.mp4 -c:v libx264 -b:v 6000K -maxrate 6000K -pix_fmt yuv420p -s 1920x1080 -profile:v main -preset veryfast -force_key_frames expr:gte(t,n_forced*2) -x264opts "nal-hrd=cbr:no-scenecut” -acodec aac -ab 160k -ar 44100 -f flv rtmps://<IVS-ingest-server>/app/<IVS-stream-key>

<IVS-ingest-server><IVS-stream-key>에 입력할 내용에 대한 자세한 내용은 IVS 지연 시간이 짧은 스트리밍 시작하기에서 라이브 스트리밍 설정에 대한 정보를 참조하세요. 예:

  • 수집 서버: rtmps://jds34ksdg3las.global-contribute.live-video.net/app/

  • 스트림 키: sk_us-west-2_abcd1234efgh5678ijkl

스트림 인수

스트림 인수를 통해 사용자는 자신이 소유한 채널에서 진행 중인 스트림을 새 스트림으로 교체할 수 있습니다. 이 프로세스 중에 이전 스트림은 연결 해제되지 않으며 새 스트림으로 대체됩니다. 이를 통해 사용자는 진행 중인 스트림이 완전히 연결 해제될 때까지 기다릴 필요 없이 새 스트림에 원활하게 연결할 수 있습니다.

스트림 인수 프로세스는 진행 중인 스트림 세션을 확장하지만 새 스트림 세션을 시작하지는 않습니다. 이렇게 하면 뷰어가 플레이어를 새로 고칠 필요 없이 스트림 연속성을 유지할 수 있지만 짧은 버퍼링 상태가 발생할 수 있습니다. 스트림 인수가 발생하는 스트림 세션의 레코딩에는 중단이 없습니다.

스트림 인수를 시작하려면 priority URL 파라미터를 사용자의 스트림 키에 추가합니다. 스트림 키는 <IVS-stream-key>?priority=<priority>가 되며, 여기서 <priority>는 1~2,147,483,647 사이의 양의 정수입니다.

RTMPS 프로토콜에서 스트림 인수를 사용하기 위한 URI 구문은 다음과 같습니다.

rtmps://<uri>/<streamkey>?priority=N

SRT 수집의 경우 스트림 인수를 위한 URI 구문은 다음과 같습니다.

srt://<uri>?streamid=#!::u=<streamkey>,priority=N&passphrase=foobar

새 스트림에 대해 제공된 우선순위 정수가 진행 중인 스트림의 우선순위 정수보다 크거나 이전 우선순위 정수가 설정되지 않은 경우 인수가 성공합니다. 또한 이전 스트림과 새 스트림은 동일한 해상도, 비디오 코덱, 오디오 코덱, 트랙 수를 공유해야 합니다.

기본적으로 각 연속 인수에 더 높은 우선순위 정수가 사용되는 한 단일 스트림에서 최대 100개의 인수를 수행할 수 있습니다. 최대 스트림 인수 횟수는 AWS 계정당 조정할 수 있습니다(Service Quotas 참조). 스트림이 끝나면 채널은 이전 우선순위 정수의 메모리 또는 인수 횟수를 유지하지 않으므로 모든 우선순위 정수를 향후 스트림에 재사용할 수 있습니다. 또한 스트림 인수에 대한 인코더 설정이 변경된 경우 스트림 세션은 이전 인코더 설정의 메모리를 유지하지 않으며 최신 설정만 표시합니다.

자동 재연결 기능이 활성화된 경우 IVS 모바일 브로드캐스트 SDK는 스트림 인수를 사용하여 브로드캐스터가 네트워크를 전환할 때(예: WiFi에서 셀룰러로) 자동으로 재연결합니다. 자동 재연결을 활성화하려면:

  • iOS에서는 IVSBroadcastConfiguration 객체에 config.autoReconnect.enabled = true를 설정합니다.

  • Android에서는 BroadcastConfiguration 객체에 config.autoReconnect.setEnabled(true)를 설정합니다.

자동 재연결 및 스트림 인수를 함께 사용하기 위한 고려 사항

모바일 브로드캐스트 SDK 고객이 위에 설명된 대로 자동 재연결을 활성화하면 진행 중인 스트리머(브로드캐스터 A)는 네트워크 중단 후 최대 5회까지 재연결을 시도하며, 각 재연결 시도에서 priority=1로 시작하여 우선순위를 증가시킵니다. 이 프로세스를 통해 브로드캐스트는 성공적으로 다시 연결할 때마다 우선순위를 점진적으로 높여 불안정한 네트워크에서 자동으로 복구할 수 있습니다.

그러나 자동 재연결 동작의 증분 특성으로 인해 원래 브로드캐스터가 자동 재연결을 사용할 때 다른 브로드캐스터(브로드캐스터 B)가 스트림 인수를 성공적으로 사용하는 것이 어려워집니다. 브로드캐스터 A의 재연결 시도는 스트림 지속 시간 동안 재시도할 때마다 우선순위 값을 증가시키므로 성공적인 인수를 보장하는 데 필요한 우선순위 값은 예측할 수 없습니다.

참고: 자동 재연결이 활성화된 경우 스트림 인수를 사용하여 모바일 브로드캐스트 SDK에서 스트림을 재정의하는 것은 권장되지 않습니다. 인수에 필요한 우선순위의 레코드를 관리하거나 유지해야 하기 때문입니다. 처음에는 큰 우선순위 값을 설정해도 나중에 다른 인수가 필요한 경우 문제가 발생할 수 있습니다. 네트워크 불안정성 및 브로드캐스터 B의 스트림 인수 중에 브로드캐스터 A에 대한 자동 재연결을 고유한 사용 사례로 유지하는 것이 좋습니다.

Amazon IVS Broadcast SDK를 사용한 스트림

Amazon IVS Broadcast SDK는 Amazon IVS로 Android, iOS 또는 웹 애플리케이션을 구축하는 개발자를 위해 구축된 서비스입니다. 이 부분부터 참고하여 Amazon IVS 사용 설명서 의 브로드캐스트 SDK 문서를 확인하세요. 이에는 Android, iOS 및 웹 스트리밍에 대한 가이드 내용이 담긴 하위 페이지가 있습니다. 브로드캐스트 SDK를 사용하면 비트 전송률, 프레임 속도 및 해상도를 사용자 지정할 수 있습니다.

스트림 테스트

스트림이 작동하는지 항상 확인합니다.

Amazon IVS 콘솔에서 비디오 스트림으로 이동하여 스트리밍되는 콘텐츠를 보고 라이브 스트림을 관리합니다.