Para pesquisas futuras, bem, eu tinha um arquivo MP4 que eu downscaled com Handbrake usando handbrake-gtk
a partir apt-get
, por exemplo sudo apt-get install handbrake-gtk
. No Ubuntu 14.04, o handbrake
repositório não inclui suporte para MP4 fora da caixa. Eu deixei as configurações padrão, retirei a trilha de áudio e gerou um arquivo * .M4V. Para quem está se perguntando, eles são o mesmo contêiner, mas o M4V é usado principalmente no iOS para abrir no iTunes.
Isso funcionou em todos os navegadores, exceto Safari:
<video preload="yes" autoplay loop width="100%" height="auto" poster="http://cdn.foo.com/bar.png">
<source src="//cdn.foo.com/bar-video.m4v" type="video/mp4">
<source src="//cdn.foo.com/bar-video.webm" type="video/webm">
</video>
Mudei o tipo mime entre video/mp4
e video/m4v
sem efeito. Eu também testei adicionando o control
atributo e novamente, nenhum efeito.
Isso funcionou em todos os navegadores testados, incluindo Safari 7 no Mavericks e Safari 8 no Yosemite. Simplesmente renomeei o mesmo arquivo m4v (o arquivo real, não apenas o HTML) para mp4 e recarreguei em nosso CDN:
<video preload="yes" autoplay loop width="100%" height="auto" poster="http://cdn.foo.com/bar.png">
<source src="//cdn.foo.com/bar-video.mp4" type="video/mp4">
<source src="//cdn.foo.com/bar-video.webm" type="video/webm">
</video>
Acho que o Safari está esperando um MP4 realmente nomeado. Nenhuma outra combinação de arquivo e tipo MIME funcionou para mim. Acho que os outros navegadores optam pelo arquivo WEBM primeiro, especialmente o Chrome, embora eu tenha quase certeza de que a lista de fontes deve selecionar a primeira fonte que é tecnicamente suportada.
Isso, entretanto, não corrigiu o problema de vídeo em dispositivos iOS (iPad 3 "o novo iPad" e iPhone 6 testados).