Como implementar cache HLS para entrega de streaming ao vivo

A Plataforma de Edge da Azion permite que você entregue conteúdo de streaming ao vivo no formato HLS, capacitando-lhe a autoprovisionar e configurar suas política de cache facilmente. Este guia abrange o passo a passo para implementar o cache HLS, gerenciando o cache de chunks e playlists e configurando regras no Rules Engine.


Pré-requisitos


Implemente políticas de cache HLS

Para implementar políticas de cache HLS na edge application, siga os passos explicados embaixo.

Neste exemplo, uma edge application e um domínio vinculado a ela já foram previamente criados.

Crie uma política de cache para os chunks

Primeiro, você deve criar uma política de cache para os chunks:

  1. Abra a Azion CLI no seu terminal.
  2. Obtenha os detalhes de uma aplicação edge existente usando o comando list: azion list edge-application --details
  3. Habilite o Tiered Cache para sua application: $ azion update edge-application --application-id 1234 --l2-caching true
  4. Crie uma origem: $ azion create origin --application-id 1234 --name "origin-edge" --origin-type single_origin --addresses "example.com" --host-header "example.com"
  5. Configure a política de cache para os chunk: $ azion create cache-setting --application-id 1234 --name "chunks-policy" --browser-cache-settings "override" --browser-cache-settings-maximum-ttl 0 --cdn-cache-settings "override" --cnd-cache-settings-maximum-ttl 60
  • Defina os comportamentos de Advanced Cache Key de acordo com suas necessidades. Verifique as flags opcionais para o comando create.
  • A recomendação é selecionar Content does not vary, para Query String and/or Cookies, conforme suas necessidades.

Crie uma política de cache para a playlist

Agora configure a política de cache para a playlist: $ azion create cache-setting --application-id 1234 --name "playlist-policy" --browser-cache-settings "override" --browser-cache-settings-maximum-ttl 0 --cdn-cache-settings "override" --cnd-cache-settings-maximum-ttl 5

  • Defina os comportamentos de Advanced Cache Key de acordo com suas necessidades. Verifique as flags opcionais para o comando create.
  • A recomendação é selecionar Content does not vary, para Query String and/or Cookies, conforme suas necessidades.

Crie regras no Rules Engine

  1. Primeiro, crie uma regra para os chunks: $ azion create rules-engine --application-id 1234 --phase "request" --file ./chunks-rule.json

No arquivo chunks-rule.json, inclua:

{ "name": "chunks-rule", "description": "This is a description for your chunks rule", "criteria": [ [ { "conditional": "if", "variable": "${uri}", "operator": "matches", "input_value": ".\*.ts" } ] ], "behaviors": [ { "name": "set_cache_policy", "target": "chunks-policy" } ]
}
  1. Logo, crie uma regra para a playlist: $ azion create rules-engine --application-id 1234 --phase "request" --file ./playlist-rule.json

No arquivo playlist-rule.json, inclua:

{ "name": "playlist-cache-rule", "description": "This is a description for your playlist rule", "criteria": [ [ { "conditional": "if", "variable": "${uri}", "operator": "matches", "input_value": "\*.m3u8" } ] ], "behaviors": [ { "name": "set_cache_policy", "target": "playlist-policy" } ]
}

Pronto! Agora você pode configurar sua fonte e codificador apontando para a Azion e transmitir seu conteúdo, implementando o cache HLS.

Consulte a arquitetura de Live Streaming Delivery

Contribuidores