我使用AVCaptureSession
來捕捉和錄製視頻。AVCaptureSession可以使用自定義分辨率
我需要以4:3的比例錄製視頻,並且分辨率很好。
當使用AVCaptureSession
進行捕捉時,是否有指定自定義分辨率的方法?
我試過使用原生預設,但問題是我需要以4:3的比率捕捉,而幾乎所有的預設都是16:9。而那些4:3的分辨率非常低。
我不能以任何其他方式將預設更改爲自定義預設,如果我需要捕獲更高分辨率的4:3視頻,該怎麼辦?有任何想法嗎?
我使用AVCaptureSession
來捕捉和錄製視頻。AVCaptureSession可以使用自定義分辨率
我需要以4:3的比例錄製視頻,並且分辨率很好。
當使用AVCaptureSession
進行捕捉時,是否有指定自定義分辨率的方法?
我試過使用原生預設,但問題是我需要以4:3的比率捕捉,而幾乎所有的預設都是16:9。而那些4:3的分辨率非常低。
我不能以任何其他方式將預設更改爲自定義預設,如果我需要捕獲更高分辨率的4:3視頻,該怎麼辦?有任何想法嗎?
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()
}
你可以找到更多關於通過Apple的programming guide和the WWDC2013 session中的AVCaptureDeviceFormat
來配置捕獲會話,該會話在iOS 7.0中引入了設備格式。 (大多數關於此主題的內容都針對慢動作視頻,在視頻中採用高分辨率靜止圖像以及其他無法使用會話預設的功能,但這些並不是您可以做的唯一的事情)
嗨感謝您的答案,當打印暗淡它接縫,沒有新的尺寸,但很多重複。我沒有找到一種方法來創建一個新的格式(不知道它可能) – Eyal
只需按給定的寬高比進行錄製,然後使用AVMutableComposition
將輸出視頻裁剪爲所需的寬高比:如果將預覽圖層調整爲4:3,則對於用戶。
你能提供更多信息嗎?你試過什麼預設選項? –
你試過AVCaptureSessionPreset640x480嗎? –
@ Mr.T我需要更好的分辨率 – Eyal