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

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

ПРИМЕЧАНИЕ. Это не один-ко-многим, просто один-к-одному на данный момент. Аудио может быть частью потока или по телефону на iphone.

Есть четыре способа, о которых я могу думать...

  • Захват фреймов на iPhone, отправка кадров в медиасервер, mediaserver публиковать видео в реальном времени используя веб-сервер хоста.

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

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

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

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

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

Ответ 1

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

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

Ответ 2

"Запишите и обработайте фрагменты (добавьте латентность, равную длине фрагментов, и опуститесь на 1/4 секунды видео между каждым фрагментом при запуске и остановите сеансы).

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

Ответ 3

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

  • Мы решили использовать OpenTok и смогли довольно быстро реализовать видео-чат в стиле концептуального стиля между iPad и веб-сайт, используя руководство по началу работы OpenTok. Там также есть плагин PhoneGap для OpenTok, который нам удобен, так как мы не делаем родной iOS.

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

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