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, gerenciar o cache de chunks e playlists, configurar regras no Rules Engine e utilizar o Edge Storage para uma entrega de vídeo otimizada.
Pré-requisitos
- Uma edge application existente na Azion, ou crie uma nova.
- Um domínio associado à edge application.
- Tiered Cache habilitado em sua conta.
- Acesso ao Edge Storage da Azion para armazenar conteúdo de vídeo.
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:
- Abra a Azion CLI no seu terminal.
- Obtenha os detalhes de uma aplicação edge existente usando o comando list:
azion list edge-application --details
- Habilite o Tiered Cache para sua application:
$ azion update edge-application --application-id 1234 --l2-caching true
- Crie uma origem:
$ azion create origin --application-id 1234 --name "origin-edge" --origin-type single_origin --addresses "example.com" --host-header "example.com"
- 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.
- Acesse o Azion Console.
- Vá para Products menu > Edge Application.
- Selecione sua aplicação.
- Abra a aba Cache Settings e clique no botão + Cache Setting para criar a nova política de cache:
- Dê um nome único.
- Na seção Cache Expiration Policies:
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
0
. - Para Edge Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
60
.
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
- Ative o interruptor do Tiered Cache.
- Na seção Advanced Cache Key, defina o comportamento da sua aplicação em relação à segmentação de cache dos objetos.
- A recomendação é selecionar Content does not vary, para Query String and/or Cookies, conforme suas necessidades.
- Clique no botão Save.
- Acesse o Real-Time Manager.
- Vá para Products menu > Edge Application.
- Selecione sua aplicação.
- Abra a aba Cache Settings e clique no botão Add Cache Settings para criar a nova política de cache:
- Dê um nome único.
- Na seção Expiration Settings:
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
0
. - Para CDN Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
60
.
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
- Ative o interruptor do Tiered Cache.
- Na seção Advanced Cache Key section, defina o comportamento da sua aplicação em relação à segmentação de cache dos objetos.
- A recomendação é selecionar Content does not vary, para Query String and/or Cookies, conforme suas necessidades.
- Clique no botão Save.
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.
Ainda na aba Cache Settings:
- Clique o botão + Cache Setting de novo para criar a nova política de cache para a playlist:
- Dê um nome único.
- Na seção Cache Expiration Policies:
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
0
. - Para Edge Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
5
.
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
- Ative o interruptor do Tiered Cache.
- Na seção Advanced Cache Key, defina o comportamento da sua aplicação em relação à segmentação de cache dos objetos.
- A recomendação é selecionar Content does not vary, para Query String and/or Cookies, conforme suas necessidades.
- Clique no botão Save.
Ainda na aba Cache Settings:
- Clique o botão Add Cache Settings de novo para criar a nova política de cache para a playlist:
- Dê um nome único.
- Na seção Cache Expiration Policies:
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
0
. - Para Edge Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
5
.
- Para Browser Cache Settings, selecione Override Cache Setting e defina um Maximum TTL de
- Ative o interruptor do Tiered Cache.
- Na seção Advanced Cache Key, defina o comportamento da sua aplicação em relação à segmentação de cache dos objetos.
- A recomendação é selecionar Content does not vary, para Query String and/or Cookies, conforme suas necessidades.
- Clique no botão Save.
Utilize o Edge Storage da Azion para entrega de vídeos HLS
Para entregar vídeos MP4 usando HLS e o Edge Storage:
- Faça o upload dos arquivos de vídeo MP4 para o Edge Storage.
- Configure o seu codificador para converter os arquivos MP4 para o formato HLS e defina o Edge Storage como origem.
- Siga as etapas de configuração da política de cache mencionadas acima para garantir uma entrega eficiente de vídeo.
Crie regras no Rules Engine
- 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" } ]
}
- 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" } ]
}
Ainda na página da aplicação, abra a aba Rules Engine:
Primeiro, crie uma regra para os chunks:
- Clique no botão + Rule button.
- Dê um nome e uma descrição (opcional) à sua regra.
- Selecione a opção Request Phase.
- Em Criteria, defina
if ${uri}
matches.\*.ts
. - En Behaviors, selecione Set Cache Policy e adicione a política para os chunks que você criou no passo anterior.
- Clique no botão Save.
Agora, crie uma regra para a playlist:
- Clique no botão + Rule.
- Dê um nome e uma descrição (opcional) à sua regra.
- Selecione a opção Request Phase.
- Em Criteria, defina
if ${uri}
matches\*.m3u8
. - Em Behaviors, selecione Set Cache Policy e adicione a política para a playlist que você criou no passo anterior.
- Clique no botão Save.
Ainda na página da aplicação, abra a aba Rules Engine:
Primeiro, crie uma regra para os chunks:
- Clique no botão New Rule button e selecione a opção Request Phase.
- Dê um nome e uma descrição (opcional) à sua regra.
- Em Criteria, defina
if ${uri}
matches.\*.ts
. - En Behaviors, selecione Set Cache Policy e adicione a política para os chunks que você criou no passo anterior.
- Clique no botão Save.
Agora, crie uma regra para a playlist:
- Clique no botão New Rule button e selecione a opção Request Phase.
- Dê um nome e uma descrição (opcional) à sua regra.
- Em Criteria, defina
if ${uri}
matches\*.m3u8
. - Em Behaviors, selecione Set Cache Policy e adicione a política para a playlist que você criou no passo anterior.
- Clique no botão Save.
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