Como eu crio um MP4 que pode ser usado e rastreável?

1

Eu quero criar um MP4 que suporte buscas e streaming. O DASH parece ser o que eu quero, exceto que os pontos de busca do segmento são armazenados em um arquivo externo (o MPD) que não funciona para o meu aplicativo; Preciso buscar metadados para estar contido no MP4.

A próxima coisa mais próxima parece ser MP4s fragmentados com a caixa mfra. Acho que isso funcionaria, mas não parece bem suportado (o mplayer e o totem não procuram, o ffplay recente funciona). Embora o aplicativo principal seja o streaming (com a capacidade de procurar), eu estaria relutante em desistir da capacidade de reproduzir o vídeo a partir de arquivos em players "padrão".

Existe alguma maneira que eu possa fazer um MP4 que é streamable, buscável e joga dentro de players de vídeo padrão?

Se eu abrir mão da capacidade de jogar em players de vídeo padrão, mfra é o melhor caminho a seguir?

edit: por streaming quero dizer download progressivo HTTP.

    
por user64996 21.05.2013 / 02:11

1 resposta

1

Buscar em qualquer arquivo MP4 via HTTP pode ser feito mais ou menos simplesmente.

Se o arquivo não estiver fragmentado, todas as informações de busca estão localizadas na caixa 'moov', portanto, não há problema. Isto é o que mp4box.js demonstra. Se os dados estiverem mal organizados, será necessário fazer várias solicitações de intervalo de bytes HTTP. É mais fácil se as caixas de cabeçalho forem as primeiras (ftyp, moov ...) e se os dados de mídia estiverem intercalados. MP4Box pode ser usado para gerar tais arquivos:

MP4Box -add file.mp4 output.mp4

Se o arquivo estiver fragmentado, de fato, a informação de busca é espalhada ao longo do arquivo e a caixa 'mfra' pode ser usada, mas não é bem suportada e não é confiável.

A segmentação (como usada no DASH) também pode ser usada para fazer arquivos HTTP pesquisáveis, se feito com cuidado. Se você segmentar seu arquivo, forçando um único arquivo de segmento, todos os dados estarão em um único arquivo (não em vários arquivos de segmento). Se você adicionar a caixa 'sidx', você terá as informações de indexação no arquivo (não há necessidade do MPD). Para ter ambos, você pode segmentar seu arquivo usando o perfil OndeAnde DASH com MP4Box:

MP4Box -dash 1000 -profile ondemand file.mp4 
    
por 09.09.2015 / 22:03