ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Azure Media Services v3
    ETC. 2022. 4. 22. 16:58

     

    Azure Media Services ?

    방송 품질의 비디오 스트리밍을 달성하고 접근성을 향상시키고 콘텐츠를 분석하는 솔루션을 구축할 수 있는 클라우드 기반 플랫폼입니다.

    Media Services는 모바일 장치 및 브라우저에서 많은 청중에게 뛰어난 품질의 미디어 경험을 제공하는 앱을 만드는데 도움을 주고 있습니다.

     

     

    Media Services 무엇을 할 수 있을까 ?

    클라우드에서 다양한 미디어 워크플로우를 구축할 수 있습니다.

     

    • 다양한 브라우저와 장치에서 재생할 수 있도록 다양한 형식의 비디오를 제공합니다.
      다양한 클라이언트(모바일장치, TV, PC 등)에 주문형 및 라이브 스트리밍을 전달하려면 비디오 및 오디오 콘텐츠를 적절하게 인코딩하고 패키징해야 합니다.
    • 축구, 야구, 대학 및 고등학교 스포츠 등과 같은 대규모 온라인 청중에게 실시간 스포츠 이벤트를 스트리밍 합니다.
    • 시청, 시의회 회의 및 입법 기관과 같은 공개 회의 및 행사를 방송합니다.
    • 녹화된 비디오 또는 오디오 콘텐츠를 분석합니다. 예를들어, 더 높은 고객 만족도를 달성하기 위해 조직은 음성을 텍스트로 변환하고 검색 인덱스와 대시보드를 구축할 수 있습니다. 그런 다음 일반적인 불만사항, 불만사항의 출처, 기타 관련 데이터에 대한 정보를 추출할 수 있습니다.
    • 고객이 소유권이 있는 저작권 작업에 대한 접근 및 사용을 제한해야 하는 경우 구독 비디오 서비스를 만들고 DRM 보호 콘텐츠를 스트리밍 합니다.
    • 비행기, 기차 및 자동차에서 재생할 수 있는 오프라인 콘텐츠를 제공합니다. 고객은 네트워크 연결이 끊어질 것으로 예상되는 경우 재생을 위해 휴대폰이나 태블릿에 콘텐츠를 다운로드해야 할 수 있습니다.
    • Azure CDN을 사용하여 대규모 확장을 통해 순간적인 높은 부하를 더 잘 처리할 수 있습니다.

    Media Services v3 사용하여 콘텐츠를 인코딩 및 패키징하고, 주문형 비디오를 스트리밍하고, 라이브로 브로드캐스트하고, 비디오를 분석하는 방법을 제공합니다.

     

     

    Azure Media Services 용어 및 개념

    개발을 시작하기 전 문서에 설명된 기본 개념을 검토해야 합니다.

    미디어 서비스 v3 용어
    • Live Event : Live Event 는 비디오, 오디오 및 실시간 메타데이터의 라이브 스트림을 수집, 트랜스코딩(선택사항) 및 패키징 하기 위한 파이프라인을 나타냅니다.
    • Streaming Endpoint/Packaging/Origin : Streaming Endpoint 는 라이브 및 주문형 콘텐츠를 클라이언트 플레이어 애플리케이션에 직접 전달할 수 있는 동적 패키징 및 원본 서비스를 나타냅니다.
      일반적인 스트리밍 미디어 프로토콜 (HLS or DASH) 중 하나를 사용합니다.
      또한 Streaming Endpoint 는 DRM(디지털 권한 관리 시스템) 에 동적 암호화를 제공합니다.

      이 서비스는 일반적으로 Packager 또는 Origin 이라고 합니다.
      업계의 다른 일반적인 용어로는 JITP (Just-In-Time-Packager) 또는 JITE (Just-In-Time-Encryption) 가 있습니다.

     

    미디어 서비스 v3 개념
    • Assets and uploading content : 미디어 콘텐츠 관리, 암호화, 인코딩, 분석 및 스트리밍을 시작하려면 Media Services 계정을 만들고 디지털 파일을 Assets 에 업로드해야 합니다.

      연결되는 개념
      - Cloud upload and storage : Azure 에서 미디어 콘텐츠 관리, 암호화, 인코딩, 분석 및 스트리밍을 시작하려면 Media Services 계정을 만들어야 합니다.
      Media Services 계정을 만들 때 Azure Storage 계정 리소스의 이름을 제공해야 합니다.
      지정된 저장소 계정이 Media Services 계정에 연결됩니다.
      - Assets concept : 미디어를 입력하고(업로드 또는 라이브 수집을 통해) 미디어를 출력하고 미디어를 게시합니다 (스트리밍용).
      Assets 은 Azure Storage 계정의 Blob 컨테이너에 매핑되고 파일은 해당 컨테이너의 Blob 으로 저장됩니다.
      GPv2(범용 v2) 저장소를 사용하는 경우 Blob 계층을 지원합니다.
      GPv2 를 사용하면 파일을 Cool 또는 Archive 저장소로 이동할 수 있습니다.
      Archive 저장소는 이미 인코딩 되어있고 인코딩된 후 출력이 매우 큰 원본 파일에만 권장됩니다.
      Assets 과 연결하고 콘텐츠를 스트리밍하거나 분석하는데 사용하려는 Output container Blob 은 Hot 또는 Cool 스토리지 계층에 있어야 합니다

    • Encoding content : 고품질 디지털 미디어 파일을 Assets 에 업로드하면 다양한 브라우저와 장치에서 재생할 수 있는 형식으로 인코딩할 수 있습니다.
      Media Services 인코딩하려면 변환 및 작업을 생성해야 합니다.

      연결되는 개념
      - Transforms and Jobs : Transforms 는 레시피와 같습니다.
      레시피를 한번 생성하고 해당 레시피를 사용하여 Jobs 를 제출하는 데 도움이 됩니다. 

      일반적인 워크플로우
      변환을 생성 > 해당 변환에서 작업을 제출 > 변환을 나열 > 나중에 사용할 계획이 없으면 변환을 삭제

      Transforms 를 사용하여 비디오 인코딩 또는 분석을 위한 작업을 구성합니다.
      각 Transforms 비디오 또는 오디오 파일을 처리하기 위한 작업의 흐름 또는 레시피를 설명합니다.

      Jobs 는 주어진 입력 비디오 또는 오디오 콘텐츠에 Transform 을 적용하기 위해 Media Services 에 대한 실제 요청입니다.

      Jobs 는 입력 비디오의 위치 및 출력 위치 정보를 지정합니다.
      HTTPS URL, SAS URL 또는 Assets 를 사용하여 입력 비디오의 위치를 지정할 수 있습니다.

      - Encoding with Media Services : 비디오는 점진적 다운로드 또는 적응형 비트 전송률 스트리밍을 통해 장치와 앱에 전달됩니다.

      점진적 다운로드로 제공하기 위해 Azure Media Services 를 사용하여 디지털 미디어 파일(mezzanine)을 H.264 코덱으로 인코딩된 비디오와 AAC 코덱으로 인코딩된 오디오가 포함된 MP4 파일로 변환할 수 있습니다.
      MP4 파일은 스토리지 계정의 Assets 에 기록됩니다.
      Azure Storage API 또는 SDK 를 사용하여 파일을 직접 다운로드 할 수 있습니다.
      스토리지에 특정 컨테이너 이름을 사용하여 Output Assets 을 생성한 경우 해당 위치를 할 수 있고
      반대로, Output Assets 을 생성하지 않았다면 Media Services 를 사용하여 Assets 컨테이너 URL 을 리스트 할 수 있습니다.

      적응형 비트 전송률 스트리밍으로 콘텐츠를 제공하려면 mezzanine 파일을 여러 비트 전송률로 인코딩해야 합니다.
      품질의 원활한 전환을 보장하기 위해 비트 전송률이 낮아질수록 비디오의 해상도가 낮아집니다.
      그 결과 해상도 및 비트 전송률 테이블인 인코딩 래더가 생성됩니다.



      Media Services 를 사용하여 여러 비트 전송률로 mezzanine 파일을 인코딩할 수 있습니다.
      그렇게 하면 저장소 계정의 Assets 에 기록된 MP4 파일 및 관련 스트리밍 구성 파일 집합을 얻게 됩니다.
      그런 다음 Media Services 의 동적 패키징 기능을 사용하여 MPEG-DASH 와 HLS 같은 스트리밍 프로토콜을 통해 비디오를 전달할 수 있습니다.
      이를 위해서 Streaming Locator 를 생성하고 지원되는 프로토콜에 해당하는 스트리밍 URL을 구축해야 합니다.

      Media Services v3 로 인코딩하려면 변환 및 작업을 생성해야 합니다.
      Transforms 은 인코딩 설정 및 출력에 대한 레시피를 정의합니다.
      Jobs 는 레시피의 인스턴스입니다.
      Media Services 로 인코딩할 때 사전 설정을 사용하여 인코더에 입력 미디어 파일을 처리하는 방법(비디오 해상도 및 오디오 채널수)을 알려준다.

      기본 제공 사전 설정 중 하나로 빠르게 시작할 수 있고 특정 시나리오 또는 장치 요구 사항을 대상으로 하는 사용자 지정 사전 설정을 구축할 수 있습니다.
    • Analyzing content (Video Analyzer for Media) : Media Services v3 사전 설정을 사용하여 비디오 및 오디오 파일에서 insight 를 추출할 수 있습니다. 사전 설정을 사용하여 콘텐츠를 분석하려면 변환 및 작업을 만들어야 합니다.

      연결되는 개념
      - Analyzing video and audio files : 오디오 및 비디오 분석기 사전 설정을 사용하여 비디오 및 오디오 파일에서 Insight 를 추출할 수 있습니다.
      Media Services 는 4가지 내장 사전 설정을 지원합니다.
      미디어용 비디오 분석기를 사용할 때 모든 관련 법률을 준수해야 하며, 다른 사람의 권리를 침해하거나 다른 사람에게 해가 될 수 있는 방식으로 미디어용 비디오 분석기 또는 기타 Azure 서비스를 사용할 수 없습니다.

    • Packaging and delivery : 콘텐츠가 인코딩되면 동적 패키징을 활용할 수 있습니다. Media Services 에서 Streaming Endpoint 는 클라이언트 플레이어에게 미디어 콘텐츠를 전달하는 동적 패키징 서비스입니다.
      클라이언트가 재생할 수 있는 Ouput Assets 의 비디오를 만들려면 Streaming Locator 를 만든 다음 스트리밍 URL을 만들어야 합니다.

      Streaming Locator 를 생성할 때 자산 이름 외에 Streaming Policy 를 지정해야 합니다.
      Streaming Policy 를 사용하면 Streaming Locator 에 대한 스트리밍 프로토콜 및 암호화 옵션을 정의할 수 있습니다.
      동적 패키징은 콘텐츠를 라이브로 스트리밍하든 주문형으로 스트리밍하든 상관없이 사용됩니다.

      Media Services 동적 매니페스트를 사용하여 비디오의 특정 변환 또는 하위 클립만 스트리밍할 수 있습니다.
      또한, 사전 인코딩된 콘텐츠 또는 타사 인코더로 이미 인코딩된 콘텐츠가 있는 경우 AMS 원본 서비스를 사용하여 콘텐츠를 스트리밍할 수 있습니다.

      연결되는 개념
      - Dynamic packaging : 클라이언트 플레이어에 미디어 파일을 출력하기 위해서 적절한 프로토콜로 만드는 작업입니다.
      dynamic 패키징은 모든 Streaming Endpoint 에서 표준으로 제공되는 기능입니다.

      - Streaming Endpoints : Media Services 에서 스트리밍 미디어 프로토콜 중 하나를 사용하여 라이브 및 주문형 콘텐츠를 클라이언트 플레이어 앱에 전달할 수 있는 dynamic 패키징 및 원본 서비스를 나타낸다.

      - Streaming Locators : 클라이언트가 재생할 수 있도록 Output Assets 의 비디오를 만들려면 Streaming Locator 가 있어야 하고 URL 을 build 하려면 Streaming Endpoint 호스트 이름과 Streaming Locator 경로를 연결해야 합니다.


      - Streaming Policies : Streaming Locator 에 대한 스트리밍 프로토콜 및 암호화 옵션을 정의할 수 있습니다.

      - Dynamic manifests : 적응형 비트 전송률 스트리밍 콘텐츠를 장치에 전달할 때 특정 장치 기능 또는 사용 가능한 네트워크 대역폭을 대상으로 하기 위해 여러 버전의 매니페스트를 게시해야 하는 경우가 있습니다.
      Dynamic Packager 를 사용하면 특정 코덱, 해상도, 비트 전송률 및 오디오 트랙 조합을 즉석에서 필터링할 수 있는 필터를 지정할 수 있습니다.

      대상 장치에 대한 여러 사용 사례 시나리오를 적용할 수 있는 Dynamic manifests 조작 솔루션을 제공합니다.

      - Filters : 고객에게 콘텐츠를 전달할 때 클라이언트는 Assets 의 manifests 파일에 설명된 것보다 많은 유연성이 필요할 수 있습니다.
      Azure Media Services 는 미리 정의된 필터를 기반으로 Dynamic manifests 를 제공합니다.

    • Content protection : 고급 암호화 표준(AES-128) 또는 세 가지 주요 DRM 시스템인 Microsoft PlayReady, Google Widevine 및 Apple FairPlay를 사용하여 동적으로 암호화된 라이브 및 주문형 콘텐츠를 전달할 수 있습니다.

      Media Services 는 AES키와 DRM(PlayReady, Widevine 및 Apple FairPlay Streaming) 라이선스를 승인된 클라이언트에 제공하는 서비스를 제공합니다.

      스트림에 암호화 옵션을 지정하는 경우 콘텐츠 키 정책을 만들고 Streaming Locator 와 연결합니다.
      콘텐츠 키 정책을 사용하면 콘텐츠 키가 최종 클라이언트에 전달되는 방식을 구성할 수 있습니다.

      연결되는 개념
      - Content Key Policies : Media Services 를 사용하면 AES-128(Advanced Encryption Standard) 또는 세가지 주요 DRM(디지털 권한 관리) 시스템 Microsoft PlayReady, Google Widevine 및 Apple FairPlay 를 사용하여 동적으로 암호화된 라이브 및 주문형 콘텐츠를 전달할 수 있습니다.

      - Content protection : 미디어가 저장, 처리 및 전달을 통해 컴퓨터를 떠날 때부터 미디어를 보호할 수 있습니다.

      플레이어에서 스트림을 요청하면 Media Services 는 지정된 키를 사용하여 AES 일반 키 또는 DRM 암호화를 사용하여 콘텐츠를 동적으로 암호화하고 스트림을 해독하기 위해 플레이어는 Media Services 키 전달 서비스 또는 지정한 키 전달 서비스에서 키를 요청합니다.
      사용자에게 키를 가져올 수 있는 권한이 있는지 결정하기 위해 서비스는 키에 대해 지정한 콘텐츠 키 정책을 평가합니다.

    • Live Streaming : Azure 클라우드에서 고객에게 라이브 이벤트를 전달할 수 있습니다.
      Live Event 는 라이브 비디오 피드 수집 및 처리를 담당합니다.
      Live Event 를 생성하면 원격 인코더에서 라이브 신호를 보내는데 사용할 수 있는 입력 엔드포인트가 생성됩니다.

      스트림이 라이브 이벤트로 흐르면 Assets, Live Output 및 Streaming Locator 를 생성하여 스트리밍 이벤트를 시작할 수 있습니다.

      Live Output 은 스트림을 Assets 에 보관하고 Streaming Endpoint 를 통해 시청자가 사용할 수 있도록 합니다.

      Live Event 는 pass-through (온-프레미스 라이브 인코더가 다중 비트레이트 스트림을 전송함) 또는 Live Encoding (온-프레미스 라이브 인코더가 단일 비트레이트 스트림을 전송함) 으로 설정할 수 있습니다.

      연결되는 개념
      - Live streaming overview : 라이브 이벤트를 캡처하는데 사용되는 카메라 > 카메라(Laptop 과 같은 다른장치)의 신호를 수집 > 미리보기 > 패키징 > 기록 > 암호화하고 고객에게 또는 CDN 으로 방송할 수 있는 Media Services 의 구성 요소입니다.

      - Live Events and Live Outputs : Live Event 를 생성하면 원격 인코더에서 라이브 신호를 보내는데 사용할 수 있는 수집 Endpoint 가 생성되고 원격 라이브 인코더는 입력 프로토콜을 사용하여 입력 Endpoint 에 기여 피드를 보냅니다.

    • Monitoring with Event Grid :
      Event Grid 를 사용하면 앱이 거의 모든 Azure 서비스와 사용자 지정 원본 이벤트를 수신 대기하고 이에 대응할 수 있습니다.

      작업 진행 상황을 보려면 Event Grid 를 사용해야 합니다.

      연결되는 개념
      - Handling Event Grid events : 복잡한 코드나 비용이 많이들고 비효율적인 폴링 서비스가 필요하지 않습니다.
      이벤트를 통해 애플리케이션은 최신 서버리스 아키텍처를 사용하여 다양한 이벤트에 반응할 수 있습니다.

      - Schemas : 작업 상태 변경, 작업 출력 상태 변경, 작업 출력 진행, 라이브 이벤트 연결 거부 등 이벤트 스키마를 확인할 수 있습니다.

    • Monitoring with Azure Monitor :
      앱이 어떻게 수행되고 있는지 이해하는데 도움이 되는 매트릭 및 진단 로그를 모니터링 할 수 있습니다.

      연결되는 개념
      - Media Services monitoring : Azure 자원에 의존하는 애플리케이션 및 비즈니스 프로세스가 있는 경우 해당 자원의 가용성, 성능 및 운영을 모니터링 합니다.

    • Player clients :
      HLS 또는 DASH 스트리밍 프로토콜을 지원하는 모든 플레이어 프레임워크를 사용할 수 있습니다.

      많은 오픈 소스 및 상용 플레이어(Shaka, Hls.js, Video.js, Theo Player, Bitmovin Player 등) 가 있으며 HLS 및 DASH 에 대한 기본 제공 브라우저 및 OS 수준 스트리밍 지원이 있습니다.

      Azure Media Player 를 사용하여 다양한 브라우저에서 Media Services 에서 스트리밍하는 미디어 콘텐츠를 재생할 수도 있습니다. Azure Media Player 는 HTML5, MSE(Media Source Extensions) 및 EME(Encrypted Media Extensions)와 같은 업계 표준을 사용하여 적응형 스트리밍 환경을 제공합니다.

      연결되는 개념
      - Azure Media Player overview : 다양한 브라우저 및 장치에서 Microsoft Azure Media Services 의 미디어 콘텐츠를 재생하도록 구축된 웹 비디오 플레이어입니다.

      Azure Media Player 는 적절하게 구성된 경우 PlayReady 및 AES-128bit 암호화 콘텐츠의 암호 해독을 허용합니다.

     

    개념 정의 해야할 미디어 용어
    mezzanine :  메자닌 파일은 편집 프로그램에서 내보낸 전체 해상도 마스터와 시각적으로 구별할 수 없지만 크기가 훨씬 작은 압축된 비디오 파일입니다.

     

    mezzanine file

     

    Codec

    • 데이터 스트림, 신호 인코딩/디코딩 하는 소프트웨어
    • 일반적으로 영상/음성 등 미디어 정보를 압축하는 기술
    • 영상 코덱은 디지털 영상의 압축/압출해제하는 기능을 하는 장치 또는 소프트웨어

     

    GOP (Group Of Pictures)

    • 여러장의 이미지를 하나로 그룹화해서 압축하는 방식입니다.
    • 3종류의 프레임이 있습니다.
    • I-Frame (Intra Frame)
      하나의 완전한 이미지, 다른 프레임 참조안함, 어느 위치에도 올 수 있어 키 프레임 탐색 같이 임의 접근 가능합니다.
    • P-Frame (Prediction Frame)
      순방향 예측, 이전의 I 또는 P 프레임 참조하여 변화가 발생된 부분만 포함 됩니다.
    • B-Frame (Bi-Directionally Frame)
      양방향 예측, 이전의 I 프레임과 다음 P 프레임 또는 이전 P 프레임과 다음 P 프레임 참조하여 변화 발생된 부분만 포함, 압축률 가장 높고 화질은 가장 떨어집니다.
    • GOP 단위는 I 프레임 간격으로 생각할 수 있습니다.
    • 주기적으로 I-frame 을 만드는 이유는 프레임 한개가 날아가거나 문제가 생기면 계속 다음 프레임도 문제 생겨서라고 생각하면 됩니다.

     

    GOP

     

    Bitrate

    • 초당 전송하는 비트 수
    • bps, 비트 퍼 세컨드라 읽습니다.
    • 비트레이트가 높다고 화질이 좋은건 아닙니다.
    • 필요한 비트를 충족한 후에는 용량만 커집니다.
    • 전송 방식은 CBR, VBR, ABR 로 나누어집니다.
    • CBR 은 고정 비트레이트
      일정한 비트로 전송, 예측이 정확하지만 비효율적일 수 있습니다.
    • VBR 은 가변 비트레이트
      필요에 따라 변화, 예측이 되지 않고 매우 커질 수 있습니다.
    • ABR 은 평균 비트레이트
      가변 비트레이트와 마찬가지로 계속 변화합니다.

     

    Profile

    • 사용하는 곳에 따라 특정
    • 어디다가 쓸건지에 따라 미리 정해둔 약속입니다.
    • 모바일, 저전력, 저해상도에는 Baseline (66번)
    • 압축률을 높이기 위해서는 Main (77번)
    • 스트리밍 환경에 적합한 기술에는 Extended (88번)
    • Baseline 과 Main 차이점 중 하나는 양방향 예측 (B-Frame)의 사용 여부 입니다.

     

    Profile

     

    Level

    • 각 Profile 은 Level이 정해져 있습니다.
      Level 은 영상 재생시 어느정도 자원이 필요한지 정해놓은 것입니다.
    • 비트율, 프레임율, 화면해상도 등을 정의합니다.
    • 서비스 할 때 가장 낮은 Level 이 무엇인지 확인해야 합니다.
    • 자원이 한정되어 있는 환경에서 원활한 재생을 위해 지원하는 자원의 값을 알고 인코딩 해야합니다.
    • Level 을 결정하는 요소는 보통 DPB (Decoded Picture Buffer) 에 의해 결정됩니다.
    • DPB 는 인코딩/디코딩시 참조 프레임을 저장해두는 Buffer 입니다.
    • H.264/AVC 표준에서는 DPB 의 크기를 매크로 블록의 개수로 나타냅니다. (아래표_참조)
    • 해상도 width height 값으로 매크로 블록(16x16) x Level DPB 를 나누면 참조 프레임 수가 나옵니다.
    • 이때 해상도 width x height 계산할 때, 16배수에 근접한 수를 곱해야 합니다. 그래서 1080 -> 1088 로 계산

     

    Level

     

     


     

     

    Media Services v3 API 개발하기

    개발자는 REST API 와 상호작용하여 사용자 지정 미디어 작업흐름을 쉽게 생성, 관리 및 유지 할 수 있는 클라이언트 라이브러리를 사용할 수 있습니다.

    Media Services v3 개발할 때 entities 및 API 에 적용되는 규칙을 확인 해야합니다.

     

    Azure Media Services API 에 접근

    Media Services 리소스 및 Media Services API 에 접근할 수 있는 권한을 부여받으려면 먼저 인증을 받아야 합니다.

    Media Services 는 Azure AD (Azure Active Diretory) 기반 인증을 지원합니다.

     

    • Service principal authentication (서비스 주체 인증) : 서비스를 인증하는데 사용됩니다. 이 인증방법을 사용하는 애플리케이션은 데몬 서비스, 중간 계층 서비스 또는 예약된 작업을 실행하는 앱입니다.
      예를들어, 웹 앱의 경우 항상 Service principal 를 사용하여 Media Services 에 연결하는 중간 계층이 있어야 합니다.
    • User authentication (사용자 인증) : 앱을 사용하여 Media Services 자원과 상호작용하는 사람을 인증하는데 사용됩니다.
      대화형 앱은 먼저 사용자의 자격증명을 묻는 메시지를 표시해야 합니다.
      예를들어, 인증된 사용자가 인코딩 작업 또는 라이브 스트리밍을 모니터링하는데 사용하는 관리 콘솔 앱

     

    Media Services API 를 사용하려면 REST API 를 요청하는 사용자 또는 앱이 Media Services 계정 자원에 접근할 수 있고 Contributor 또는 Owner 역할을 사용해야 합니다.
    API 는 Reader 역할로도 접근할 수 있지만 Get 또는 List 작업만 사용할 수 있습니다.

     

    서비스 주체를 만드는 대신 Azure 자원에 대한 관리 ID를 사용하여 Azure Resource Manager 를 통해 Media Services API 에 접근하는 것이 좋습니다.

     

    Azure AD service principal

    Azure AD 앱과 service principal 은 동일한 tenant 에 있어야 합니다.

    앱을 만든 후 앱 Contributor 또는 Owner 역할에 Media Services 계정에 대한 접근 권한을 부여합니다.

     

    다음 그림은 시간순으로 요청 흐름을 보여줍니다

    Azure AD 흐름

    1. 중간 계층 앱은 다음 매개변수가 있는 Azure AD 접근 토큰을 요청합니다.

    • Azure AD tenant endpoint
    • Media Services 자원 URI
    • REST Media Services 에 대한 자원 URI
    • Azure AD 앱 값 : 클라이언트 ID 및 클라이언트 암호

     

    2. Azure AD 접근 토큰은 중간 계층으로 전송됩니다.

    3. 중간 계층은 Azure AD 토큰을 사용하여 Azure Media REST API 에 요청을 보냅니다.

    4. 중간 계층은 Media Services 에서 데이터를 가져옵니다.

     

    Azure Media Services 를 사용할 준비가 되었다면 resource naming 규칙, Assets 내부 file 과 blob naming 규칙, 장기 실행 작업 방법, SDK 사용방법 등을 확인하면서 구현할 수 있습니다.

     

     


     

    REST (Representational State Transfer) API 는 서비스 리소스에 대한 생성, 검색, 업데이트 또는 삭제 접근을 제공하는 HTTP 작업을 지원하는 서비스 Endpoint 입니다.

     

    REST API 요청/응답 구성요소

     

    1. 요청 URI 구성 : {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}

    요청 URI 가 요청 메시지 헤더에 포함되어 있지만 대부분의 언어 또는 프레임워크에서는 요청 메시지와 별도로 전달해야 하기 때문에 여기에서 별도로 호출합니다.

    • URI scheme : 예를들어, http 또는 https 와 같이 요청을 전송하는데 사용되는 프로토콜을 나타냅니다.
    • URI host : REST 서비스 endpoint 가 호스팅되는 서버의 도메인 이름 또는 IP 주소 (ex. example.microsoft.com)
    • Resource path : 자원 또는 자원 컬렉션을 지정합니다. 자원 선택을 결정할 때 서비스에서 사용하는 여러 세그먼트가 포함될 수 있습니다. (ex. beta/applications/00003f25-7e1f-4278-9488-efc7bac53c4a/owners)
    • Query string (optional) : API 버전 또는 자원 선택 기준과 같은 추가 단순 매개변수를 제공합니다.

     

    2. HTTP request message header fields

    • 요청하는 작업 유형을 서비스에 알려주는 필수 HTTP method
      Azure REST API 는 GET, HEAD, PUT, POST 및 PATCH method 를 지원합니다.
    • 지정된 URI 및 HTTP method 에서 요구하는 선택적 추가 헤더 필드
      예를들어, 요청에 대한 클라이언트 권한부여 정보가 포함된 전달자 토큰을 제공하는 권한부여 헤더입니다.

     

    3. URI 및 HTTP 작업을 지원하기 위한 선택적 HTTP 요청 메시지 본문 필드입니다.

    • POST 작업에는 복합 매개변수로 전달되는 MIME 인코딩된 개체가 포함됩니다.
    • POST 또는 PUT 작업의 경우 본문에 대한 MIME 인코딩 유형도 Content-type 요청 헤더에 지정해야 합니다.
    • 특정 서비스에서는 applicatioin/json 과 같은 특정 MIME 유형을 사용해야합니다.

     

    4. HTTP response message header fields

    • 2xx 성공 코드에서 4xx 또는 5xx 오류 코드로 표현되는 HTTP 상태 코드입니다.
      또는 API 설명서에 표시된대로 서비스 정의 상태 코드가 반활될 수 있습니다.
    • Content-type 은 응답 헤더와 같은 요청의 응답을 지원하는데 필요한 선택적 추가 헤더 필드입니다.

     

    5. Optional HTTP response message body fields

    • MIME 인코딩된 응답 object 는 데이터를 반환하는 GET 메서드의 응답과 같이 HTTP 응답 본문에 반환됩니다.
      응답 헤더 Content-type 에 표시된 대로 일반적으로 object 는 JSON 또는 XML 과 같은 구조화된 형식으로 반환됩니다.
      예를들어 Azure AD 에서 접근 토큰을 요청하면 access_token 데이터 컬렉션의 여러 name/value 쌍 object 중 하나인 요소로 응답 본문에 반환됩니다.
      위 예에서는 응답 헤더의 Content-Type : application/json 도 포함됩니다.

     

     

    Azure on-demand media encoders

    Media Services 를 시작할 때 코덱과 파일 형식의 차이점을 이해하는 것이 중요합니다.

     

    코덱은 압축/압축해제 알고리즘을 구현하는 소프트웨어이고

    파일 형식은 압축된 비디오를 보관하는 컨테이너입니다.

     

     

    MES (Media Encoder Standard)

    인코딩 작업을 생성할 때 사용할 수 있는 미리 정의된 시스템 인코딩 사전 설정 세트 정의입니다.

     

    특정 인코딩 요구사항 및 요구 사항을 충족하도록 사전 설정의 모든 값을 사용자 지정하는 것을 지원합니다.

    인코딩 사전 설정을 사용자 지정해야 하는 경우 템플릿으로 제공되는 시스템 사전 설정 중 하나로 시작해야 합니다.

     

    Azure MES 에서 제공하는 사전 설정

    • H264 Multiple Bitrate 1080p Audio 5.1
      > 6000kbps 에서 400kbps 범위의 GOP-aligned MP4 파일세트 8개와 AAC 5.1 오디오를 생성합니다.

    • H264 Multiple Bitrate 1080p
      > 6000kbps 에서 400kbps 범위의 GOP-aligned MP4 파일세트 8개와 stereo AAC 오디오를 생성합니다.

    • H264 Multiple Bitrate 16x9 for iOS
      > 8500kbps 에서 200kbps 범위의 GOP-aligned MP4 파일세트 8개와 stereo AAC 오디오를 생성합니다.

    • H264 Multiple Bitrate 16x9 SD Audio 5.1
      > 1900kbps 에서 400 kbps 범위의 GOP-aligned MP4 파일세트 5개와 AAC 5.1 오디오를 생성합니다.
    • H264 Multiple Bitrate 16x9 SD
      > 1900kbps 에서 400kbps 범위의 GOP-aligned MP4 파일세트 5개와 stereo AAC 오디오를 생성합니다.

    • H264 Multiple Bitrate 4K Audio 5.1
      > 20000kbps 에서 1000kbps 범위의 GOP-aligned MP4 파일세트 12개와 AAC 5.1 오디오를 생성합니다.

    • H264 Multiple Bitrate 4K
      > 20000kbps 에서 1000kbps 범위의 GOP-aligned MP4 파일세트 12개와 stereo AAC 오디오를 생성합니다.

    • H264 Multiple Bitrate 4x3 for iOS
      > 8500kbps 에서 200kbps 범위의 GOP-aligned MP4 파일세트 8개와 stereo AAC 오디오를 생성합니다.

    • H264 Multiple Bitrate 4x3 SD Audio 5.1
      > 1600kbps 에서 400 kbps 범위의 GOP-aligned MP4 파일세트 5개와 AAC 5.1 오디오를 생성합니다.

    • H264 Multiple Bitrate 4x3 SD
      > 1600kbps 에서 400kbps 범위의 GOP-aligned MP4 파일세트 5개와 stereo AAC 오디오를 생성합니다.

    • H264 Multiple Bitrate 720p Audio 5.1
      > 3400kbps 에서 400kbps 범위의 GOP-aligned MP4 파일세트 6개와 AAC 5.1 오디오를 생성합니다

    • H264 Multiple Bitrate 720p
      > 3400kbps 에서 400kbps 범위의 GOP-aligned MP4 파일세트 6개와 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate 1080p Audio 5.1
      > 비트 전송률이 6750kbps 인 단일 MP4 파일과 AAC 5.1 오디오를 생성합니다.

    • H264 Single Bitrate 1080p
      > 비트 전송률이 6750kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate 4K Audio 5.1
      > 비트 전송률이 18000kbps 인 단일 MP4 파일과 AAC 5.1 오디오를 생성합니다.

    • H264 Single Bitrate 4K
      > 비트 전송률이 18000kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate 4x3 SD Audio 5.1
      > 비트 전송률이 1800kbps 인 단일 MP4 파일과 AAC 5.1 오디오를 생성합니다.

    • H264 Single Bitrate 4x3 SD
      > 비트 전송률이 1800kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate 16x9 SD Audio 5.1
      > 비트 전송률이 2200kbps 인 단일 MP4 파일과 AAC 5.1 오디오를 생성합니다.

    • H264 Single Bitrate 16x9 SD
      > 비트 전송률이 2200kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate 720p Audio 5.1
      > 비트 전송률이 4500kbps 인 단일 MP4 파일과 AAC 5.1 오디오를 생성합니다.

    • H264 Single Bitrate 720p for Android
      > 비트 전송률이 2000kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate 720p
      > 비트 전송률이 4500kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate High Quality SD for Android
      > 비트 전송률이 500kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    • H264 Single Bitrate Low Quality SD for Android
      > 비트 전송률이 56kbps 인 단일 MP4 파일과 stereo AAC 오디오를 생성합니다.

    Azure MES 를 사용한 고급 인코딩 종류

    • single PNG file
      > 입력 비디오의 처음 몇 초에서 단일 PNG 파일을 생성할 수 있습니다.

    • series of JPEG images
      > 입력 타임라인의 5%, 15%, ..., 95% 타임스탬프에서 10개의 이미지 세트를 생성할 수 있습니다.

    • one image at a specific timestamp
      > 입력 비디오의 지속 시간이 30초 이상일 때, 특정 타임스탬프에 단일 JPEG 이미지를 생성할 수 있습니다.

    • thumbnails at different resolutions
      > 입력 타임라인의 5%, 15%, ..., 95% 위치에서 두개의(100%, 50%) 다른 해상도 이미지를 생성할 수 있습니다.

    • crop video
      > 입력 비디오의 프레임 내에서 직사각형 창을 선택하고 해당 창 내의 픽셀만 인코딩할 수 있습니다.

    crop video process

     

    • relative sizes
      > 썸네일을 생성할 때 출력 너비와 높이를 1% ~ 100% 범위에서 백분율로 지정할 수 있습니다.

    • Generate thumbnails
      > 사용자 정의 사전설정을 통해 썸네일을 생성할 수 있습니다.

    • Create on overlay
      > 비디오에 이미지를 덮어 씌울 수 있습니다.

    • Insert a silent audio track when input has no audio
      > 입력에 오디오가 없을 때 무음 오디오 트랙을 삽입 할 수 있습니다.

    • Disable auto de-interlacing
      > 스캔된 영상을 프로그레시브 스캔으로 보기 좋게 바꾸어 주는 작업을 비활성화 할 수 있습니다.

    • Audio-only presets
      > AAC 오디오 및 AAC 양질 오디오 두 가지 오디오 전용 설정할 수 있습니다.

    • Concatenate two or more video files
      > 두개 이상의 비디오 파일을 연결할 수 있습니다.

    • Insert a video track when input has no video
      > 오디오만 포함하고 비디오는 포함하지 않는 입력일 경우 출력에 흑백 비디오 트랙을 추가할 수 있습니다.

    • Inserting video at only the lowest bitrate
      > 입력에 비디오가 없을 때 인코더가 가장 낮은 비트레이트 흑백 비디오 트랙을 삽입할 수 있습니다.

    • Inserting video at all output bitrates
      > 입력에 비디오가 없을 때 인코더가 모든 출력 비트레이트에서 흑백 비디오 트랙을 삽입할 수 있습니다.

    • Rotate a video
      > 0/90/180/270 각도로 영상 회전을 지원합니다.

     


    https://docs.microsoft.com/ko-kr/azure/media-services/latest/media-services-overview

     

    Azure Media Services v3 overview

    Azure Media Services is a cloud-based platform that enables you to build solutions that achieve broadcast-quality video streaming, enhance accessibility and distribution, analyze content, and much more. Whether you're an app developer, a call center, a gov

    docs.microsoft.com

    https://docs.microsoft.com/ko-kr/azure/media-services/latest/media-services-apis-overview

     

    Develop with Azure Media Services v3 APIs

    Learn about rules that apply to entities and APIs when developing with Media Services v3.

    docs.microsoft.com

    https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-advanced-encoding-with-mes

     

    Perform advanced encoding by customizing MES presets

    This topic shows how to perform advanced encoding by customizing Media Encoder Standard task presets.

    docs.microsoft.com

     

    'ETC.' 카테고리의 다른 글

    내가 공부한 도커 핵심요약  (0) 2022.06.17
    웹 비디오/오디오 코덱 가이드  (0) 2022.05.23
    영상 스트리밍 고찰  (0) 2022.04.20
    오픈소스 프로그래밍 Docker  (0) 2022.03.07
    SourceTree 사용법  (0) 2021.11.26
Designed by Tistory.