Потоковое аудио / видео в реальном времени с iPhone на другое устройство (браузер или iPhone) - PullRequest
16 голосов
/ 19 апреля 2011

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

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

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

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

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

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

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

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

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

Ответы [ 3 ]

14 голосов
/ 20 апреля 2011

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

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

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

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

3 голосов
/ 21 декабря 2012

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

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

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

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

...