Сохранить видео за последние 30 секунд - PullRequest
1 голос
/ 17 января 2010

Я хочу разработать программу, в которой пользователь может захватывать и сохранять только последние 30 секунд видео после нажатия кнопки остановки.

1) Есть ли у нас контроль над записью видео?

2) как мы можем получить только последние 30 секунд видео?

Ответы [ 3 ]

3 голосов
/ 18 января 2010

Если нам удастся получить изображения со скоростью 15 к / с, используя UIImagePickerController.

Затем создайте буфер размером 15 * 30.

Сделать в очереди NSMutableArray удалить первый кадр при получении нового кадра и добавить новый кадр в конец очереди.

В конце, когда пользователь нажимает кнопку остановки. Создайте видео (используя пользовательский кодак).

Я не уверен, но это может помочь.

0 голосов
/ 18 января 2010

Один из методов - сохранить видеокадры в кольцевой буфер. Сделайте кольцевой буфер достаточно большим, чтобы хранить 30 секунд видео. С помощью кольцевого буфера у вас есть указатель заполнения, который одновременно определяет начало и конец потока. Когда вы добавляете в буфер, вы соответственно увеличиваете указатель. Когда вы нажимаете «стоп», вы переписываете буфер так, чтобы данные в вашем указателе заполнения находились в начале буфера (в основном вы вращаете все данные в буфере так, чтобы правильная точка была в начале). Это ваши необработанные видео данные, представляющие последние 30 секунд. Вы, вероятно, хотите, чтобы счетчик представлял, сколько секунд было заполнено, в случае, если они нажимают «Стоп» менее чем через 30 секунд.

0 голосов
/ 18 января 2010

О UIImagePickerController

Класс UIImagePickerController управляет системным пользователем интерфейсы для выбора и принятия картинки и фильмы на поддерживаемых устройства. Используйте этот класс, чтобы получить один из этих типов носителей от пользователя. Класс управляет взаимодействием с пользователем и сообщает о результатах тех взаимодействия с ассоциированным объект делегата.

и

В дополнение к камере по умолчанию интерфейс, в iPhone OS 3.1 и позже Вы можете управлять взаимодействием с камерой себя, если хотите. Вы можете предоставить пользовательский вид наложения для отображения пользовательский интерфейс для фотосъемки и Вы можете начать прием картинки из вашего кода. Ваш обычай представление наложения может быть отображено в дополнение или вместо элементы управления по умолчанию, предоставляемые изображением интерфейс выбора.

Но у меня все еще есть вопрос, как мы можем управлять продолжительностью захвата видео?

...