Как лучше всего транслировать камеру iphone в прямом эфире на медиасервер? - PullRequest
9 голосов
/ 18 декабря 2010

Согласно этому Какие методы лучше всего использовать для потоковой передачи данных с видеокамеры iPhone на компьютер? возможно получить сжатые данные с камеры iphone, но, как я читал в справочнике AVFoundation, вы получить несжатые данные.

Итак, вопросы:

1) Как получить сжатые кадры и звук с камеры iPhone?

2) Кодирование несжатых кадров с помощью API ffmpeg достаточно быстро для потоковой передачи в реальном времени?

Любая помощь будет по достоинству оценена.

Спасибо.

Ответы [ 2 ]

8 голосов
/ 14 марта 2011

Скорее всего, вы уже знаете ....

1) Как получить сжатые кадры и аудио с камеры iPhone?

Вы не можете этого сделать.API AVFoundation предотвратил это со всех сторон.Я даже пробовал именованные каналы и какой-нибудь другой подлый fix.Нет такой удачи.У вас нет выбора, кроме как записать его в файл.В вашей связанной публикации пользователь предлагает настроить обратный вызов для доставки закодированных кадров.Насколько я знаю, это невозможно для потоков H.264.Делегат захвата доставит изображения, закодированные в определенном пиксельном формате.Это кодировщики и AVAssetWriter, которые выполняют кодирование.

2) Кодирование несжатых кадров с помощью API ffmpeg достаточно быстрое для потоковой передачи в реальном времени?,Тем не менее, вам придется использовать libx264, который доставит вас на территорию GPL.Это не совсем совместимо с магазином приложений.

Я бы порекомендовал использовать AVFoundation и AVAssetWriter из соображений эффективности.

4 голосов
/ 15 марта 2011

Я согласен со Стивом. Я бы добавил, что при попытке использования API Apple вам придется серьезно заняться хакерством. AVAssetWriter по умолчанию тратит секунду, прежде чем поместить буфер в файл. Я не нашел способ изменить это с помощью настроек. Обходной путь, по-видимому, заключается в принудительной записи небольших файлов и закрытии файлов с использованием нескольких AVAssetWriters. Но тогда это вводит много накладных расходов. Это не красиво.

Обязательно отправьте запрос на новую функцию в Apple (если вы разработчик для iOS). Чем больше из нас это сделает, тем больше вероятность того, что они добавят какой-нибудь писатель, который сможет писать в буфер и / или в поток.

В дополнение к тому, что Стив сказал по поводу проблемы GPL x264, я хотел бы добавить, что вы можете получить коммерческую лицензию на то, что лучше, чем GPL, но, конечно, стоит денег. Но это означает, что вы все равно можете использовать его и получать довольно хорошие результаты, и вам не придется открывать собственный исходный код приложения. Не так хорошо, как расширенный API Apple, использующий их аппаратные кодеки, но неплохо.

...