Azure Media Services v3를 통한 라이브 스트리밍
경고
Azure Media Services는 2024년 6월 30일에 사용 중지됩니다. 자세한 내용은 AMS 사용 중지 가이드를 참조하세요.
Azure Media Services를 사용하면 Azure 클라우드에서 고객에게 라이브 이벤트를 전달할 수 있습니다. Media Services를 사용하여 라이브 이벤트를 스트리밍하려면 카메라(또는 노트북과 같은 다른 장치)의 신호를 Media Services로 전송되는 기여 피드로 변환하는 라이브 비디오 인코더를 설정해야 합니다. 기여 피드에는 SCTE-35 마커와 같은 광고 관련 신호가 포함될 수 있습니다. 권장 라이브 스트리밍 인코더 목록은 라이브 스트리밍 인코더를 참조하세요.
이전에 온-프레미스 인코더를 사용하지 않은 경우 OBS를 사용하여 Azure Media Services 라이브 스트림 만들기 빠른 시작을 시도합니다.
동적 패키징 및 배달
Media Services를 사용하면 동적 패키징을 활용하여 기여 피드에서 MPEG DASH, HLS 및 부드러운 스트리밍 형식 으로 라이브 스트림을 미리 보기 및 브로드캐스트할 수 있습니다. 뷰어는 HLS, DASH 또는 부드러운 스트리밍이 호환되는 플레이어를 사용해 라이브 스트림을 재생할 수 있습니다. 테스트된 플레이어 목록을 보고 Media Services 타사 플레이어 샘플을 사용해 보세요.
라이브 이벤트 유형
라이브 이벤트는 라이브 비디오 피드를 수집하고 처리합니다. 라이브 이벤트는 다음 중 하나로 설정할 수 있습니다.
- 온-프레미스 라이브 인코더가 여러 비트 전송률 스트림을 보내는 경우 통과 또는
- 온-프레미스 라이브 인코더가 단일 비트 전송률 스트림을 보낼 때 라이브 인코딩. 라이브 출력에 대한 자세한 내용은 라이브 이벤트 및 라이브 출력을 참조하세요.
통과
통과 라이브 이벤트(기본 또는 표준)를 사용하는 경우 온-프레미스 라이브 인코더에 의존하여 다중 비트 전송률이 있는 비디오 스트림을 생성하고 이 스트림을 기여 피드로 하여 라이브 이벤트에 전송(RTMP 또는 조각난 MP4 입력 프로토콜 사용)할 수 있습니다. 그런 다음, 라이브 이벤트는 추가 처리 없이 들어오는 비디오 스트림을 동적 패키지러(스트리밍 엔드포인트)에 전달합니다. 통과 라이브 이벤트는 장기 실행 라이브 이벤트 또는 24x365 선형 라이브 스트리밍에 최적화되어 있습니다.
라이브 인코딩
라이브 인코딩을 사용하려면 단일 비트 전송률 비디오(최대 32Mbps 집계)를 라이브 이벤트(RTMP 또는 조각화된 MP4 입력 프로토콜 사용)로 보내도록 온-프레미스 라이브 인코더를 구성합니다. 라이브 이벤트는 들어오는 단일 비트 전송률 스트림을 다양한 해상도로 여러 비트 전송률 비디오 스트림으로 트랜스코딩합니다. 이렇게 하면 MPEG-DASH, HLS(Apple HTTP 라이브 스트리밍) 및 Microsoft 부드러운 스트리밍과 같은 업계 표준 프로토콜을 사용하는 재생 디바이스의 배달이 향상됩니다.
라이브 이벤트 옵션
동적 암호화
동적 암호화를 사용하면 AES-128 또는 세 가지 주요 DRM(디지털 권한 관리) 시스템(Microsoft PlayReady, Google Widevine, Apple FairPlay) 중 하나에서 라이브 콘텐츠 또는 주문형 콘텐츠를 동적으로 암호화할 수 있습니다. 또한 Media Services는 인증된 클라이언트에게 AES 키 및DRM(PlayReady, Widevine 및 FairPlay) 라이선스를 배달하는 서비스를 제공합니다. 자세한 정보는 동적 암호화를 참조하세요.
Widevine은 Google Inc.에서 제공하는 서비스로, Google Inc.의 서비스 약관 및 개인정보처리방침을 따릅니다.
동적 필터링
동적 필터링을 사용하여 플레이어에 전송되는 트랙 번호, 형식, 비트 전송률 및 프레젠테이션 창을 제어할 수 있습니다. 자세한 내용은 필터 및 동적 매니페스트를 참조하세요.
라이브 전사
라이브 전사는 통과 또는 라이브 인코딩인 라이브 이벤트와 함께 사용할 수 있는 기능입니다. 자세한 내용은 라이브 전사를 참조하세요. 이 기능을 사용하면 서비스가 Cognitive Services의 Speech-To-Text 기능을 사용하여 들어오는 오디오의 음성을 텍스트로 전사합니다. 그러면 이 텍스트를 MPEG-DASH 및 HLS 프로토콜의 비디오 및 오디오와 함께 배달할 수 있게 됩니다.
중요
라이브 이벤트에는 2초의 GOP 크기를 사용해야 합니다. 올바른 대화 내용 기록 데이터를 얻으려면 라이브 대화 내용 기록이 있는 통과 라이브 이벤트에 4초 이하의 GOP 크기를 사용해야 합니다. 더 높은 GOP 크기를 사용하도록 선택하는 경우 대화 내용 기록 데이터에 결함이 있을 수 있습니다(예: 누락된 콘텐츠).
선택 자막, 자막 및 시간 제한 메타데이터 전달에 대한 보안 고려 사항
Azure Media Services의 동적 암호화 및 DRM 기능에는 라이브 전사, 캡션, 자막 또는 시간 제한 메타데이터를 포함한 콘텐츠 전송을 보호하려고 할 때 고려해야 할 제한 사항이 있습니다. PlayReady, FairPlay 및 Widevine을 포함한 DRM 하위 시스템은 텍스트 트랙의 암호화 및 라이선스를 지원하지 않습니다. 텍스트 트랙에 대한 DRM 암호화가 없으면 라이브 전사, 수동 삽입 캡션, 업로드된 자막 또는 시간 제한 메타데이터 신호(별도 트랙으로 삽입될 수 있음)의 콘텐츠를 보호하는 기능이 제한됩니다.
캡션, 자막 또는 시간 제한 메타데이터 트랙을 보호하려면 다음 지침을 따릅니다.
- AES-128 키 암호화 지우기를 사용합니다. AES-128 키 암호화 지우기를 사용하도록 설정하면 오디오 및 비디오 세그먼트와 동일한 암호화 패턴을 따르는 전체 "봉투" 암호화 기술을 사용하여 텍스트 트랙을 암호화하도록 구성할 수 있습니다. 그런 다음, 인증된 JWT 토큰을 사용하여 Media Services Key Delivery 서비스에서 암호 해독 키를 요청한 후 클라이언트 애플리케이션에서 이러한 세그먼트를 암호 해독할 수 있습니다. 이 메서드는 Azure Media Player에서 지원되지만 모든 디바이스에서 지원되지 않을 수 있으며 모든 플랫폼에서 성공하도록 일부 클라이언트 쪽 개발 작업이 필요할 수 있습니다.
- CDN 토큰 인증을 사용하여 CDN 포털에서 지역, IP 또는 기타 구성 가능한 설정으로 제한된 짧은 형식의 토큰화된 URL로 전달되는 텍스트(자막, 캡션, 메타데이터) 트랙을 보호합니다. Verizon Premium CDN 또는 Media Services 스트리밍 엔드포인트에 연결하도록 구성된 다른 타사 CDN을 사용하여 CDN 보안 기능을 사용하도록 설정합니다.
경고
위의 지침 중 하나를 따르지 않을 경우 자막, 캡션 또는 시간 제한 메타데이터 텍스트는 원하는 클라이언트 전달 경로 외부에서 가로채거나 공유할 수 있는 암호화되지 않은 콘텐츠로 액세스할 수 있습니다. 이로 인해 정보가 유출될 수 있습니다. 안전한 전송 시나리오에서 캡션 또는 자막의 콘텐츠가 유출되는 것이 우려되는 경우 콘텐츠 전송 보안을 위한 위의 지침에 대한 자세한 내용은 Media Services 지원 팀에 문의하세요.
라이브 스트리밍 워크플로
Media Services v3에서 라이브 스트리밍 워크플로를 이해하려면 먼저 다음 개념을 검토하고 이해해야 합니다.
일반적인 단계
Media Services 계정에서 스트리밍 엔드포인트(원본)가 실행되고 있는지 확인합니다.
라이브 이벤트를 만듭니다.
이벤트를 만들 때 자동 시작을 지정할 수 있습니다. 또는 스트리밍을 시작할 준비가 되었을 때 이벤트를 시작해도 됩니다.
autostart를 true로 설정하면 Live Event가 생성 직후 시작됩니다. 라이브 이벤트가 실행되는 즉시 청구가 시작됩니다. 추가 청구를 중지하려면 라이브 이벤트 리소스에 대해 명시적으로 Stop을 호출해야 합니다. 자세한 내용은 라이브 이벤트 상태 및 청구를 참조하세요.수집 URL을 가져오고, URL을 사용하여 기여 피드를 보내도록 온-프레미스 인코더를 구성합니다.
추천되는 라이브 인코더를 참조하세요.미리 보기 URL을 가져와서 인코더의 입력이 실제로 수신되고 있는지 확인하는 데 사용합니다.
새 자산 개체를 만듭니다.
각 라이브 출력은 비디오를 Azure Blob 스토리지 컨테이너로 기록하는 데 사용하는 자산과 연결되어 있습니다.
라이브 출력을 만들고 사용자가 만든 자산 이름을 사용하여 스트림을 자산에 보관할 수 있도록 합니다.
라이브 출력은 생성과 동시에 시작되고 삭제되면 중지됩니다. 라이브 출력을 삭제해도 기본 자산과 자산의 콘텐츠는 삭제되지 않습니다.
기본 제공된 스트리밍 정책 형식으로 스트리밍 로케이터를 만듭니다.
라이브 출력을 게시하려면 연결된 자산을 위한 스트리밍 로케이터를 만들어야 합니다.
스트리밍 로케이터의 경로를 나열하여 사용할 URL(결정적)을 다시 가져옵니다.
스트림을 내보낼 스트리밍 엔드포인트(원본)의 호스트 이름을 가져옵니다.
8단계의 URL을 9단계의 호스트 이름과 결합하여 전체 URL을 구합니다.
라이브 이벤트를 더 표시하지 않으려면 이벤트 스트리밍을 중지하고 스트리밍 로케이터를 삭제해야 합니다.
스트리밍 이벤트를 완료하고 이전에 프로비전된 리소스를 정리하려면 다음 절차를 수행합니다.
- 인코더에서 스트림의 푸시를 중지합니다.
- 라이브 이벤트를 중지합니다. 라이브 이벤트가 중지되면 채널 요금이 발생하지 않습니다. 채널을 다시 시작해야 하는 경우 채널의 수집 URL은 동일하므로 인코더를 다시 구성하지 않아도 됩니다.
- 라이브 이벤트의 보관 파일을 주문형 스트림으로 계속 제공하지 않으려면 스트리밍 엔드포인트를 중지할 수 있습니다. 라이브 이벤트가 중지된 상태이면 채널 요금이 발생하지 않습니다. 그러나 스트리밍 엔드포인트가 계속 실행 중인 경우 요금이 발생합니다.
라이브 출력이 보관되는 자산은 라이브 출력이 삭제되면 자동으로 주문형 자산이 됩니다. 라이브 이벤트를 중지하려면 먼저 모든 라이브 출력을 삭제해야 합니다. 선택적 플래그 removeOutputsOnStop을 사용하여 중지 시 자동으로 라이브 출력을 제거할 수 있습니다.
팁
라이브 스트리밍 자습서를 참조하세요. 이 문서에서는 위에 설명한 단계를 구현하는 코드를 검사합니다.
다른 중요 문서
라이브 스트리밍 FAQ
FAQ에서 라이브 스트리밍 질문을 참조하세요.
도움말 및 지원 보기
다음 방법 중 하나로 Media Services에 문의하거나 업데이트를 따를 수 있습니다.
- 질문과 대답
-
Stack Overflow. 를 사용하여 질문에 태그를 지정합니다
azure-media-services
. - @MSFTAzureMedia 또는 @AzureSupport 사용하여 지원을 요청합니다.
- Azure Portal 통해 지원 티켓을 엽니다.