Как создать замедленное видео, как в приложении для фотографий?
Я ищу способ создания длительных покадровых видео на iPhone под управлением iOS 9 и надеюсь получить некоторые подсказки о том, как начать. В идеале я бы сжимал 1 час отснятого материала в 1 минуту, поэтому коэффициент масштабирования равен 60. Я беру один кадр из 60 и склеиваю их вместе, верно?
У меня есть проект, который использует AVFoundation захвата изображений с помощью captureOutput:idOutputSampleBuffer:fromConnection:
Однако я не уверен, есть ли лучшие подходы к созданию промежутка времени в течение нескольких часов.
- Имеет ли смысл делать отдельные фотографии и склеивать их (активировать камеру каждые несколько секунд)?
- Или просто взять кадры из CMSampleBufferRef?
Есть ли другие API, которые я могу использовать для захвата изображений с камеры?
Я надеюсь понять, какой подход приведет к высочайшему качеству и времени автономной работы.
Я смотрю на этот вопрос, который, кажется, содержит код для сшивания изображений, но я не уверен, что мне нужно что-то еще для моего проекта.
1 ответ
Один из способов сделать замедленную съемку - вместо использования AVCaptureVideoDataOutput
для обработки видеокадров вы можете использовать AVCapturePhotoOutput
чтобы получить изображения из буферов образцов.
Затем устанавливается таймер для захвата sampleBuffer каждую секунду или около того, и, наконец, вы сшиваете кадры вместе с AVAssetWriter
иметь видео.
Оформить заказ приложения Apple StopNGo.
Если вы рассмотрите, как dslr захватывает его, вы получите его.
Камера в основном щелкает 1 изображение через каждые n секунд.
Допустим, вы установили значение 60. Это приведет к 1 клику каждую минуту. Вы оставляете камеру на 8 часов -> 480 минут -> 480 снимков.
Теперь пришло время сшить эти кадры вместе. Допустим, вы добавляете их с 10 кадрами в секунду, что означает 10 фотографий за 1 секунду. Это приведет к 48 секундам отснятого материала. Я написал небольшую статью об этом. При необходимости могу предоставить ссылку.