Media Services 라이브 이벤트
경고
Azure Media Services는 2024년 6월 30일에 사용 중지됩니다. 자세한 내용은 AMS 사용 중지 가이드를 참조하세요.
Azure Media Services를 사용하면 Azure 클라우드에서 고객에게 라이브 이벤트를 제공할 수 있습니다.
팁
Media Services v2 API에서 마이그레이션하는 경우 라이브 이벤트 엔터티는 v2의 채널을 대체하고 라이브 출력 은 프로그램을 대체합니다.
라이브 이벤트
라이브 이벤트는 라이브 비디오 피드를 수집하고 처리합니다. 라이브 이벤트를 만들면 수집 엔드포인트가 만들어집니다. 수집 엔드포인트는 원격 인코더의 라이브 신호를 사용합니다. 원격 라이브 인코더는 RTMP 또는 부드러운 스트리밍 (조각화된 MP4) 입력 프로토콜을 사용하여 피드를 입력 엔드포인트로 보냅니다. RTMP 수집 프로토콜의 경우 콘텐츠를 기본(rtmp://
)으로 전송하거나 유선으로 안전하게 암호화(rtmps://
)하여 전송할 수 있습니다. 부드러운 스트리밍 수집 프로토콜의 경우 지원되는 URL 체계는 http://
또는 https://
입니다.
기본 할당은 Media Services 계정당 5개의 라이브 이벤트입니다. 이 한도를 늘리려면 Azure Portal에서 지원 티켓을 제출하세요.
라이브 이벤트 유형
라이브 이벤트는 기본 또는 표준 통과 또는 라이브 인코딩으로 설정할 수 있습니다. 형식은 라이브 이벤트 인코딩 형식을 사용하여 만드는 동안 설정됩니다.
- 통과 기본: 온-프레미스 라이브 인코더는 여러 비트 전송률 스트림을 보냅니다. 기본 통과는 최고 수신 5Mbps, 8시간 DVR 기간으로 제한되고 라이브 전사는 지원되지 않습니다.
- 통과 표준: 온-프레미스 라이브 인코더는 여러 비트 전송률 스트림을 보냅니다. 표준 통과는 수집 한도가 더 높고 DVR 기간이 25시간이며 라이브 전사가 지원됩니다.
- 표준: 온-프레미스 라이브 인코더는 단일 비트 전송률 스트림을 라이브 이벤트로 보내고 Media Services는 여러 비트 전송률 스트림을 만듭니다. 기여 피드가 720p 이상 해상도인 경우 Default720p 사전 설정은 6개의 해상도/비트 전송률 쌍 집합을 인코딩합니다.
- 프리미엄 1080p: 온-프레미스 라이브 인코더는 단일 비트 전송률 스트림을 라이브 이벤트로 보내고 Media Services는 여러 비트 전송률 스트림을 만듭니다. Default1080p 사전 설정은 해상도/비트 전송률 쌍의 출력 집합을 지정합니다.
참고
최대 프레임 속도는 표준 및 프리미엄 인코딩에 대해 모두 30fps입니다.
통과 라이브 이벤트
기본 또는 표준 통과 라이브 이벤트를 사용하는 경우 온-프레미스 라이브 인코더를 사용하여 여러 비트 전송률 비디오 스트림을 생성하고 라이브 이벤트(RTMP 또는 조각화된 MP4 프로토콜 사용)로 보냅니다. 그러면 라이브 이벤트는 들어오는 비디오 스트림을 추가 처리 없이 제공합니다. 통과 라이브 이벤트는 장기 실행 라이브 이벤트 또는 연중무휴 선형 라이브 스트리밍에 최적화되어 있습니다. 이 유형의 라이브 이벤트를 만드는 경우 통과 “기본” 또는 “표준”
H.264/AVC 또는 H.265/HEVC(부드러운 수집 전용) 비디오 코덱과 AAC(AAC-LC, HE-AACv1 또는 HE-AACv2) 오디오 코덱을 사용하여 최대 4K의 해상도와 60프레임/초의 프레임 속도로 피드를 보낼 수 있습니다. 자세한 내용은 라이브 이벤트 유형 비교를 참조하세요.
참고
통과 방법을 사용하면 긴 기간 동안 여러 이벤트를 수행하고 온-프레미스 인코더에 이미 투자한 경우 라이브 스트리밍을 수행하는 가장 경제적인 방법입니다. 가격 책정 세부 정보를 참조하세요.
라이브 인코딩 라이브 이벤트
라이브 인코딩을 사용하는 경우 RTMP 또는 Fragmented-Mp4 프로토콜을 사용하여 단일 비트 전송률 비디오를 라이브 이벤트에 보내도록 온-프레미스 라이브 인코더를 구성합니다. 그런 다음 들어오는 단일 비트 전송률 스트림을 다중 비트 전송률 비디오 스트림으로 인코딩하도록 라이브 이벤트를 설정합니다. 이렇게 하면 MPEG-DASH, HLS 및 부드러운 스트리밍과 같은 프로토콜을 통해 디바이스를 재생할 수 있는 출력을 배달할 수 있습니다.
이 경우 H.264/AVC 비디오 코덱 및 AAC(AAC-LC, HE-AACv1 또는 HE-AACv2) 오디오 코덱을 사용하여 최대 1080p 해상도의 해상도에서만 30프레임/초의 프레임 속도로 기여 피드를 보낼 수 있습니다. 자세한 내용은 라이브 이벤트 유형 비교를 참조하세요.
짧은 대기 시간 HLS 및 DASH 스트리밍 옵션
라이브 이벤트 인코딩을 사용하여 짧은 대기 시간을 달성하는 방법에 대한 자세한 내용은 LL-HLS(짧은 대기 시간 HLS) 및 DASH 스트리밍 옵션 및라이브 스트리밍 모범 사례 가이드를 참조하세요.
라이브 인코딩 출력 해상도 및 비트 전송률
라이브 인코더의 결과 출력의 해상도 및 비트 전송률은 사전 설정에 따라 결정됩니다.
- 표준 라이브 인코더를 사용하는 경우 Default720p 사전 설정은 6개의 해상도/비트 속도 쌍 집합을 지정하며, 720p에서 3.5Mbps로, 200kbps에서 192p로 감소합니다.
- Premium1080p 라이브 인코더를 사용하는 경우 Default1080p 사전 설정은 6개의 해상도/비트 속도 쌍 집합을 지정하며, 3.5Mbps에서 1080p에서 200kbps로 180p로 감소합니다.
자세한 내용은 시스템 미리 설정을 참조하세요.
참고
라이브 인코딩 사전 설정을 사용자 지정해야 하는 경우 Azure Portal을 통해 지원 티켓을 엽니다. 원하는 비디오 해상도/비트 전송률 및 오디오 비트 전송률 표를 지정해야 합니다. 비디오의 경우 720p에서 레이어가 하나만 있고, 6레이어 이하인지 확인합니다. 오디오의 경우 다음과 같은 개별 AAC 오디오 비트 전송률(96k, 112k, 128k, 160k, 192k, 224k, 256k, 320k, 384k, 448k, 512k)로 사용자 지정할 수 있습니다. 여러 비트 전송률의 여러 오디오 트랙이 허용되며 사용자 지정 사전 설정에 포함될 수 있습니다. 또한 지원 티켓에서 사용자 지정 사전 설정을 요청하는지 지정하세요.
LiveEventEncodingType용 REST API 또는 .Net, Node.JS 또는 Python SDK를 참조하세요. 또한 라이브 이벤트 샘플 코드를 사용해 볼 수 있습니다.
라이브 이벤트 옵션
라이브 이벤트를 만들 때 다음 옵션을 지정할 수 있습니다.
- 이름 및 설명입니다.
- 표준 및 프리미엄 인코딩의 경우 인코딩된 비디오의 스트레치 모드 를 선택할 수 있습니다.
- 없음: 입력 비디오의 픽셀 가로 세로 비율 또는 표시 가로 세로 비율을 고려하지 않고 인코딩 사전 설정에 지정된 출력 해상도를 엄격하게 준수합니다.
- AutoSize: 출력 해상도를 재정의하고 패딩 없이 입력의 표시 가로 세로 비율과 일치하도록 변경합니다. 예를 들어, 입력이 1920x1080이고 인코딩 사전 설정에서 1280x1280을 요청하는 경우 사전 설정의 값이 재정의되고 출력이 1280x720이 되어 16:9의 입력 가로 세로 비율이 유지됩니다.
- 자동 맞춤: 출력의 활성 비디오 영역이 입력과 동일한 가로 세로 비율을 갖도록 하면서 출력 해상도를 적용하기 위해 출력(레터박스 또는 필라 박스 포함)을 채우세요. 예를 들어 입력이 1920x1080이고 인코딩 사전 설정에서 1280x1280을 요청하는 경우 출력은 1280x1280이 되며, 가로 세로 비율이 16:9인 내부 1280x720 사각형과 왼쪽 및 오른쪽에 280픽셀 너비의 필러박스 영역을 포함합니다.
- 스트리밍 프로토콜 RTMP 또는 부드러운 스트리밍. 참고: 라이브 이벤트 또는 연결된 라이브 출력이 실행되는 동안에는 프로토콜 옵션을 변경할 수 없습니다. 다른 프로토콜이 필요한 경우 각 스트리밍 프로토콜에 대한 별도의 라이브 이벤트를 만드세요.
- 라이브 이벤트 입력 스트림에 대한 전역적으로 고유한 식별자인 입력 ID입니다.
- 없음을 포함하는 정적 호스트 이름 접두사(이 경우 임의의 128비트 16진수 문자열 사용), 라이브 이벤트 이름 사용 또는 사용자 지정 이름 사용. 고객 이름을 사용하도록 선택하는 경우 이 값은 사용자 지정 호스트 이름 접두사입니다.
- 입력 키 프레임 간격은 HLS 출력에서 각 미디어 세그먼트의 기간(초)입니다. 값은 0.5 ~ 20초 범위의 0이 아닌 정수여야 합니다. 입력 또는 출력 키 프레임 간격을 모두 설정하지 않으면 기본값은 2초입니다. 키 프레임 간격은 통과 이벤트에서만 허용됩니다.
- 자동 시작. 자동 시작이 true로 설정되어 있는 경우 라이브 이벤트가 생성 후 시작됩니다. 라이브 이벤트가 실행되는 즉시 청구가 시작됩니다. 추가 청구를 중지하려면 라이브 이벤트를 명시적으로 중지해야 합니다. 또는 스트리밍을 시작할 준비가 되었을 때 이벤트를 시작해도 됩니다.
- 수집 및 미리 보기에 대한 IP 제한. 이 라이브 이벤트에 비디오를 수집하도록 허용된 IP 주소를 정의할 수 있습니다. 허용된 IP 주소는 단일 IP 주소(예: '10.0.0.1'), IP 주소 및 CIDR 서브넷 마스크를 사용하는 IP 범위(예: '10.0.0.1/22') 또는 IP 주소와 점으로 구분된 십진수 서브넷 마스크를 사용하는 IP 범위(예: '10.0.0.1(255.255.252.0)')로 지정할 수 있습니다.
- 지정된 IP 주소가 없고 정의된 규칙이 없는 경우, IP 주소가 허용되지 않습니다. 모든 IP 주소를 허용하려면 규칙을 만들고 0.0.0.0/0으로 설정합니다. IP 주소는 4개의 숫자 또는 CIDR 주소 범위가 있는 IpV4 또는 IPv6 주소 형식 중 하나여야 합니다. IPv4 또는 IPv6 사용에 대한 자세한 내용은 IP 허용 목록을 사용하여 DRM 라이선스 및 AES 키 배달에 대한 액세스 제한을 참조하세요.
- 자신의 방화벽에서 특정 IP를 사용하도록 설정하거나 라이브 이벤트의 입력을 Azure IP 주소로 제한하려는 경우 Azure 데이터 센터 IP 주소 범위에서 JSON 파일을 다운로드합니다. 이 파일에 대한 자세한 내용은 페이지에서 세부 정보 섹션을 선택하세요.
- 기본적으로 사용하지 않도록 설정된 라이브 전사입니다. 라이브 대화 내용 기록에 대한 자세한 내용은 라이브 대화 내용 기록을 참조하세요.
대기 모드
라이브 이벤트를 만들 때 대기 모드로 설정할 수 있습니다. 이벤트가 대기 모드인 동안 설명 및 정적 호스트 이름 접두사를 편집하고 입력 및 미리 보기 액세스 설정을 제한할 수 있습니다. 대기 모드는 여전히 청구 가능 모드이지만 라이브 스트림을 시작할 때와는 다르게 가격이 책정됩니다.
자세한 내용은 라이브 이벤트 상태 및 청구를 참조하세요.
라이브 출력
온-프레미스 인코더에서 라이브 이벤트로 스트림을 설정한 후에는 자산, 라이브 출력 및 스트리밍 로케이터를 만들어 스트리밍 이벤트를 시작할 수 있습니다. 라이브 출력은 스트림을 보관하고 스트리밍 엔드포인트를 통해 시청자에게 제공합니다.
라이브 이벤트 출력 관련 질문
FAQ의 라이브 이벤트 질문을 참조하세요. 라이브 이벤트 할당량에 대한 자세한 내용은 할당량 및 한도를 참조하세요.
라이브 이벤트 설정에 대한 자세한 내용
이름 지정 규칙
- 최대 라이브 이벤트 이름은 32자입니다.
- 이름은
^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$
와 같은 regex 패턴을 따라야 합니다.
스트리밍 엔드포인트 명명 규칙도 참조하세요.
팁
GUID를 생성한 다음, 모든 하이픈 및 중괄호(있는 경우)를 제거하면 라이브 이벤트 이름의 고유성을 보장할 수 있습니다. 문자열이 모든 라이브 이벤트에서 고유하게 되며 길이는 32자로 유지됩니다.
라이브 이벤트 수집 URL
라이브 이벤트가 생성되면 라이브 온-프레미스 인코더에 제공할 수집 URL을 구할 수 있습니다. 라이브 인코더는 이러한 URL을 사용하여 라이브 스트림을 입력합니다. 자세한 내용은 권장 온-프레미스 라이브 인코더를 참조하세요.
참고
2020-05-01 API 릴리스부터는 "베니티" URL을 정적 호스트 이름(useStaticHostname: true)이라고 합니다.
참고
수집 URL이 정적이고 예측 가능하여 하드웨어 인코더 설정에서 사용할 수 있도록 하려면 useStaticHostname 속성을 true로 설정하고 각 생성 시 accessToken 속성을 동일한 GUID로 설정합니다.
비정적 호스트 이름
비정적 호스트 이름은 LiveEvent를 만들 때 Media Services v3의 기본 모드입니다. 라이브 이벤트는 약간 더 빠르게 할당되지만 라이브 인코딩 하드웨어 또는 소프트웨어에 필요한 수집 URL이 무작위로 지정됩니다. URL은 라이브 이벤트를 중지/시작하는 경우 변경됩니다. 비정적 호스트 이름은 최종 사용자가 라이브 이벤트를 매우 빠르게 가져와야 하는 앱을 사용하여 스트리밍하고 동적 수집 URL이 문제가 되지 않는 시나리오에서만 유용합니다.
라이브 이벤트를 만들기 전에 클라이언트 앱에서 수집 URL을 미리 생성할 필요가 없는 경우 라이브 이벤트에 대한 액세스 토큰을 Media Services에서 자동으로 생성하도록 합니다.
정적 호스트 이름
정적 호스트 이름 모드는 특정 라이브 이벤트의 생성이나 중지/시작 시 변경되지 않는 RTMP 수집 URL을 사용하여 라이브 인코딩 하드웨어 또는 소프트웨어를 미리 구성하려는 대부분의 운영자가 선호합니다. 이들 운영자는 시간이 지나도 변경되지 않는 예측 RTMP 수집 URL을 원합니다. 또한 이 모드는 BlackMagic Atem Mini Pro와 같은 하드웨어 인코딩 디바이스 또는 유사한 하드웨어 인코딩 및 프로덕션 도구의 구성 설정에 정적 RTMP 수집 URL을 푸시해야 하는 경우에도 매우 유용합니다.
참고
Azure Portal에서는 정적 호스트 이름 URL을 "정적 호스트 이름 접두사"라고 합니다.
API에서 이 모드를 지정하려면 생성 시
useStaticHostName
을true
로 설정합니다(기본값은false
).useStaticHostname
이 true로 설정되면hostnamePrefix
는 라이브 이벤트 미리 보기에 할당된 호스트 이름 중 첫 번째 부분과 수집 엔드포인트를 지정합니다. 최종 호스트 이름은 이 접두사, 미디어 서비스 계정 이름 및 Azure Media Services 데이터 센터에 대한 간단한 코드의 조합입니다.URL에서 임의의 토큰을 방지하려면 생성 시 사용자 고유의 액세스 토큰(
LiveEventInput.accessToken
)도 전달해야 합니다. 액세스 토큰은 유효한 GUID 문자열(하이픈 포함 여부는 관계없음)이어야 합니다. 모드가 설정된 후에는 업데이트할 수 없습니다.액세스 토큰은 Azure 지역 및 Media Services 계정에 대해 고유해야 합니다. 앱에서 정적 호스트 이름 수집 URL을 사용해야 하는 경우에는 항상 지역, 미디어 서비스 계정 및 라이브 이벤트의 특정 조합으로 사용할 새 GUID 인스턴스를 만드는 것이 좋습니다.
다음 API를 사용하여 정적 호스트 이름 URL을 사용하도록 설정하고 액세스 토큰을 유효한 GUID(예:
"accessToken": "1fce2e4b-fb15-4718-8adc-68c6eb4c26a7"
)로 설정합니다.언어 정적 호스트 이름 URL을 사용하도록 설정 액세스 토큰 설정 REST properties.useStaticHostname LiveEventInput.useStaticHostname CLI --use-static-hostname --access-token .NET LiveEvent.useStaticHostname LiveEventInput.AccessToken
라이브 수집 URL 명명 규칙
- 아래 임의 문자열은 128비트 16진수 숫자입니다(0-9 a-f의 32문자로 구성됨).
-
your access token: 정적 호스트 이름 설정을 사용하는 경우 설정하는 유효한 GUID 문자열입니다. 예들 들어
"1fce2e4b-fb15-4718-8adc-68c6eb4c26a7"
입니다. - stream name: 특정 연결에 대한 스트림 이름을 나타냅니다. 스트림 이름 값은 일반적으로 사용하는 라이브 인코더에 의해 추가됩니다. 연결을 설명하는 이름을 사용하도록 라이브 인코더를 구성할 수 있습니다(예: "video1_audio1", "video2_audio1", "stream").
경고
스트림 이름에 특수 문자나 공백을 사용하는 경우 라이브 수집이 실패합니다. 개발자 개념 개요의 Media Services 리소스 명명 규칙을 참조하세요.
비정적 호스트 이름 수집 URL
RTMP
rtmp://<random 128bit hex string>.channel.media.azure.net:1935/live/<auto-generated access token>/<stream name>
rtmp://<random 128bit hex string>.channel.media.azure.net:1936/live/<auto-generated access token>/<stream name>
rtmps://<random 128bit hex string>.channel.media.azure.net:2935/live/<auto-generated access token>/<stream name>
rtmps://<random 128bit hex string>.channel.media.azure.net:2936/live/<auto-generated access token>/<stream name>
부드러운 스트리밍
http://<random 128bit hex string>.channel.media.azure.net/<auto-generated access token>/ingest.isml/streams(<stream name>)
https://<random 128bit hex string>.channel.media.azure.net/<auto-generated access token>/ingest.isml/streams(<stream name>)
정적 호스트 이름 수집 URL
다음 경로에서 <live-event-name>
은 이벤트에 지정된 이름 또는 라이브 이벤트를 만들 때 사용된 사용자 지정 이름을 의미합니다.
RTMP
rtmp://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:1935/live/<your access token>/<stream name>
rtmp://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:1936/live/<your access token>/<stream name>
rtmps://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:2935/live/<your access token>/<stream name>
rtmps://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:2936/live/<your access token>/<stream name>
부드러운 스트리밍
http://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net/<your access token>/ingest.isml/streams(<stream name>)
https://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net/<your access token>/ingest.isml/streams(<stream name>)
라이브 이벤트 미리 보기 URL
라이브 이벤트가 기여 피드를 수신하기 시작하면 미리 보기 엔드포인트를 사용하여 추가 게시 전에 수신 중인 라이브 스트림을 미리 보고 유효성을 검사할 수 있습니다. 미리 보기 스트림이 양호한지 확인한 후에는 라이브 이벤트를 사용하여 하나 이상의 (미리 생성된) 스트리밍 엔드포인트를 통해 라이브 스트림을 전달 가능하도록 만들 수 있습니다. 이를 수행하려면 라이브 이벤트에서 새 라이브 출력을 만듭니다.
중요
계속하기 전에 비디오가 미리 보기 URL로 전달되고 있는지 확인합니다.
라이브 이벤트 장기 실행 작업
자세한 내용은 장기 실행 작업을 참조하세요.
도움말 및 지원 보기
다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.
- 질문과 대답
-
Stack Overflow. 를 사용하여 질문에 태그를 지정
azure-media-services
합니다. - @MSFTAzureMedia 또는 @AzureSupport 사용하여 지원을 요청합니다.
- Azure Portal 통해 지원 티켓을 엽니다.