Estou pesquisando a API do bot do Telegram e ela mostra esta opção para sendVideo
:
support_streaming Booleano Opcional
Passe True se o vídeo enviado for adequado para streaming
Isso sugere que alguns arquivos de vídeo MPEG-4 são adequados para streaming e outros não. O que faz a diferença? Como posso ter certeza de que meu arquivo de vídeo é 'adequado para streaming'?
Tanto quanto eu sei, os arquivos de contêiner MP4 podem ter seus metadados (faixas de áudio/vídeo, informações de codec) no início do arquivo antes dos dados reais ou no final. Se os metadados forem colocados no final, um player não poderá decodificar o fluxo de vídeo até que tenha baixado tudo (a menos que possa pesquisar o arquivo, o que é possível, por exemplo, usando solicitações de intervalo HTTP).
Por exemplo, este arquivo tem
mdat
antesmoov
de , então não pode ser transmitido como está:Consulte, por exemplo, o artigo "faststart" do FFMPEG .
Além disso (como acabei de descobrir), os dados da faixa de áudio podem ser intercalados com dados de vídeo ou não. Se não for intercalado por algum motivo, o player novamente precisará aguardar o download de todo o fluxo de áudio antes de começar a receber dados de vídeo (novamente, a menos que possa voltar/avançar).
Consulte também Fragmentação, segmentação, divisão e intercalação .