Я конвертировал видео source.flv в target.mp4 (формат h.264 ) с помощью следующей команды:

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;

Видео target.mp4 воспроизводится в браузере моего компьютера, но не воспроизводится на iPhone / iPad, когда я размещаю свое видео на экземпляре Amazon EC2.

То же видео target.mp4 воспроизводится в браузере моего компьютера, а также на iPhone / iPad, когда я размещаю его в другом месте.

QuickTime показывает следующую ошибку при попытке открыть видео из экземпляра EC2:

QuickTime
BYTE_RANGE_ERROR_MESSAGE

2 ответа2

4

Наконец, мы получили реальное решение для видео «Почему наши mp4(h.264)» не воспроизводятся в iphone. Решение: удалите или закомментируйте файл compress.conf из httpd.conf(файл конфигурации сервера apache).

Файл Compress.conf используется для сжатия вывода перед его отправкой клиенту. Если вы не хотите удалять compress.conf, вы можете прокомментировать несколько строк внутри compress.conf. Комментарий

# Загрузить модуль фильтра

SetEnv filter-errordocs true

FilterDeclare comp-resp

# Сжатие всего, кроме изображений, аудио и видео

#FilterProvider comp-resp DEFLATE resp = Content-Type!/^(Изображение | аудио | видео)//

#FilterProtocol comp-resp change = yes

2

Для потоковой передачи видео на эти устройства QuickTime / Apple сервер отправляет заголовок Accept-Ranges: bytes . Это указывает на то, что проигрыватель может запросить определенные части видео, отправив смещение в байтах, что позволяет, например, начать потоковую передачу с середины видео, не загружая весь файл.

Обычно это работает по умолчанию. Однако запросы диапазона байтов также могут рассматриваться как угроза безопасности, например, когда на сервер запускается атака типа «отказ в обслуживании». По этой причине запросы диапазона байтов могут быть заблокированы по пути, либо через маршрутизатор или межсетевой экран, либо самим сервером EC2, что может привести к появлению сообщения об ошибке.

Поэтому проверьте соединение на наличие возможных заблокированных запросов или обратитесь в службу поддержки EC2.

Смотрите также:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .