Ficheiro FLV
O ficheiro FLV é um ficheiro binário onde os bits são guardados do mais significativo para o menos significativo (big-endian).É constituído por um cabeçalho (header) e pelo corpo do ficheiro(body) onde os respectivos dados comprimidos são divididos em pacotes de dados (tags). Esses pacotes podem conter dados de vídeo, áudio ou metadados. Os pacotes têm um cabeçalho que entre outras coisas tem um carimbo temporal responsável pela sincronização. Vamos então sintetizar a organização do ficheiro FLV dando enfase aos conteúdos mais relevantes.
FLV Header O cabeçalho começa com a sua assinatura (‘FLV’) e a respectiva versão. Contêm informação sobre a presença de pacotes de vídeo, áudio ou ambos e termina com o seu tamanho em bytes.
FLV Body Começa com 4 bytes que informam sobre o tamanho do pacote anterior (incluindo o seu cabeçalho). No caso de ser o primeiro vem a zero como mostra a figura x. Logo a seguir temos o primeiro pacote. Este processo vai se repetir ate ao ultimo pacote e termina com os 4 bytes que contêm o seu tamanho.
FLV Tag Cada pacote têm um cabeçalho de 11 bytes onde podemos encontrar entre outras coisas menos relevantes o Tagtype, o Timestamp e o Datasize. O tagtype revela se estamos perante um pacote de vídeo (tagtype==9), um pacote de áudio (tagtype==8) ou um pacote de metadados (tagtype==18).O datasize informa sobre o tamanho em bytes do pacote sem o cabeçalho.O timestamp é o carimbo temporal em milissegundos. Esta informação é relativa ao primeiro pacote que tem sempre o timestamp==0. Depois do cabeçalho temos os dados comprimidos que podem ser dos três tipos conforme o valor que esteja em tagtype.