.O vídeo MP4 (formato h.264) não está sendo reproduzido no iPhone quando eu hospedo o vídeo na instância do Amazon EC2

0

Eu converti meu vídeo source.flv em target.mp4 (formato h.264) usando o seguinte comando:

ffmpeg -i source.flv -r 25 -b:a 128k -strict -2 -c:v libx264 -preset slow -s 320x240 -b:v 768k -ar 44100 -c:a aac target.mp4;

O vídeo target.mp4 está sendo reproduzido no navegador do meu computador, mas não está sendo reproduzido no iPhone / iPad quando hospedo meu vídeo em uma instância do Amazon EC2.

O mesmo vídeo target.mp4 está sendo reproduzido no navegador do meu computador, bem como no iPhone / iPad, quando eu o hospedo em outro lugar.

O QuickTime mostra o seguinte erro quando tento abrir o vídeo a partir da instância do EC2:

QuickTime
BYTE_RANGE_ERROR_MESSAGE
    
por Shishir Mudliyar 26.11.2012 / 11:11

2 respostas

4

Finalmente, obtivemos a solução real para 'Por que nossos vídeos mp4 (h.264)' não estão sendo reproduzidos no iphone. A solução é: remover ou comentar o arquivo compress.conf do httpd.conf (arquivo de configuração do servidor apache).

O arquivo Compress.conf é usado para comprimir a saída antes de enviá-la ao cliente. Se você não quiser remover o compress.conf, pode comentar algumas linhas dentro do compress.conf. Comentário

# Carrega o módulo de filtro

SetEnv filter-errordocs true

FilterDeclare comp-resp

# Compacte tudo, exceto imagens, áudio e vídeo

#FilterProvider comp-resp DEFLATE resp = tipo de conteúdo! / ^ (imagem | áudio | vídeo) //

#FilterProtocol comp-resp change = sim

    
por 07.01.2013 / 11:19
2

Para transmitir vídeo para esses dispositivos QuickTime / Apple, o servidor envia um cabeçalho Accept-Ranges: bytes . Isso indica ao player que ele pode solicitar certas partes do vídeo enviando um byte offset, que permite, por exemplo, começar a transmitir a partir do meio de um vídeo sem precisar baixar o arquivo inteiro.

Geralmente isso funciona por padrão. No entanto, as solicitações de intervalo de bytes também podem ser consideradas um risco de segurança, por exemplo, quando um ataque de negação de serviço é iniciado contra o servidor. Por esse motivo, as solicitações de intervalo de bytes podem ser bloqueadas ao longo do caminho, por meio de um roteador ou firewall, ou pelo próprio servidor EC2, o que levaria à mensagem de erro que você está vendo.

Portanto, verifique a conexão para possíveis solicitações bloqueadas ou considere entrar em contato com o suporte do EC2.

Veja também:

por 26.11.2012 / 13:01