Потоковое аудио/видео в реальном времени с iPhone на другое устройство (браузер или iPhone)


Я хотел бы получить видео в реальном времени с iPhone на другое устройство (будь то настольный браузер или другой iPhone, например point-to-point).

Примечание: это не один ко многим, просто один к одному в данный момент. Аудио может быть частью потока или через телефонный звонок на iphone.

Есть четыре способа, которые я могу придумать...
  1. Захват кадров на iPhone, отправка кадры на медиасервер, есть mediaserver публикует видео в реальном времени использование хост-сервера.

  2. Захват кадров на iPhone, конвертировать в изображения, отправляемые на httpserver, имеют javascript / AJAX в перезагрузке браузера изображения с сервера так же быстро, как возможный.

  3. Запустите httpServer на iPhone, захватите фильмы продолжительностью 1 секунду на iPhone, создайте файлы M3U8 на iPhone, имейте другой пользователь подключается непосредственно к httpServer на iPhone для прямая трансляция.

  4. Захват фильмов продолжительностью 1 секунда на iPhone, создание файлов M3U8 на iPhone, отправить на httpServer, есть другой пользователь, подключенный к HTTP-сервера для прямого эфира. это хороший ответ , кто-нибудь получил его на работу?

Есть ли лучший, более эффективный вариант? Какой самый быстрый способ получить данные с iPhone? Это ASIHTTPRequest?

Спасибо всем.

3 15

3 ответа:

Отправка необработанных кадров или отдельных изображений никогда не будет работать достаточно хорошо для вас (из-за количества данных и количества кадров). Также вы не можете разумно обслуживать что-либо с телефона (сети WWAN имеют все виды брандмауэров). Вам нужно будет закодировать видео и передать его на сервер, скорее всего, в стандартном потоковом формате (RTSP, RTMP). На iPhone есть чип кодера H. 264 >= 3GS. Проблема в том, что он не ориентирован на поток. То есть он выводит метаданные, необходимые для разбирайте видео в последнюю очередь. Это оставляет вам несколько вариантов.

  1. получить исходные данные и использовать FFmpeg для кодирования на телефоне (будет использоваться тонна процессора и батареи).
  2. Напишите свой собственный синтаксический анализатор для вывода H. 264/AAC (очень жесткий)
  3. запись и обработка кусками (добавит задержку, равную длине кусков, и отбросит около 1/4 секунды видео между каждым куском при запуске и остановке сеансов).

"запись и обработка в кусках (будет добавлена задержка, равная длине кусков, и падение около 1/4 секунды видео между каждым куском, как вы начинаете и останавливаете сеансы)."

Я только что написал такой код, но вполне возможно устранить такой пробел, наложив два AVAssetWriters. Поскольку он использует аппаратный кодер, я настоятельно рекомендую этот подход.

У нас есть аналогичные потребности; чтобы быть более конкретными, мы хотим реализовать потоковое видео и аудио между устройством iOS и веб-интерфейсом. Цель состоит в том, чтобы обеспечить высококачественное видео-обсуждение между участниками, использующими эти платформы. Мы провели некоторые исследования о том, как это реализовать:

  • Мы решили использоватьOpenTok и довольно быстро реализовали видео-чат в стиле proof-of-concept между iPad и веб-сайтом с помощьюopentok getting started guide . Есть также плагин PhoneGap для OpenTok, который удобен для нас, так как мы не делаем родной iOS.

  • Liblinphone также казался потенциальным решением, но мы не исследовали его дальше.

  • IDoubs также появились, но опять же, мы чувствовали, что OpenTok был самым многообещающим для наших нужд, и поэтому не рассматривали iDoubs более подробно.