top of page
Metadados

Ao Netflix têm acesso mais de 30 milhões de assinantes em mais de 40 países. Estes utilizadores geram colectivamente biliões de pedidos por dia, sendo que a maioria dos quais requer metadados sobre os vídeos disponibilizados. Cada pedido recebido pode, potencialmente, precisar de milhares de atributos de metadados de vídeo. Assim, a fim de minimizar a latência no qual estes dados podem ser acedidos, estes são armazenados directamente na RAM dos servidores responsáveis por providenciar conteúdos aos utilizadores.
Existem duas aplicações que reúnem os metadados e que os entregam aos servidores, o que permite todas as experiências com o utilizador existentes desde reproduzir um filme, pedir uma legenda de uma certa língua e escolher o idioma do conteúdo visualizado. Estas aplicações são: 
             -VMS ou Video Metadata Platform, ou seja, a plataforma de metadados de vídeo 
             - NetflixGraph que contém dados representados como um grafo direccionado. 
A primeira aplicação é responsável por juntar todos os dados acerca de vídeos, como sinopses, títulos bem como dados acerca do próprio stream. A segunda aplicação contém dados sobre relações entre entidades como personagens, tags que são feitas a cada conteúdo. Estes dados permitem um serviço altamente personalizado para cada utilizador desfrutar.

Exemplo de utilização de metadados

Protocolo MSL

A Netflix oferece aos seus milhões de utilizadores áudio e vídeo que pode ser experienciado em vários dispositivos, cada um com o seu único hardware, software, diferentes propriedades de segurança e capacidades. Por este motivo, a comunicação entre os servidores e esses dispositivos deve ser segura para proteger a qualidade do serviço, a informação que é armazenada nos servidores e todos os utilizadores. Assim, foi criado um protocolo que garante uma troca de mensagens segura, chamado Message Security Layer, que trata da encriptação dos conteúdos na troca de mensagens entre os servidores e os dispositivos. Este protocolo aumenta em muito a performance do sistema, uma vez que, para minimizar os tempos de round trip, o MSL tenta realizar a autenticação, negociar uma chave e fazer todas as operações de renovações de sessão e chave, enquanto está a transmitir informação relativa aos conteúdos áudio e vídeo. Esta medida elimina bastante os tempos de latência que temos por exemplo numa sessão SSL, por termos que estar constantemente a negociar chaves de sessão. 
Uma típica mensagem MSL consiste num cabeçalho e um ou mais segmentos que contêm pedaços do conteúdo a visualizar. Cada segmento está individualmente protegido, o que permite ao dispositivo do utilizador processar cada segmento enquanto é transferido. Numa conversação MSL, só a primeira mensagem vai providenciar autenticação, integridade e encriptação caso o dispositivo do utilizador suporte esta opção. As mensagens seguintes a esta irão usar as chaves de sessão negociadas na primeira mensagem (semelhante aos cookies utilizados na Internet). Caso exista algum erro durante a transmissão, o dispositivo do utilizador enviará uma mensagem de erro MSL para o servidor que contém o tipo de erro no cabeçalho da mensagem. O servidor, após receber esta mensagem de erro, retransmite a mesma. 
Por fim, o protocolo MSL permite que a troca de mensagens dentro do serviço Netflix seja feita de forma segura, tornando o sistema eficiente, pouco vulnerável em aspectos de segurança e faz com que muitos dispositivos com características diferentes possam "falar" a mesma linguagem.

 Inicialmente, a Netflix possuía todos os conteúdos nos seus próprios Data centers, contudo optou por transferi-los gradualmente para uma cloud, terminando este processo em 2016.
Os servidores que contactam com os clientes estão todos alojados na nuvem(AWS) tal como todos os conteúdos que são disponibilizados no serviço. 
 Após um utilizador estar registado ou ter feito o início de sessão na sua conta, em qualquer das plataformas disponíveis(smarthphone,Tablet ou PC), para recorrer ao serviço, o utilizador deve ter instalado um programa(no caso do Windows por ex., Microsoft Silverlight) que descodifique e reproduza conteúdos nas plataformas. Quando o utilizador pede para visualizar um episódio de uma série, este poderá pensar que todos os conteúdos provêm só de um servidor. A verdade é que o conteúdo Netflix está distribuído por múltiplos CDN(do inglês, Content Delivery Networks), isto é, um conjunto de servidores em diferentes pontos que transfere conteúdo para o dispositivo que pediu o mesmo, utilizando o protocolo Dash.

Este protocolo divide o conteúdo a transmitir em pequenos segmentos de vídeo, obrigando o sistema subscritor  a pedir cada segmento individualmente. Em cada pedido de segmento, este protocolo executa um algoritmo para verificar a qualidade do próximo segmento a pedir. É nesta fase que o programa, que descodifica e reproduz os conteúdos no dispositivo do utilizador, trabalha em conjunto com este protocolo. Existem trocas de mensagens para determinar a capacidade de largura de banda máxima do utilizador, bem como, do ponto de vista do consumo da banda. Assim, a quantidade de informação transmitida por exemplo num smartphone é muito diferente daquela que é transmitida num PC, mantendo a qualidade de serviço em ambos os casos.

Este método chama-se adaptative bitrate streaming. As mensagens trocadas pelo protocolo Dash permitem adequar a taxa de débito binário dos segmentos recebidos à capacidade de recepção e reprodução do utilizador. Como foi dito anteriormente, a largura de banda máxima e a capacidade do CPU do dispositivo do utilizador são conhecidos através dessas mensagens. Numa primeira instância, o servidor enviará para o cliente conteúdos de baixa qualidade e o cliente (através das mensagens trocadas no protocolo Dash) enviará então a informação de que consegue receber conteúdos de melhor qualidade ou não. De seguida, o servidor enviará os conteúdos na qualidade a que o cliente consiga visualizá-los.

Arquitectura do serviço

Netflix

Arquitectura do sistema

Codificação de áudio e vídeo 

A utilização de codecs na transmissão de conteúdos do serviço Netflix é um dos processos mais importantes para o mesmo. Ao ser um serviço Video On Demand, a Netflix é responsável por 33 \% do tráfego consumido pelos utilizadores. Assim, quando os conteúdos são recebidos, a Netflix cria 120 combinações de codecs/formatos para cada conteúdo, podendo assim disponibilizar a melhor combinação de resolução e taxa de transmissão de acordo com o dispositivo de visualização. A Netflix concluiu que a taxa de transmissão varia de conteúdo para conteúdo, mesmo sendo episódios da mesma série, e passou a utilizar uma codificação "por título" passando a definir para cada conteúdo o codec a ser utilizado .

Os codecs utilizados para vídeo são o H.264/AVC , VC-1 e H.256/HEVC, considerando que a codificação HEVC é 40-45 \% mais eficiente que a codificação AVC, sendo então a melhor opção para utilizar numa transmissão Ultra HD. Este codec utiliza um modelo de previsão espacial e temporal híbrida, tendo à sua disposição 35 direcções para os vectores de movimento, ao contrário dos 9 disponíveis pelo H.264. Assim, a sua complexidade aumenta, sendo 300 \% mais complexo que o H.264, devido às estruturas de previsão e estimativa de movimento.
Os codecs áudio utilizados são HE-AAC , Dolby Digital e Dolby Digital+. Inicialmente, a Netflix utilizava uma versão do codec VC-1, o WMV3, muito utilizado pelos fabricantes de dispositivos de reprodução. No entanto, existiram problemas nos codecs áudio com a descontinuação da produção de dispositivos com codecs tão antigos e desactualizados. Para solucionar estes problemas, surgiu o HE-AAC, um codec áudio extremamente eficiente, que combina elevada qualidade e baixa taxa de transmissão, permitindo que, para uma menor largura de banda, não é necessário codificar o conteúdo com outro codec. 

Âncora 1
bottom of page