Передача видео на устройства iOS с использованием сервера Apache / PHP, включенного в PostgreSQL - PullRequest
0 голосов
/ 09 марта 2011

Я разрабатываю систему, в которой сервер будет передавать видео на устройство (iDevice или иным образом), а затем попросить пользователя оценить видео.Я решил использовать PostgreSQL для своей базы данных и позволить ему установить сервер Apache и PHP для работы (как показано здесь http://www.enterprisedb.com/products-services-training/pgdownload).

Однако, похоже, этот сервер не настроеночень похоже на обычную установку Apache / PHP. Когда iDevice пытается загрузить видео с сервера, iDevice выдает следующую ошибку:

Невозможно воспроизвести фильм - сервер настроен неправильно

Я провел некоторое исследование и узнал, что iDevices требует функциональности запроса диапазона байтов, поэтому я проверил журналы доступа моего сервера и обнаружил следующее:

xx.xx.xx.xx- - [08 / Mar / 2011: 11: 45: 56 -0700] "GET temp.mp4 HTTP / 1.1" 206 2
xx.xx.xx.xx - - [08 / Mar / 2011: 11: 45: 56 -0700] "GET temp.mp4 HTTP / 1.1" 200 17760579

(где "17760579" - точный размер в байтах конкретного файла)
Они должны выглядеть примерно так:

xx.xx.xx.xx - - [07 / Mar / 2011: 18: 04: 11 -0700] "GET temp.mp4 HTTP / 1.1" 206 2
xx.хх.xx.xx - - [07 / Mar / 2011: 18: 04: 11 -0700] "GET temp.mp4 HTTP / 1.1" 206 25947357
xx.xx.xx.xx - - [07 / Mar / 2011:18:04:11 -0700] "GET temp.mp4 HTTP / 1.1" 206 60637
xx.xx.xx.xx - - [07 / Mar / 2011: 18: 04: 11 -0700] "GET temp.mp4 HTTP / 1.1 "206 25880928

Итак, я знаю, что мой сервер неправильно обрабатывает некоторые запросы в диапазоне байтов.Однако использование curl для проверки этой функциональности возвращает правильный результат:

curl --range 0-99 http://url/temp.mp4 -o /dev/null
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
  0   100    0   100    0     0   8574      0 --:--:-- --:--:-- --:--:-- 10000

Я убедился, что типы MIME для видео настроены правильно.

Я не уверен, куда идти отсюда.Что-то где-то неправильно настроено на этом сервере.

Обновление: Вот соответствующие номера версий:

Версия сервера: Apache / 2.2.16 (Unix)
Сервер собран:7 октября 2010 00: 26: 09
PHP версия 5.3.3
PostgreSQL 9.0.2 на x86_64-apple-darwin

Ответы [ 3 ]

0 голосов
/ 25 марта 2011

Я не мог понять, как решить эту проблему. Сначала я использовал установочный пакет PostgreSQL / Apache / PHP, найденный на сайте в моем комментарии к этому вопросу, потому что это был способ установить все три и убедиться, что они работают без проблем. Очевидно, что получившийся сервер не обеспечил необходимую мне функциональность, у меня была возможность установить все с нуля. Я использовал инструкции, найденные здесь для достижения этого результата. Инструкции немного устарели, но процесс сработал.

0 голосов
/ 23 апреля 2015

Apache необходимо установить и включить mod_h264, чтобы правильно обрабатывать mp4 с запросами диапазона байтов.Вы проверяли наличие этого мода?

0 голосов
/ 09 марта 2011

Устройства iOS используют потоковую службу под названием «HTTP Live Streaming», она была разработана, когда Apple выпустила Quicktime Streaming Server (QSS).

Если ваш сервер не настроен для прямой трансляции, ваши видео будут просто загружаться, а затем воспроизводиться. Не играть по требованию.

Другим вариантом является потоковая передача по протоколу RTSP, но я не уверен, как система рейтингов вступает в игру со всем этим. Это похоже на работу для приложения для iPhone / iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...