2016-01-06 2 views
12

Я использую AVCaptureSession для захвата и записи видео.Может ли AVCaptureSession использовать пользовательское разрешение

Мне нужно записать видео в соотношении 4: 3 и с хорошим разрешением.

Есть ли способ указать пользовательское разрешение при захвате с использованием AVCaptureSession?

Я попытался использовать собственные пресеты, но проблема в том, что мне нужно захватить с соотношением 4: 3, и почти все пресеты - 16: 9. и те, которые имеют 4: 3, имеют очень низкое разрешение.

Я не могу по-другому изменить свой пресет на пользовательский, а что, если мне нужно захватить видео 4: 3 с лучшим разрешением? Есть идеи?

+0

У вас есть дополнительная информация? какие предустановленные параметры вам удалось попробовать? –

+0

сделал попытку AVCaptureSessionPreset640x480? –

+0

@ Mr.T Мне нужно лучшее разрешение – Eyal

ответ

8

AVCaptureSession пресетов покрывает только малую часть возможностей камеры устройства (те, в которых большинство приложений нуждаются в быстром, легком доступе). Для более мелкомасштабного управления - например, для выбора разрешения захвата, не предусмотренного предварительной настройкой сеанса, вместо этого вам необходимо использовать форматы захвата.

Посмотрите на имущество formats устройства захвата, массив из AVCaptureDeviceFormat объектов. Перечислите этот массив до тех пор, пока не найдете тот, размеры которого вы хотите. Для того, чтобы получить размеры, обратите внимание на формат Базовой CMFormatDescription:

let fdesc = format.formatDescription 
let dims = CMVideoFormatDescriptionGetDimensions(fdesc) 
NSLog("%d x %d", dims.width, dims.height) 

После того, как вы нашли нужный формат, заблокировать устройство для настройки и установить его activeFormat:

if try device.lockForConfiguration() { 
    device.activeFormat = myChosenFormat 
    // set up other things like activeVideoMinFrameDuration if you want 
    device.unlockForConfiguration() 
} 

Вы можете узнать подробнее о настройке сеанса захвата с помощью AVCaptureDeviceFormat в Apple programming guide и the WWDC2013 session, который ввел форматы устройств в iOS 7.0. (Большая часть того, что вы найдете по этой теме, нацелена на замедленное видео, съемку неподвижных изображений во время видео и другие вещи, которые вы не можете сделать с помощью пресетов сеанса, но это не единственные вещи, которые вы можете делать с форматами захвата.)

+0

привет спасибо за ответ, когда печатает тусклые швы, что новых размеров нет, но много дубликатов , и я не нашел способ создать новый формат (не уверен, что это возможно) – Eyal

1

Просто выполните запись с заданным соотношением сторон и используйте AVMutableComposition, чтобы обрезать выходное видео с требуемым соотношением сторон: если вы настроите слой предварительного просмотра на маска до 4: 3, это будет выглядеть без проблем пользователь.

Факс: Факс:

 Смежные вопросы

  • Нет связанных вопросов^_^