Записать потоковое видео HTTP в файл во время просмотра? - PullRequest
14 голосов
/ 13 июля 2011

Я пытаюсь создать функцию потокового видео DVR в приложении, которое я разрабатываю. У меня есть HTTP Live Stream, который я успешно воспроизвел на iPad. Я хочу, чтобы пользователь мог нажать кнопку «Запись» и начать запись видео, которое в данный момент воспроизводится с этой точки. Этот видеофайл будет доступен из приложения или с камеры. В настоящее время я использую объект MPMoviePlayerController для воспроизведения видеопотока. Я не вижу никаких методов доступа к данным из объекта в документации Apple. Вот некоторые мысли о том, как это сделать.

1) Каким-то образом получить доступ к видеоданным из MPMoviePlayerController и записать их в файл. Или используйте другой тип объекта проигрывателя, который позволит мне воспроизводить видео и получать доступ к текущим воспроизводимым данным.

2) Реализовать какую-нибудь запись захвата экрана, которая получает видеоизображение экрана iPad. Это позволило бы мне записать видео в виде «скриншота».

3) Найдите сегменты HTTP Live Streaming, где они хранятся в MPMoviePlayerController. Предположительно они должны храниться где-то на iPad для воспроизведения. Есть ли способ доступа к этим файлам?

4) Вручную загружайте сегменты потокового видео через http во время потоковой передачи файла. Похоже, это не идеально, так как поток должен быть загружен дважды.

5) Это может сработать. Периодически загружайте видеофрагменты на iPhone. Настройте локальный http-сервер на iPhone и отправьте видео на MPMoviePlayerController. Таким образом, видео сегменты могут быть помечены для записи и собраны в видео.

6) У меня есть контроль над сервером потоковой передачи. Я мог бы написать код на стороне сервера, чтобы записать видео на стороне сервера, а затем отправить видео на iPad по факту. Я бы предпочел не делать этого.

Кто-нибудь делал что-нибудь из этого? В идеале iPhone должен был бы как-то получить доступ к видеоданным и легко их записать. Я бы предпочел не входить в варианты 4, 5 или 6 (выше), если бы мне это не нужно.

Заранее спасибо.

1 Ответ

2 голосов
/ 05 августа 2013

Видеорегистратор на устройстве несколько не рекомендуется из-за ограниченного доступного пространства и других факторов, таких как срок службы батареи, мощность процессора, процедуры очистки после того, как пользователь останавливает видеорегистратор, и т. Д.

Если вы хотите достичьВоспроизведение DVR на устройствах iOS (или других устройствах, использующих HLS), я предлагаю вам сохранить сторону видеосервера.Живой поток уже захвачен и сегментирован на стороне сервера, все, что вам нужно сделать, это сохранить сегменты немного дольше, а не удалять их.Используя теги EXT-X-PLAYLIST-TYPE и EXT-X-MEDIA-SEQUENCE , вы можете предложить игроку открыть прямой эфир с DVR (ранее)видео доступно.

Кроме того, вы можете использовать сервер, который делает это из коробки, например, Wowza. Вот статья о том, как этого добиться с помощью Wowza

...