Problemas de vídeo HTML5 (MP4 e OGV) no Safari e Firefox - mas o Chrome é tudo bom
-
27-09-2019 - |
Pergunta
Eu tenho o seguinte código:
<video width="640" height="360" controls id="video-player" poster="/movies/poster.png">
<source src="/movies/640x360.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
<source src="/movies/640x360.ogv" type='video/ogg; codecs="theora, vorbis"'>
</video>
- Estou usando Rails (Mongrel em Desenvolvimento e Mongrel+Apache na produção).
- O Chrome (Mac e Win) pode reproduzir o arquivo (testado por um e as outras tags de origem) seja localmente ou nos meus servidores de produção.
- Safari (Mac e Win) pode reproduzir o arquivo MP4 bem localmente, mas não da produção.
- O Firefox 3.6 não reproduz o vídeo em nenhum dos sistemas operacionais. Eu apenas recebo uma cruz cinza no meio da área de player de vídeo.
- Eu certifiquei -me de que o MonGrel e o Apache em cada caso tenham os tipos de MIME certos definidos.
- A partir dos resultados do Chrome, sei que não há nada inerentemente errado com meus arquivos de vídeo ou com a maneira como os arquivos estão sendo solicitados ou entregues.
Para o Firefox, eu olhei https://developer.mozilla.org/en/using_audio_and_video_in_firefox onde se refere a um evento de 'erro' e um atributo 'erro'. Parece que o evento 'Erro' é lançado muito bem e, naquele momento, não há atributo de erro. Alguém sabe como diagnosticar o problema?
Solução
O tipo de conteúdo http para .ogg deve ser aplicativo/ogg (vídeo/ogg para .ogv) e para .mp4 deve ser vídeo/mp4. Você pode verificar usando o sniffer da web.
Outras dicas
Adicione essas linhas no seu arquivo .htaccess e ele funcionará para todos os navegadores. Funciona para mim.
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm
Se você não tiver um arquivo .htaccess no seu site, crie um novo :) é óbvio, eu acho.
Aliás, os arquivos .OGV são vídeos, então "Video/Ogg", os arquivos .OGG são Vorbis Audio, portanto, "Audio/Ogg" e os arquivos .OGA são gerais de áudio OGG, portanto também "Audio/Ogg". Verificado no Firefox e trabalho. "Application/OGG" está depreciado para todos os usos de áudio ou vídeo. Ver http://www.rfc-editor.org/rfc/rfc5334.txt
Vejo na página de documentação um exemplo como este:
<source src="foo.ogg" type="video/ogg; codecs="dirac, speex"">
Talvez você deva incluir o codec
informação com "
entidades em vez de citações reais e as type
atributo com citações em vez de apóstrofos.
Você também pode tentar remover completamente as informações do codec.
Basta remover as citações internas - eles confundem o Firefox. Você pode apenas usar "Video/Ogg; codecs = Theora, Vorbis".
Além disso, essa marcação funciona no meu minefiled 3.7a5pre, portanto, se o seu arquivo OGV não reproduzir, poderá ser um arquivo falso. Como você criou isso? Você pode querer registrar um bug no Firefox.
Só preciso alterar uma carta :), renomeie 640x360.ogv para 640x360.ogg, ele funcionará para todos os 3 browers.