스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
내 macOS 앱에 연속성 카메라 활용하기
연속성 카메라를 통해 모든 Mac 앱에서 iPhone을 외부 카메라로 사용할 수 있는 방법을 확인하세요. 비디오 화상 회의 소프트웨어 빌드, 카메라를 사용한 창작 활동 등에 관계없이 자동 카메라 전환을 통해 앱의 기능을 향상하는 방법을 보여드리겠습니다. 또한 사용자 선호 및 시스템 선호 카메라를 인식하는 방법을 살펴보고, iPhone의 비디오 스트림으로부터 고해상도 및 고품질 사진을 캡처할 수 있는 API 등을 안내하겠습니다. 카메라 캡처에 대해 자세히 알아보려면 WWDC22의 ‘Discover advancements in iOS camera capture(iOS 카메라 캡처의 향상된 기능 살펴보기)'를 시청하시기 바랍니다.
리소스
관련 비디오
WWDC23
WWDC22
WWDC21
-
다운로드
♪ 잔잔한 힙합 연주 음악 ♪ ♪ 안녕하세요 저는 Karen Xing입니다 Camera Software 팀의 엔지니어예요 'Bring Continuity Camera support' 'to your macOS app'에 어서 오세요 이번 세션에서 제일 먼저 설명할 건 Continuity Camera란 무엇인가에 관한 겁니다 다음으로 설명할 건 여러분의 애플리케이션이 Continuity Camera로 자동 카메라 선택 체험을 구축할 수 있는 방법입니다 그리고 마지막으로 Continuity Camera를 위해 macOS 13에서 새로 나온 API입니다 Continuity Camera로 이제 여러분은 iPhone을 웹캠으로 사용할 수 있습니다 셋업은 심리스합니다 자신의 iPhone을 Mac에 가까이 가져오기만 하면 됩니다 무선으로 작동되니 여러분은 통화에 빨리 합류할 수 있습니다 여러분의 iPhone은 몇 가지 조건 하에서 외부 카메라 및 마이크로 Mac에 나타날 겁니다 첫째, macOS 13과 iOS 16을 돌리고 있어야 합니다 Mac과 iPhone 모두 2 요인 인증을 사용해서 Apple ID에 로그인되어 있어야 합니다 유선 연결의 경우 iPhone은 USB를 통해 Mac에 연결되어 있어야 합니다 또는 무선 연결의 경우 두 기기는 인근에 있어야 하고 Bluetooth와 Wi-Fi가 모두 켜져 있어야 합니다 자세히 설명하기보다는 곧바로 보여드리겠습니다 Continuity Camera가 기기에서 얼마나 마법처럼 보이는지를요 여기에 MacBook Pro와 iPhone 13 Pro가 있습니다 두 기기 모두 동일한 Apple ID로 로그인되어 있습니다
iPhone은 제 MacBook에 부착된 스탠드에 놓여 있습니다 오늘 저는 제 동료 Eric과의 영상 회의 통화에 합류해서 Zoom에서 Continuity Camera를 사용하는 방법을 보여드리겠습니다
이 앱은 내장 카메라를 사용해서 먼저 열린 다음 온보딩 대화 창이 나타나는데요 이 대화 창은 새 카메라로 할 수 있는 걸 설명해줍니다 대화 창은 여러분의 Mac이 macOS 13으로 업그레이드된 후 한 번 뜹니다 여러분이 카메라 애플리케이션을 처음으로 열고 Continuity Camera 조건을 갖춘 iPhone이 있을 때요
안녕하세요, Eric Karen, 반가워요 온보딩 대화 창이 시스템에 나온 다음에 Continuity Camera와 마이크 기기들이 모든 애플리케이션에서 이용 가능하게 됩니다
화면을 바꿔 이 카메라를 써서 어때 보이는지 알아보죠
Continuity Camera는 iPhone의 후면 카메라 시스템을 써서 여러분이 iPhone에서 예상하는 것과 동일한 영상 품질을 얻게 해줍니다 그리고 그건 iPhone의 네 방향 모두에서 작동합니다
세로 방향은 가로 방향과 비교해서 더욱 확대된 시야를 제공해줍니다
Continuity Camera는 예전에 웹캠으론 절대 불가능했던 걸 가능하게 해주기도 합니다 거기엔 새로운 영상 효과들 몇 가지가 포함됩니다 여러분은 Center Stage와 Portrait video effects가 이미 낯익을 수 있는데요 iOS 14.5와 macOS 12.3에서 도입된 거죠 낯선 분들에게 제가 강력하게 추천하는 건 WWDC 2021 세션, 'What's new in Camera Capture'을 시청해서 시스템 영상 효과와 애플리케이션에서 그것과 상호 작용하는 방법을 배우는 겁니다 그럼 Control Center로 가서 Continuity Camera에 있는 영상 효과를 활성화하겠습니다
Center Stage는 장면 속에서 움직이는 사람을 프레임 안에 두죠
Portrait는 배경을 흐릿하게 해서 초점을 자연스럽게 여러분한테 둡니다 Portrait는 Apple 실리콘 Mac에서만 지원되나 Continuity Camera로 그건 이제 모든 Intel 및 Apple 실리콘 Mac에서 이용 가능합니다
Studio Light는 macOS 13에서 이용 가능한 새 시스템 영상 효과입니다 그건 iPhone 12와 이후 버전을 사용할 때 Continuity Camera의 지원을 받습니다 화면에 자신의 제일 좋은 모습을 보여주고 싶으면 이걸 활성화하세요 그건 놀라운 조명 효과를 제공하는데 배경을 어둡게 하고 얼굴을 밝게 해줍니다 Studio Light 까다로운 조명 상황에 딱 좋습니다 가령 창문 앞에 있을 때처럼요 제가 명확한 비교를 위해 각각의 영상 효과를 분리해서 보여드리고 있지만 모두 함께 작동 효과가 좋습니다
그리고 효과들이 어떤 조합으로든 동시에 적용될 수 있습니다
이건 제가 Continuity Camera에서 꼭 보여드리고 싶은 또 하나의 흥미진진한 기능입니다 여러분이 함께 작업하면서 책상에 있는 걸 공유하고 싶으면 이제 Desk View를 쓸 수 있습니다 Desk View 앱에는 macOS 13에 들어 있고 바로 여기의 Control Center에서 열 수 있습니다
그건 여러 복잡한 장비가 필요 없는 오버헤드 카메라 구성처럼 작동됩니다 iPhone은 Ultra Wide 카메라 피드를 둘로 분리해서 여러분의 책상과 얼굴 모두를 동시에 보여줘서 여러분이 학교 프로젝트를 공동으로 작업하거나 친구에게 뜨개질을 가르칠 수 있게 해줍니다 그건 Ultra Wide 각도 카메라의 확장된 수직 시야를 활용하고 잘린 프레임에 원근 왜곡 보정을 적용한 다음 프레임을 회전시켜서 이 Desk View를 만듭니다 여러분은 대부분의 영상 회의 앱에서 이용 가능한 공유 창 기능을 사용해서 Desk View 피드를 공유하는데 메인 비디오 카메라 피드와 병행해서 돌릴 수 있습니다
Desk View는 단독으로도 사용할 수 있습니다 메인 카메라에서의 동시 스트리밍이 없는 채로요 하지만 Desk View와 메인 카메라 모두에서 스트리밍을 할 때는 메인 카메라의 Center Stage를 활성화해서 더 좋은 프레이밍으로 얼굴과 몸을 캡처하는 걸 추천합니다 그 기능은 iPhone이 가로 또는 세로 방향으로 놓일 때 지원됩니다 세로 방향이 최고의 다용도성을 제공합니다 수직 시야가 더 넓으니까요 Desk View 카메라 API도 있어서 여러분의 애플레케이션에 어울리는 맞춤형 통합을 제공합니다 그 API 얘기는 잠시 후에 하겠습니다 Mac에서의 영상 회의 통화 도중 우린 여러분이 세션에 집중하길 원하지만 동시에 중요한 걸 놓치지 않길 바라기도 합니다 Continuity Camera가 사용 중일 때 휴대폰의 모든 알림은 무음으로 바뀌고 중요한 통화 알림은 여러분의 Mac으로 전달됩니다 안녕히 계세요, Eric 잘 있어요, Karen
방금 설명했던 건 여러분 애플리케이션에 새 코드를 한 줄도 작성하지 않고 사용자들이 이용 가능한 수많은 멋진 체험이었습니다 그런데 새 API들의 채택으로 여러분은 Continuity Camera 체험을 여러분의 앱에서 더욱 매혹적이고 세련되게 만들 수 있습니다 이제 대부분의 사용자가 Mac에서 최소 두 개의 카메라 기기를 갖게 될 테니 우린 카메라를 관리할 방법을 더 깊이 생각해봤습니다 macOS 13 이전까지는 기기가 연결되어 있지 않거나 시스템에 더 좋은 카메라를 이용할 수 있게 되면 애플리케이션에는 대체로 수동 선택 단계가 필요합니다 우린 애플리케이션에서 카메라가 자동으로 바뀔 수 있게 해서 고객들에게 마법 같은 체험을 선사하고 싶습니다 우린 AVFoundation 프레임워크에 두 가지 API를 새롭게 추가해서 여러분의 앱에서 다음의 기능을 구축할 수 있게 했습니다 AVCaptureDevice의 클래스 속성들인 userPreferredCamera와 systemPreferredCamera입니다 userPreferredCamera는 읽기/쓰기 속성입니다 사용자가 애플리케이션에서 카메라를 고를 때마다 여러분은 이 속성을 정해야 합니다 이는 AVCaptureDevice 클래스가 사용자의 선호도를 알고 앱 실행 및 재부팅 전체에 각 애플리케이션에 대한 카메라 목록을 저장하고 그 정보를 사용해서 카메라를 제안하게 해줍니다 그것이 또한 고려하는 건 어떤 카메라가 연결되는지 혹은 분리되는지입니다 이 속성은 키 값 관찰이 가능하고 사용자 선호도를 바탕으로 최선의 선택을 지능적으로 돌려줍니다 가장 최근에 선호됐던 기기의 연결이 끊기면 그건 목록에 있는 이용 가능한 다음 카메라로 자연스럽게 바뀝니다 사용자 선택 이력이 없을 때나 선호되는 기기 중 연결된 게 하나도 없으면 그 속성은 사용할 준비가 되어 있는 카메라 기기를 늘 돌려주려 할 것이고 이전에 스트리밍된 적이 있는 카메라를 우선 처리합니다 시스템에 이용할 수 있는 카메라가 없을 때만 그건 nil을 돌려줍니다 systemPreferredCamera는 읽기 전용 속성입니다 거기에는 userPreferredCamera와 다른 요소들 몇 가지가 포함되어 시스템에 존재하는 카메라 중 최선의 선택을 제안합니다 예를 들어 이 속성은 userPreferredCamera와 다른 값을 돌려줍니다 Continuity Camera가 나타나서 그게 자동으로 선택돼야 한다는 신호를 보낼 때요 그 속성은 내부적으로 기기 중단을 추적해서 중단된 기기보다 그렇지 않은 기기를 우선 선택합니다 이는 다른 카메라로 바꾸는 자동 전환 행동을 구축하는 데 도움이 됩니다 내장 카메라가 MacBook 덮개가 닫혀서 중단된다면요 Continuity Camera는 스스로에 신호를 보내 자동 선택되게 합니다 iPhone이 가로 방향으로 고정 스탠드 위에 놓여 있을 때요 화면은 꺼져 있고 Mac에 USB로 연결되어 있거나 Mac에서 근거리 내에 있습니다 이 상황에서는 기기가 Continuity Camera로 사용돼야 한다는 사용자의 의도는 명확합니다
systemPreferredCamera API를 채택할 때 여러분은 이 속성의 키 값을 늘 관찰하고 그에 따라 AVCaptureSession의 영상 입력 기기를 업데이트해야 합니다 마법 같은 카메라 선택 체험을 선사하기 위해서요 userPreferredCamera와 systemPreferredCamera는 제1자 애플리케이션들에 의해 이미 채택되어 있습니다 이 API를 채택하는 애플리케이션이 점점 늘어나면서 우린 고객들에게 제공할 수 있습니다 Apple 기기들에서의 카메라 선택에 있어 보편적이고 일관된 방식을요 시연을 보여드려서 Continuity Camera로 자동 전환하는 방식이 FaceTime에서 어떤 모습인지 자세히 알려드리겠습니다
여기 FaceTime에서 저는 Automatic Camera Selection 모드에 있습니다 수동과 자동 행동을 모두 제공하길 원하는 애플리케이션의 경우 자동 모드를 활성화하고 비활성화할 UI를 새롭게 추가할 것을 추천합니다
FaceTime은 현재 내장 카메라에서 스트리밍 중입니다 제가 책상에서 휴대폰을 들어 올려 MacBook 뒤 스탠드에 놓으면
FaceTime은 Continuity Camera에서 스트리밍으로 매끄럽게 전환됩니다 그때 새로운 클래스 속성인 systemPreferredCamera가 나옵니다 휴대폰이 스트리밍할 준비가 된 위치에 있을 때 속성 값은 Continuity Camera로 바뀝니다 애플리케이션을 유사한 방식으로 구축하는 게 좋을 수 있습니다 Automatic Camera Selection과 수동 선택 모드를 실행하는 방법에 있어서 제 비결은 다음과 같습니다 Automatic Camera Selection이 켜져 있을 때 systemPreferredCamera 속성의 키 값 관찰을 시작하세요 여러분 세션의 입력 기기를 업데이트해서 그게 바뀔 때마다 systemPreferredCamera를 따르세요 자동 모드에서 우리가 강력 추천하는 건 사용자들이 스스로 카메라를 고를 수 있는 옵션을 계속 제공하는 겁니다 다른 카메라가 선택되면 userPreferredCamera를 그 기기로 정하세요 그런 다음 그건 systemPreferredCamera 속성 값에 반영됩니다 Automatic Camera Selection이 꺼져 있을 때는 systemPreferredCamera 속성의 키 값 관찰을 중단하세요 systemPreferredCamera를 따르는 대신 사용자가 고른 카메라를 수동 모드에 둔 채로 세션의 입력 기기를 여러분은 업데이트해야 합니다 하지만 자동 모드와 동일하게 사용자가 다른 카메라를 고를 때마다 여러분은 userPreferredCamera 속성을 정해야 합니다 그래서 우린 선호 카메라에 대한 사용자의 이력을 유지하고 Automatic Camera Selection 모드로 돌아올 때 적절한 카메라를 제안합니다 userPreferredCamera와 systemPreferredCamera API를 포함시키는 방법의 모범 사례를 알고 싶으면 Continuity Camera Sample이란 신규 샘플 앱을 확인해보세요 Mac에 마법 같은 웹캠 체험을 가져오는 것 외에도 Continuity Camera는 Mac 앱에서 iPhone 전용 카메라 기능들의 힘을 활용할 새로운 기회들도 여러분에게 선사합니다 macOS 13에서 우린 AVCapture API를 몇 가지 추가해서 애플리케이션들이 Continuity Camera 기기를 더 잘 활용할 수 있게 했습니다 우린 iPhone 사진 캡처의 굉장한 품질을 macOS로 가져옵니다 Continuity Camera 덕분이죠 먼저 우린 고해상도 사진 캡처를 지원합니다 전에 macOS는 영상 해상도 수준의 사진 캡처만 지원했습니다 macOS 13부터는 Continuity Camera로 최대 12메가픽셀 사진을 캡처할 수 있습니다 이걸 가능하게 하려면 먼저 이렇게 설정합니다 AVCapturePhotoOutput 객체의 highResolutionCaptureEnabled를 참으로 한 다음 캡처 세션을 시작하고 각각의 캡처에 대한 photoSettings 객체에서 highResolutionPhotoEnabled 속성을 참으로 정합니다 고해상도 사진을 캡처하는 것 외에도 Continuity Camera는 속도와 대비하여 사진 품질을 우선 처리하는 방법의 제어를 지원합니다 먼저 photoOutput 객체에서 최대 사진 품질 우선 순위를 정해서요 그리고 각각의 캡처에 대한 우선 순위를 고르는데 AVCapturePhotoSettings 객체에서 photoQualityPrioritization 속성을 정하는 방식으로요 여러분의 애플리케이션에 적절한 우선 순위를 고르는 걸 자세히 알고 싶으면 다음을 확인해주세요 WWDC 2021의 'Capture high-quality photos' 'using video formats'입니다 또 하나의 사진 관련 기능은 플래시 캡처입니다 여러분은 이제 photoSettings 객체에서 flashMode를 정해서 플래시를 켤지 끌지 자동으로 선택할지를 제어할 수 있습니다 장면과 조명 조건에 따라서요 우린 AVCaptureMetadataOutput도 macOS에서 이용 가능하게 해서 캡처 세션에서 제작한 시간 동반 메타데이터를 처리할 수 있게 합니다 여러분은 이제 iPhone에서 얼굴 메타데이터 객체와 인간 몸 메타데이터 객체를 스트리밍할 수 있습니다 얼굴 메타데이터 객체를 받는 세션을 구성하는 방법을 살펴보죠 적절한 영상 입력 및 출력으로 세션을 구성한 후 여러분은 AVCaptureMetadataOutput을 만들고 addOutput을 호출해서 그걸 세션에 추가해야 합니다 특히 얼굴 메타데이터를 받으려면 출력에 있는 객체 타입 배열이 얼굴 객체 타입을 포함하도록 설정하세요 요청한 메타데이터 타입이 지원되는지 꼭 확인하세요 availableMetadata ObjectTypes 속성을 확인해서요 그리고 대표를 구성해서 메타데이터 회신을 받으세요 세션이 돌아가기 시작한 후 여러분은 실시간으로 산출된 얼굴 메타데이터 객체가 있는 회신을 받을 겁니다 방금 말씀드린 AVCapturePhotoOutput과 AVCaptureMetadataOutput 외에 Continuity Camera는 영상 데이터 출력 영화 파일 출력, AVCapture VideoPreviewLayer도 지원합니다 이건 Continuity Camera가 지원하는 영상 형식의 목록입니다 이 카메라를 애플리케이션에 결합시킬 때 알면 좋은 내용입니다 그건 세 가지의 16 x 9 형식을 지원합니다 640x480부터 1080p까지죠 그리고 하나의 4x3 형식인 1920x1440도요 형식들을 고를 수 있습니다 그것들은 초당 최대 30프레임이나 필요에 따라 60프레임까지 지원합니다 또 하나의 중대한 추가 사항은 Desk View 기기 API입니다 Desk View 카메라는 별도의 AVCaptureDevice로 나와 있습니다 이 기기를 찾는 방법에는 두 가지가 있습니다 첫째는 기기 발견 세션에서 AVCaptureDeviceType DeskViewCamera를 찾아보는 방법입니다 둘째는 여러분이 주요 비디오 카메라의 AVCaptureDevice 객체를 이미 알고 있다면 그 기기의 companionDeskViewCamera 속성을 사용해서 Desk View 기기에 접근할 수 있습니다 이 API는 주요 카메라와 Desk View 기기를 페어링하는 데 도움이 됩니다 주위에 Continuity Camera가 여러 개 있다면요 일단 여러분이 원하는 Desk View 카메라의 AVCaptureDevice 객체를 얻으면 그걸 AVCapture 영상 데이터 출력이나 영화 파일 출력이나 캡쳐 세션의 영상 미리 보기 레이어와 사용할 수 있습니다 다른 카메라 기기에서 할 수 있는 것처럼요 Desk View 기기는 현재 420v 픽셀 형식인 한 가지 스트리밍 형식을 지원합니다 그 형식의 해상도는 1920x1440이고 지원하는 최대 프레임율은 30 fps입니다 세션이 끝났습니다 여러분이 배운 건 Continuity Camera와 macOS에서 마법 같은 카메라 선택을 구축하는 방법과 여러분의 Mac 애플리케이션에서 Continuity Camera를 통합해주는 새 API 몇 가지였습니다 여러분이 이 API들을 채택하는 모습을 보길 기대합니다 WWDC에서 남은 시간 멋지게 보내시길 바랍니다 ♪
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.