Estou desenvolvendo um site de tubo e atualmente estou tendo problemas com o formato H.264. Percebi que o YouTube colocou seus vídeos em alta definição em um contêiner MP4, então, logicamente, fiz o mesmo.
Em seguida, instalei o mod_h264_streaming
lighttpd para fazer funcionar o fluxo e a limpeza da linha do tempo.
O problema é que arquivos grandes (> 500 MB em alta resolução) levam uma eternidade para iniciar o buffer (eu li que o Flowplayer e outros Flash players precisam baixar primeiro os metadados). Movi o átomo xmov para a frente do arquivo com o MP4Box (tentei o Qt QuickStart também), mas isso não ajudou.
Em seguida, li que preciso intercalar faixas de áudio, e também o fiz. Isso não causou alterações: os vídeos ainda estavam lentos.
Então, tentei colocar exatamente o mesmo filme H.264 em um contêiner FLV, e o buffer de reprodução começou quase instantaneamente - sem lentidão.
Então, o que estou perdendo aqui? Por que escolheria o contêiner MP4 com o módulo mod_264_streaming
, que parece super lento, em vez de um contêiner FLV comum com o lighttpd embutido mod_flv_streaming
? Obviamente, muitos sites escolhem o contêiner MP4, mas não entendo o porquê.
E como uma questão paralela, tentei usar a <video>
tag HTML5 para tentar o mesmo filme H.264 MP4, e a lavagem foi super rápida ! Examinei o arquivo de log do lighttpd e notei que os Flash players acrescentam video.mp4?start=234
cada vez que a linha do tempo é limpa, enquanto os navegadores que usam a <video>
tag HTML5 nativa não fazem isso. Isso é algum tipo de limitação do Flash? Por que o streaming em Flash não pode ser tão rápido quanto o streaming em HTML5?