Os contêineres adicionam metadados a um ou vários "fluxos de bits brutos". Pode-se imaginar o último como um filme tradicional: uma série de imagens, nada mais. O contêiner atuaria como a caixa em que o rolo de filme é armazenado: ele adiciona o título, as posições do índice (a cena 2 começa às 03:45), o comprimento total e assim por diante.
Vídeo puro sem um contêiner pode funcionar; As durações podem obviamente ser calculadas sem um índice, mas são rapidamente impraticáveis - o vídeo inteiro precisa ser decodificado para obter seu comprimento total, já que a quantidade de dados necessária para armazenar um segundo de filme não é necessariamente constante (alguns codecs permitem taxas de quadros variáveis). Para avançar dez segundos, seria necessário pré-decodificar dez segundos de vídeo; para voltar dez segundos, a re-decodificação desde o início estaria envolvida, ou um índice de execução do que já foi visto precisaria ser mantido. Não é bonita e não é eficiente.
Assim, no caso de streaming, os contêineres simplificam as operações, como procurar ou obter comprimento total; Não é necessário fazer o pré-download de mais dados do que realmente necessário. Uma sessão de observação pode começar em meio ponto, sem fazer o download e decodificar o primeiro semestre.
As mesmas limitações se aplicam ao áudio puro.
Portanto, agora para áudio e vídeo sincronizados, são necessários dois fluxos de dados distintos. Alternar entre ler dois arquivos (mesmo que cada um tenha seu contêiner distinto) envolveria um impacto de desempenho inútil e, em um computador carregado, pode significar que o vídeo está pronto para ser reproduzido, mas o áudio ainda espera no disco. Os contêineres dividem os dados em clusters gerenciáveis de curta duração (alguns segundos no máximo) onde o vídeo e o áudio estão localizados próximos um do outro no meio de armazenamento (ou na rede). Se a transmissão ocorrer em uma rede com perdas e os pacotes forem perdidos, o player poderá facilmente retomar a reprodução do próximo cluster, sem a necessidade de lidar com a estimativa de perda de dados para garantir que vídeo e áudio sejam mantidos em sincronia.
Assim, os contêineres armazenam principalmente informações redundantes que podem ser facilmente reunidas a partir dos "fluxos de bits brutos", mas essa adição torna muitas operações mais eficientes e adiciona confiabilidade.