Это всего лишь моя догадка .Я старался не публиковать это, если есть положительный ответ.Однако до сих пор нет ответа.Поэтому я пишу это, чтобы поделиться своим мнением.Однако я сожалею, что это не очень хорошо.
Если вы хотите просто перенести видео с устройств iOS, это легко.Просто отправьте видео файл сам.Итак, я предполагаю, что вы хотите, чтобы потоковое видео.Передача того, что я сейчас записываю.
Я думал об этой проблеме несколько недель назад, но мне это не удалось.Проблема не в медиа-сегменте.MPEG2 TS - это просто контейнер, а сегментация - это просто разделение видео, его можно легко (?) Реализовать с точной спецификацией.
Настоящая проблема - кодирование видео.iOS не предлагает сжатый прямой эфир с камеры.(может быть, еще?) Только сжатый поток может быть сохранен на диск.Должен быть способ получить сжатый видеопоток внутри.Потому что FaceTime без этого невозможен.Однако это не предлагается третьим лицам.
Возможно непрерывное хранение коротких видеороликов и их загрузка на сервер.Но начало / завершение видео-сессии занимает слишком много времени.Поэтому я отказался от этого метода.
В качестве другого способа iOS предлагает несжатый видеопоток, поэтому вы можете сделать это, сжимая необработанный видеопоток самостоятельно.С ffmpeg
или такими вещами.Однако кодирование видео Apple использует аппаратные функции для повышения производительности (это может улучшить качество видео при меньших размерах) и сэкономить энергию.ffmpeg
делает все только в программном обеспечении.Конечно, вы можете сделать свой аппаратно-ускоренный кодер самостоятельно или приобрести его у какого-либо поставщика.
На рынке есть несколько приложений для потоковой передачи видео.Я не использовал их.Но, может быть, один из них.
- передача необработанных кадров.(без сжатия или быстрое, но слабое сжатие)
- на основе кодировщика ffmpeg.
- реализация независимого аппаратно-ускоренного кодировщика.
Первый требует слишком большой полосы пропускания, а такжепотребляет тяжелую энергию.
Второй, безусловно, медленный и потребляет тяжелую энергию.Однако этого может быть достаточно.
В-третьих, для небольших приложений требуется слишком высокая стоимость разработки.Но если у вас достаточно бюджета, это лучше всего.Я не знаю, есть ли на рынке предустановленная библиотека для iOS.
Я бы хотел, чтобы Apple выпустила этот вид сжатого видеопотока.Который сжат с помощью аппаратного ускоренного кодера Apple.Но, может быть, этого не произойдет, если Apple не решит отказаться от защиты высококачественной функции потоковой передачи живого видео между устройствами в качестве функции убийцы ... FaceTime.
Однако возможно, что Apple выпустит этот API в какой-то момент.И я не уверен, что я искал все API.Возможно, я не смог проверить что-то важное.
Обновление
Я нашел класс AVAssetWriter
, который может записывать видеоданные в файл со сжатием.Это может быть ключом к созданию такого рода приложений.