기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon IVS 스트리밍 구성
개발자는 Amazon Interactive Video Service(IVS)를 통해 지연 시간이 짧은 비디오를 전 세계 시청자에게 손쉽게 전송할 수 있습니다. Amazon IVS를 사용하는 경우 스트리머는 스트림 프로덕션만 처리한 다음, 스트림을 Amazon IVS로 보내기만 하면 됩니다. Amazon IVS는 Amazon IVS 플레이어를 통해 수집 및 트렌스코딩과 같은 영상 처리, 전송 및 재생 등의 기능을 사용자에게 제공합니다.
라이브 스트리밍을 위한 솔루션도 다양합니다. 여러 대의 카메라, 비주얼 전환기, 그래픽 합성, 다양한 오디오 믹싱 장비를 갖춘 스튜디오에서든, 또는 스마트폰으로 첫 번째 스트림을 시작할 계획이든 간에 몇 가지 동일한 개념과 인코딩 파라미터를 처리해야 합니다.
이 문서에서는 Amazon IVS로 스트리밍하기 위해 비디오 인코더를 구성하는 방법에 대해 설명합니다. 이 문서는 애플리케이션에 스트리밍 기능을 구축하려는 개발자를 대상으로 합니다.
단 IVS 저지연 스트리밍에는 오디오 전용 입력이 지원되지 않습니다.
사전 조건
IVS 지연 시간이 짧은 스트리밍 시작하기의 단계를 따라 채널을 생성하고 스트리밍을 설정하세요. 이 과정에서 스트림 수집 및 재생을 위한 URL과 함께 채널 ARN(Amazon 리소스 이름) 및 스트림 키가 지정됩니다. 스트리밍 애플리케이션이 수집 URL을 가리켜야 합니다.
이 문서를 읽기 전에 다음을 충분히 숙지해야 합니다.
-
Amazon IVS 기본 사항: IVS 지연 시간이 짧은 스트리밍이란 및 IVS 지연 시간이 짧은 스트리밍 시작하기 읽기
-
Amazon IVS API: IVS Low-Latency Streaming API Reference를 확인하세요.
지연 시간 단축
지연 시간이 짧은 Amazon IVS 스트리밍은 대부분의 스트리밍 애플리케이션과 호환되며, 스트리밍 애플리케이션 구성을 조금만 변경하면 됩니다. 지연 시간을 최소화하려면 Amazon IVS 플레이어를 사용해야 합니다. 서드 파티 HLS 비디오 플레이어는 지원되지 않습니다. 자세한 내용은 Amazon IVS 플레이어 SDK 설명서를 참조하세요.
지연 시간이 짧은 스트리밍을 위한 스트리밍 애플리케이션을 준비하려면 다음을 수행합니다. (참고: 일부 스트리밍 애플리케이션에서는 이러한 옵션 중 일부를 사용할 수 없습니다.
-
비디오 인코더에서 2초 간격 (또는 지연 end-to-end 시간을 더 짧게
IDR/Keyframe
하려면 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) 가 스트림의 평균 비트레이트 (kilobits-per-second) 를 초과하지 않는지 확인하십시오.
서드 파티 스트리밍/전달 서비스 금지
Amazon IVS로 콘텐츠를 재스트리밍하거나 전달하는 데 서드 파티 서비스를 사용하지 않는 것이 좋습니다. 이 경우 지연 시간이 더 늘어납니다. 지연 시간을 줄이려면 Amazon IVS로 직접 스트리밍하세요.
인코더 설정
스트림 수집: 코덱, RTMPS 및 포트 443
코덱: Amazon IVS는 비디오에 대해 H.264를 지원하고 오디오에는 AAC(LC)를 지원합니다.
Amazon IVS는 스트리밍 소프트웨어 및 하드웨어에 사용되는 가장 일반적인 보안 수집 프로토콜인 Real-Time Messaging Protocol over a TLS/SSL(RTMPS) 연결을 지원합니다. Amazon IVS 스트리밍 및 재생에는 TLS 버전 1.2 이상이 필요합니다.
비디오 인코더는 아웃바운드 포트 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>
해상도/비트 전송률/FPS
스트림의 해상도는 비트레이트와 프레임 속도 (frames-per-second또는 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 표준 프레임 속도 포함)를 지원합니다. 비트 전송률 대역폭이 적절하다면 프레임 속도가 높을수록 품질이 향상됩니다. 애플리케이션에 따라 낮은 프레임 속도는 허용 가능합니다(예: 보안 카메라).
채널 유형
채널 유형에서 허용되는 해상도 및 비트 전송률을 결정합니다. 허용되는 입력 해상도 또는 비트 전송률을 초과하면 스트림 연결이 즉시 해제될 수 있습니다.
채널 유형에는 STANDARD
, ADVANCED_SD
, ADVANCED_HD
, BASIC
등 네 가지가 있습니다. 채널을 생성할 때 기본 유형은 STANDARD
입니다.
채널 유형에 따라채널 유형에 따라 동영상은 트랜스코딩 또는 트랜스먹싱될 수 있습니다.
STANDARD
및ADVANCED
채널의 비디오는 트랜스코딩됩니다. 원래 입력에서 여러 가지 품질이 생성되어 최종 사용자의 디바이스 및 네트워크 조건에 가장 적합한 경험을 자동으로 제공합니다. 트랜스코딩을 사용하면 다양한 다운로드 속도에서 더 높은 재생 품질을 얻을 수 있습니다.-
BASIC
채널의 비디오는 트랜스먹싱됩니다. Amazon IVS에서 최종 사용자에게 원래 입력을 제공합니다.
트랜스코딩된 모든 채널에는 생성할 변환을 결정하는 트랜스코딩 사전 설정이 있으며 이를 ABR 래더라고 생각하시기 바랍니다. ABR 래더를 통해 사용 가능한 다운로드 대역폭과 비디오 품질을 절충하여 시청 환경을 최적화할 수 있습니다.
STANDARD
채널에는 기본 트랜스코딩 사전 설정이 하나 있습니다.-
ADVANCED
채널에는 선택 가능한 트랜스코딩 사전 설정이 두 개 있습니다.제한된 대역폭 전송은 품질 수준마다
STANDARD
보다 낮은 비트 전송률을 사용합니다. 다운로드 대역폭이 낮거나 비디오 콘텐츠가 단순한 경우(예: 토킹 헤드)에 사용하세요.더 높은 대역폭 전송: 품질 수준마다 더 높은 비트 전송률을 사용합니다. 다운로드 대역폭이 높거나 비디오 콘텐츠가 복잡한 경우(예: 플래시 및 빠른 장면 전환)에 사용하세요. 이 값이 기본값입니다.
표준 채널
STANDARD
채널이 트랜스코딩됩니다. 가장 높은 비디오 해상도는 Full HD, 1080p입니다. 이것이 기본 채널 유형입니다.
트랜스코딩 사전 설정: 기본 트랜스코딩 사전 설정 래더가 하나 있습니다.
오디오: 360p 이하 변환의 경우 오디오가 트랜스코딩됩니다. 다른 변환의 경우 원본 오디오가 전달됩니다.
입력 해상도 및 최대 비트레이트 | 래더 세부 정보 |
---|---|
8.5Mbps일 때 1080p60 |
|
8.5Mbps일 대 1080p30 |
|
8.5Mbps일 때 1080p60 미만 및 720p60 초과 |
|
8.5Mbps일 때 1080p30 미만 및 720p30 초과 |
|
8.5Mbps일 때 720p60 |
|
8.5Mbps일 때 720p30 |
|
8.5Mbps일 때 720p30/60 미만 및 480p30/60 이상 |
|
고급 HD 채널
ADVANCED-HD
채널이 트랜스코딩됩니다. 가장 높은 비디오 해상도는 HD, 720p입니다.
트랜스코딩 사전 설정: 선택 가능한 트랜스코딩 사전 설정 래더가 두 개 있습니다.
오디오: 360p 이하 변환의 경우 오디오가 트랜스코딩됩니다. 다른 변환의 경우 원본 오디오가 전달됩니다.
입력 해상도 및 최대 비트레이트 | 래더 세부 정보 |
---|---|
8.5Mbps일 때 720p60~ 최대 1080p60 |
트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):
트랜스코딩 사전 설정: 제한된 대역폭 전송:
|
8.5Mbps일 때 720p30~최대 1080p30 |
트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):
트랜스코딩 사전 설정: 제한된 대역폭 전송:
|
8.5Mbps일 때 720p30/60 미만 및 480p30/60 초과 |
트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):
트랜스코딩 사전 설정: 제한된 대역폭 전송:
|
8.5Mbps일 때 480p30/60 |
트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):
트랜스코딩 사전 설정: 제한된 대역폭 전송:
|
고급 SD 채널
ADVANCED-SD
채널이 트랜스코딩됩니다. 사용 가능한 변환은 입력 품질로 제한되며 상향 변환은 없습니다.
트랜스코딩 사전 설정: 선택 가능한 트랜스코딩 사전 설정 래더가 두 개 있습니다.
오디오: 오디오가 트랜스코딩됩니다.
입력 해상도 및 최대 비트레이트 | 래더 세부 정보 |
---|---|
8.5Mbps일 때 480p30/60~최대 1080p30/60 |
트랜스코딩 사전 설정: 더 높은 대역폭 전송(기본값):
트랜스코딩 사전 설정: 제한된 대역폭 전송:
|
기본 채널
BASIC
채널이 변환됩니다. 단일 변환이 생성됩니다.
트랜스코딩 사전 설정: NA
오디오: 오디오가 트랜스코딩됩니다.
입력 해상도 및 최대 비트레이트 | 래더 세부 정보 |
---|---|
3.5Mbps일 때 480p30/60 초과 및 1080p30/60 이하 |
소스 인코딩 파라미터(래더 없음) |
1.5Mbps일 때 480p30/60 |
소스 인코딩 파라미터(래더 없음) |
비디오 설정
다음 설정을 권장합니다. 대부분의 H.264 비디오 인코딩 소프트웨어 또는 하드웨어 API에서 사용할 수 있습니다.
-
비디오 인코더에서 2초 간격 (지연 시간을 더 짧게
IDR/Keyframe
하려면 1초) 으로 설정합니다. end-to-end -
H.264 레벨: 기본
-
장면 변경: 꺼짐(기본 설정)
-
채도 하위 샘플: YUV420P
-
CABAC: 기본 설정
-
ColorSpace: BT.709 (HDTV 및 컴퓨터 디스플레이 간 호환성을 극대화하려면 권장). Amazon IVS 비디오 트랜스코딩은 ColorSpace 패스스루를 지원합니다. 고급 사용자는 다른 ColorSpace 비디오와 풀레인지 비디오를 사용할 수 있습니다.
오디오 설정
다음과 같은 설정을 지원합니다.
-
코덱: AAC(LC)
-
비트 전송률: 96Kbps~320Kbps
-
샘플 속도: 44.1kHz 또는 48KHz(프로덕션 오디오 흐름에 맞추는 것이 가장 좋음)
-
채널: 최대 2개 - 스테레오(1: 모노 또는 2: 스테레오 오디오 채널 지원)
VBR이 아닌 CBR 사용
인코더의 속도 제어 방법으로는 항상 VBR (가변 BitRate) 이 아닌 CBR (상수 BitRate) 을 사용하십시오. CBR은 네트워크의 고정 대역폭 특성에 더 적합하며, 클라이언트 디바이스에 대해 보다 예측 가능하고 안정적인 비디오 재생을 제공합니다. 일관된 비트 전송률을 사용하면 시청자가 시간이 지나더라도 연결에서 처리할 수 있는 품질 수준을 쉽게 선택할 수 있습니다.
장면의 복잡성에 따라 VBR에서는 비트 전송률이 급증할 수 있으며, 이때 비디오가 Amazon IVS에 도달하기 전에 프레임이 떨어지거나 클라이언트 플레이어에서 버퍼링이 발생할 수 있습니다.
따라서 CBR만 사용하는 것을 권장합니다. VBR을 사용하는 경우 스트림에서 버퍼링 및 재생이 원활하지 않습니다.
프로그레시브 신호 사용
프로그레시브 신호 흐름을 사용합니다. 프로덕션 흐름 또는 인코딩에서는 인터레이스 비디오 사용을 자제하시기 바랍니다. 프로그레시브 스트림 신호를 사용하면 인터레이스 신호를 표시할 때 생성되는 모션 아티팩트를 방지하며 한 번에 전체 프레임을 표시하는 재생 품질이 크게 향상됩니다.
네트워크 요구 사항
적절하고 지속적인 업로드 스트림을 유지할 수 있는 안정적인 인터넷 연결을 사용해야 합니다. 인터넷 연결이 불안정하면 시청자 측에서 스트림이 끊어지거나 지연이 발생할 수 있습니다.
유선 연결을 사용하십시오. WiFi 그리고 잘못된 QoS/패킷 큐 우선 순위 지정으로 인해 LTE 연결이 불안정하거나 간섭 또는 대기 시간이 발생할 수 있습니다. 가능하면 스트림에 대해 유선 연결을 사용합니다.
필요한 최소 대역폭보다 50% 더 많은 대역폭을 할당하도록 계획합니다. 비디오 비트 전송률의 인코딩에서 비트 전송률 변동을 보정하기 위해 오버헤드가 추가됩니다.
인코딩 시스템에 대한 전용 인터넷 VLAN을 사용합니다. 인코더를 별도의 네트워크에 보관하면 트래픽에 의한 오염, 대역폭 병목 현상 및 부정적 보안 요인과 같은 파괴적인 영향을 줄 수 있는 잠재 요인들을 방지할 수 있습니다.
폐쇄 자막
IVS는 폐쇄 자막을 지원합니다. 스트리머로 시청자에게 자막을 제공하려면 비디오 인코더를 통해 스트림에 포함되거나 스트림과 함께 허용된 형식으로 자막 데이터를 전송해야 합니다.
Amazon IVS는 21 CEA-708/EIA-608 형식(통칭 608에서 708 형식) 자막에서 21 라인을 허용합니다. 다음 방법 중 하나를 사용하여 자막을 전송할 수 있습니다.
-
CEA-708/EIA-608은 ATSCA/72(SEI user_data)에서 설명한 바와 같이 비디오 기본 스트림에 포함되어 있습니다. 이는 TV 브로드캐스트 인코더에서 흔히 사용되는 형식입니다.
-
onCaptionInfo CEA-708/EIA-608은 RTMPS 스크립트/AMF0 태그를 통해 전송되었습니다. 이 형식은 Elemental Technologies 및 Wowza와 같은 인터넷 브로드캐스트 인코더와 미디어 서버에서 일반적입니다. Amazon IVS 플레이어 SDK는 하나의 언어를 지원하며 다중 트랙 자막 재생을 지원하지 않습니다.
참고: Amazon IVS 플레이어 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
.
자세한 내용은 여기
-
웹캠 — 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
Amazon IVS 브로드캐스트 SDK를 사용한 스트림
Amazon IVS 브로드캐스트 SDK는 Amazon IVS로 Android, iOS 또는 웹 애플리케이션을 구축하는 개발자를 위해 구축된 서비스입니다. 이 부분부터 참고하여 Amazon IVS 사용 설명서의 브로드캐스트 SDK 설명서를 확인하세요. Android, iOS 및 웹 스트리밍에 대한 가이드가 담긴 하위 페이지가 있습니다. 브로드캐스트 SDK를 사용하면 비트 전송률, 프레임 속도 및 해상도를 사용자 지정할 수 있습니다.
스트림 테스트
스트림이 작동하는지 항상 확인합니다.
Amazon IVS 콘솔