Estou tentando criar uma página da web html5 na qual há um pequeno vídeo como 13s, converti a versão em flash deste vídeo para o formato 3: .ogv usando fireFogg, .webm usando firefogg também e .mp4 usando o aplicativo HandBrake o script html Eu usei na minha página:
<video width="800" height="640" loop preload="false" autoplay controls tabindex="0">
<source src="xmasvideo/video.mp4" type="video/mp4" />
<source src="xmasvideo/M&P-Xmas 2.ogv" type="video/ogv" />
<source type="video/webm" src="xmasvideo/M&P-Xmas.webm" />
</video>
O vídeo está funcionando bem no Chrome e FireFox, mas não funciona nem no Safari no Desktop nem no iPhone ou iPad, a saída é simplesmente uma página em branco que mostra os controles da tag de vídeo, mas nada é carregado
Observe que a versão do Safari que possuo é compatível com vídeo HTML5
iphone
ipad
safari
html5-video
mobile-safari
Khaled Al Hage Ismail
fonte
fonte
autoplay
: developer.apple.com/library/safari/documentation/AudioVideo/… ..playsinline
na tag de vídeo?Respostas:
Eu tive o mesmo problema com dispositivos Apple como iPhone e iPad, desliguei o modo de baixo consumo de energia e funcionou e você também deve incluir o
playsinline
atributo na tag de vídeo como este:Só funcionou quando incluído
playsinline
.fonte
playsInline
, em camelCase.Outra solução possível para os pesquisadores futuros: (se o seu problema não for um problema do tipo MIME.)
Por algum motivo, os vídeos não seriam reproduzidos no iPad a menos que eu configurasse a sinalização controles = "true".
Exemplo: funcionou para mim no iPhone, mas não no iPad.
E isso agora funciona no iPad e no iPhone:
fonte
autoplay
opção funcionou. Eu tenhocontrols="false"
em meu código.controls="false"
é redundante;controls
em si é um booleano que, quando presente, ativa os controles e, quando não está, não há controles. Ver especificaçõescontrols
é um atributo booleano, os únicos valores válidos são nenhum, uma string vazia ou seu próprio nome. Os valores verdadeiro e falso estão incorretos.Seu servidor da web pode não suportar solicitações de intervalo de bytes HTTP. Esse é o caso do servidor da web que estou usando e o resultado é que o widget de vídeo é carregado e um botão de reprodução aparece, mas clicar no botão não tem efeito. - O vídeo funciona em FF e Chrome, mas não em iPhone ou iPad.
Leia mais aqui em mobiforge.com sobre solicitações de intervalo de bytes, no Apêndice A: Streaming para Apple iPhone :
Você pode pesquisar na web por "iphone mp4 byte-range".
fonte
RangeResult.ofPath(finalPath, range, Some(mime))
e deve funcionar 2.7 e posteriores.Se os seus vídeos estiverem protegidos por um sistema de login baseado em sessão, o Safari não conseguirá carregá-los. Isso ocorre porque o Safari faz uma solicitação inicial para o vídeo e, em seguida, passa a tarefa para o QuickTime, que faz outra solicitação. Como o Safari contém as informações da sessão, ele passará na autenticação, mas o QuickTime não.
Você pode ver isso se visualizar o registro de acesso ao servidor ... primeiro a solicitação do Safari, depois a solicitação do QuickTime. Outros navegadores apenas fazem uma única solicitação do próprio navegador.
Se este for o seu problema, talvez você precise retrabalhar o acesso ao vídeo para usar tokens temporários ou um acesso por tempo limitado da solicitação original. Atualizarei esta resposta se encontrar uma solução mais direta.
fonte
Para pesquisas futuras, bem, eu tinha um arquivo MP4 que eu downscaled com Handbrake usando
handbrake-gtk
a partirapt-get
, por exemplosudo apt-get install handbrake-gtk
. No Ubuntu 14.04, ohandbrake
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:
Mudei o tipo mime entre
video/mp4
evideo/m4v
sem efeito. Eu também testei adicionando ocontrol
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:
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).
fonte
Basta adicionar um
muted
atributo e tudo funcionará bem.A fonte desta resposta está aqui: https://webkit.org/blog/6784/new-video-policies-for-ios/
fonte
Eu descobri que, embora o Safari suporte HTML5 Video, o Quicktime Player deve ser instalado para que funcione. Em um site que eu construí que usa vídeo HTML5, o usuário é alertado ao usar o Safari, informando que ele deve ter o Quicktime instalado, caso contrário, ele só poderá ver as transcrições do vídeo. Espero que isto ajude.
fonte
Já vi problemas estranhos com certificados SSL de 'desenvolvimento' não confiáveis, em que o Safari móvel servirá perfeitamente à sua página, mas se recusará a servir um vídeo para um certificado SSL 'falso', mesmo que você tenha aceitado o certificado.
Para testar, você pode implantar o vídeo em outro lugar - ou mudar para http (para toda a página) e ele deve ser reproduzido.
fonte
Adicionar 'playinline' funciona para mim no Iphone e no Ipa, se você não se importa que seu vídeo seja silenciado.
Se você não deseja que seu vídeo seja silenciado, mas ainda deseja a reprodução automática, tente remover o atributo mudo com js: Como ativar o som de um vídeo html5 com um suporte silenciado
fonte
A partir do iOS 6.1, não é mais possível reproduzir vídeos automaticamente no iPad. De acordo com a documentação da Apple, o recurso de reprodução automática não está funcionando no Safari em todos os dispositivos ios, incluindo iPad:
“A Apple decidiu desativar a reprodução automática de vídeo em dispositivos iOS, por meio de implementações de script e atributo.
No Safari, no iOS (para todos os dispositivos, incluindo iPad), onde o usuário pode estar em uma rede celular e ser cobrado por unidade de dados, o pré-carregamento e a reprodução automática estão desabilitados. Nenhum dado é carregado até que o usuário o inicie. "
Você pode ler mais sobre isso nesta documentação da Apple
fonte
Para um .mp4, isso funciona (safari móvel e desktop):
O
controls=”true”
mencionado em um post acima não faz sentido para mim, pois a Apple diz que basta usar os controles por conta própria.Referência: “Para usar áudio ou vídeo HTML5, comece criando um elemento ou, especificando um URL de origem para a mídia e incluindo o atributo de controles.
<video src="http://example.com/path/mymovie.mp4" controls></video>
”Fonte: https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Introduction/Introduction.html
Em minhas negociações (uma pequena digressão) : descobri que fazer upload de vídeo do iPhone o envia para o servidor como .quicktime. Ironicamente, esse é o problema ao tentar reproduzir o vídeo do servidor no Safari. (celular e desktop).
Portanto, se (como eu) você estiver enfrentando um problema de .quicktime (ou qualquer coisa diferente de .mp4) no safari , aqui está uma solução alternativa fornecida pela apple. Observe, eu ainda estou para testá-lo e não estou muito feliz com isso à primeira vista, apenas fornecendo mais informações.
Referência: “Voltar para o plug-in QuickTime Há uma maneira simples de voltar para o plug-in QuickTime que funciona para quase todos os navegadores - baixe o arquivo JavaScript pré-construído fornecido pela Apple, ac_quicktime.js, do HTML Video Example e inclua-o em sua página da web, inserindo a seguinte linha de código em seu cabeçalho HTML:
<script src="ac_quicktime.js" type="text/javascript"></script>
”Fonte : https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html#//apple_ref/doc/uid/TP40009523-CH2-SW6
Atualização: Para renomear .quicktime para
.mov
upload anterior para o servidor (no tipo de arquivo base64 "data: video / mov;"), pule ac_quicktime.js. . . funcionará então na tag de vídeo html; Hackerdy Hack.fonte
Ao usar este código, o vídeo será reproduzido em todos os navegadores do Safari e também em dispositivos iOS ... Vá em frente, todos (eu usei isso e está funcionando bem)
`
fonte
Eu tive um problema semelhante onde os vídeos dentro de uma
<video>
tag só eram reproduzidos no Chrome e Firefox, mas não no Safari. Aqui está o que eu fiz para consertar ...Um truque estranho que descobri foi ter duas referências diferentes para o seu vídeo, uma em uma
<video>
tag para Chrome e Firefox e outra em uma<img>
tag para Safari. Curiosidade, os vídeos realmente são reproduzidos em uma<img>
tag no Safari. Depois disso, escreva um script simples para ocultar um ou outro quando um determinado navegador estiver em uso. Então, por exemplo:Isso também ajuda a resolver o problema de uma moldura / borda preta fina em alguns vídeos em certos navegadores onde eles são renderizados incorretamente.
fonte
Eu tive esse problema em que a reprodução de .mp4 no Safari não funcionava, mas em outros navegadores estava bem. O erro que eu estava vendo no console era: error media src not supported. No meu caso, isso acabou sendo um problema de tipo MIME, mas não porque não foi declarado como tipo MIME no IIS, em vez disso, foi declarado duas vezes (uma vez no IIS e também em um arquivo web.config). Eu descobri isso tentando baixar o arquivo .mp4 localmente no servidor. Removi o arquivo de configuração do local do conteúdo que estava tentando reproduzir e resolvi o problema. Eu poderia simplesmente ter excluído o tipo MIME do arquivo web.config, mas, neste caso, o arquivo web.config não era necessário.
fonte
Para IOS, use apenas o arquivo de origem mp4. Eu observei um problema no navegador safari mais recente em que o navegador safari não consegue detectar o arquivo de origem corretamente e, por causa disso, a reprodução automática de vídeo não funciona.
Vamos verificar o exemplo abaixo -
Como tenho usado mp4, webm em arquivos fonte. Safari deosnt suporta webm, mas ainda na última versão do safari, ele selecionaria webm e falha na reprodução automática de vídeo.
Portanto, para trabalhar a reprodução automática em um navegador compatível, sugiro que verifique o navegador primeiro e, com base nisso, você deve gerar seu html.
Portanto, para safari, use o html abaixo.
Para além do safari,
fonte
Eu tive o mesmo problema - certifique-se de que o url do recurso de vídeo vem de um domínio seguro. Nosso ambiente de desenvolvimento é http enquanto a produção é segura. Devido ao vídeo ser referenciado por meio de um caminho relativo, ele não estava funcionando no desenvolvimento. Parece ser um problema que a apple exige que o vídeo seja seguro ...
fonte
está funcionando, mas o MacOs recentemente tem uma política de reprodução automática para o usuário: https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/ , resolvi o mesmo problema usando um botão para ativar o som:
ejm:
fonte
Eu enfrentei o mesmo problema. Porque o tamanho do quadro do meu vídeo era muito grande. ie.2248 px Apple com suporte para vídeo H.264 Baseline Profile Level 3.0, até 640 x 480 a 30 fps. Observe que os quadros B não são suportados no perfil Baseline. verifique isto para obter mais informações
fonte
O que ajudou no meu caso foi descartar a faixa de áudio. Estava silencioso antes, mas tinha que sumir completamente.
No ubuntu:
E safari / desktop começa a reproduzir o vídeo
fonte
Para meu caso de uso, havia duas coisas :
playsinline
;o /
fonte
Eu tive exatamente o mesmo problema, minha tag de vídeo HTML funcionou bem no Chrome e Mozilla, no Safari - os controles apareceram, mas o vídeo estava em branco. Tentei jogar com todos os atributos acima, remover / adicionar silenciado, playInline, etc. e nada funcionou. O problema estava com os servidores descritos aqui também. Eu tinha isso - NÃO FUNCIONOU:
e acabei de mover meu vídeo para uma biblioteca externa e estou bem no Safari agora, ele FUNCIONA bem:
fonte
Nada funcionou para mim, exceto compactar o vídeo para menos de 30 MB. Isso funcionou, mas com uma compressão muito ruim.
fonte
Se alguém tendo o mesmo problema eu resolvi habilitando o suporte de intervalo de bytes no meu servidor. Parece que o Safari requer solicitações de intervalo de bytes. No meu caso, eu uso o NGINX e tive que adicionar
proxy_force_ranges on;
ao meu arquivo de configuração. Graças a esta resposta !fonte