전체 글
-
Exporting video to alternative formatsiOS Swift/애플 문서 한글화 2023. 6. 7. 19:16
Article 비디오를 다른 포맷으로 내보내기 기존동영상 파일을 다른 형식으로 변환 Overview 기존 동영상 파일을 다른 장치와 호환되는 형식으로 변환하려면 기존 파일의 내용을 기반으로 새 동영상 파일을 생성해야 합니다. 저장된 비디오의 형식을 변경할 수는 없지만 이 문서에 설명된 단계에 따라 원하는 형식으로 새 파일을 만들 수 있습니다. Tip 앱이 비디오 캡처에서 직접 동영상을 저장할 수 있는 경우 Recording movies in alternative formats를 참조하여 기본 포맷을 수정하는 게 더 효율적입니다. 요청된 포맷으로 새 비디오 내보내기 비디오를 다른 형식으로 내보내려면 AVAset 동영상 파일로 다음 단계의 작업을 수행해야 합니다. Export Presets 리스트에서 내보낼..
-
Loading media data asynchronouslyiOS Swift/애플 문서 한글화 2023. 6. 7. 18:47
Article 이 문서는 Loding media data asynchronously 애플 문서를 한글화 합니다. 비동기적인 미디어 데이터 로딩 언어 수준의 동시성 기능을 사용하여 미디어 데이터를 효율적으로 로드하는 반응형 앱 빌드 Overview AVFoundation은 AVAsset 클래스를 사용하여 동영상을 모델링합니다. 에셋 생성은 데이터가 필요할 때까지 미디어 로드를 연기하기 때문에 가벼운 작업입니다. 에셋이 데이터를 로드하는 데 걸리는 시간은 미디어 크기, 로컬 장치 기능 및 원격 네트워크 조건을 비롯한 요인에 따라 다릅니다. 호출 스레드를 차단하지 않으려면 미디어 데이터를 비동기적으로 로드해야 합니다. important iOS 16, tvOS 16, MacCatalyst 16 및 macOS 1..
-
VTDecompressionSession을 이용한 H.264 비디오 코덱iOS Swift 2023. 6. 7. 17:34
이전 글에서 네트워크를 통해 Elementray Stream 형식으로 들어온 NAL 유닛을 CMSampleBuffer로 변환하는 과정을 보았습니다. 이 샘플 버퍼에는 H.264로 압축된 영상이 있는데 해당 영상은 VTDecompressionSession을 이용해 직접 압축을 해제할 수 있습니다. 이를 통해 MetalKit을 이용해 화면에 영상을 출력할 수 있습니다. 이번에는 VTDecompression을 이용해 H.264 디코더를 구현하는 방법에 대해 살펴보겠습니다. VTDecompression 생성 func VTDecompressionSessionCreate( allocator: CFAllocator?, formatDescription videoFormatDescription: CMVideoFormat..
-
iOS 에서 H.264 Elementary Stream to MPEG4 포맷으로 변환iOS Swift 2023. 6. 7. 16:41
RTP로 H.264 영상을 수신하게 되면 iOS는 해당 스트림을 재생할 수 없습니다. iOS는 MPEG-4 포맷의 데이터를 CMSampleBuffer 형태로 관리하는 데 이를 위해서는 RTP로 수신된 데이터의 NALU을 파싱해 해당 CMSampleBuffer 형태로 변환해 주어야 합니다. 우선 CMSampleBuffer에 대해서 살펴 보겠습니다. CMSampleBuffer CMSampleBuffer 샘플버퍼는 미디어 파이프라인을 통해 샘플데이터를 이동하는데 사용하는 CoreFoundation 객체입니다. CMSampleBuffer 인스턴스에는 특정 미디어 타입의 압축되거나 압축되지 않은 샘플이 하나 이상 포함되어 있습니다. 해당 샘플 버퍼가 포함할 수 있는 객체는 CMBlockBuffer, CVImage..
-
BLE 프로토콜 구조iOS Swift 2023. 6. 7. 13:41
BLE 프로토콜은 세 개의 주요 파트로 구성 되는데 각각 application, host, controller 라고 부릅니다. 이 블럭 내에는 별개의 레이어로 이루어 집니다. BLE 프로토콜 레이어 PHY (Physical Layer) 물리 계층(PHY)은 실제 블루투스 무선 라디오 주파수를 이용해 통신을 하는 계층으로 아날로그 신호와 디지털 신호를 변조/복조하는 회로를 포함합니다. 기본적으로 2.4GHz 신호를 40개의 채널로 나누어 통신하는 데 그 중 세 채널은 Advertising 을 위해 나머지는 Data 전송을 위해 사용됩니다. Link Layer 링크 계층은 물리 계층과 인터페이스 하는 부분으로 블루투스의 저전력 사양을 준수하기 위한 타이밍 요구 사항이나 무선 상태를 관리하는 역할을 합니다. ..
-
Core Buletooth 사용하기SwiftUI 2023. 6. 6. 20:52
Core Bluetooth 프레임워크는 앱이 저전력을 지원하거나 흔히 클래식이라고 부르는 BR/EDR 장비와 통신을 지원하기 위한 프레임워입니다. 중요한 점은 Core Bluetooth 에 클래스는 상속을 받아 재정의를 하면 안된다고 공식 문서에 나와 있습니다. 여기서는 iOS 디바이스로 주변 불루투스 장비를 검색하는 SwiftUI 앱을 구현해 보겠습니다. 우선 BLE에 대해 간단히 살펴 보겠습니다. BLE는 Bluetooth Low Energy 의 약자로 저 전력 모드를 지원하는 블루투스를 의미합니다. 이 후 기존의 블루투스 관련 프로토콜은 클래식 이라는 이름으로 사용되고 있습니다. 이전 클래식 버전이 저 지연과 고 데이터 전송을 위해 발전되어 왔다면 BLE는 얼마나 적은 전력을 소모하느냐는 관점에서 ..
-
NFCNDEFReaderSessioniOS Swift/애플 문서 한글화 2023. 6. 6. 17:36
Class 이 문서는 애플 공식 문서 NFCNDEFReaderSession 을 한글화 하였습니다. NFCNDEFReaderSession NDEF(NFC 데이터 교환 포맷) 태그 감지를 위한 리더 세션 Declaration class NFCNDEFReaderSession : NFCReaderSession Overview NFCReaderSession 과 마찬가지로 한 번에 하나의 NFC NDEF 판독기 세션만 시스템에서 활성화될 수 있습니다. 추가 세션을 생성하면 시스템은 세션을 대기열에 넣고 선입선출(FIFO) 순서로 처리합니다. Topics 세션 생성 init(delegate: NFCNDEFReaderSessionDelegate, queue: dispatch_queue_t?, invalidateAfte..
-
Core NFCiOS Swift/애플 문서 한글화 2023. 6. 6. 17:24
이 문서는 애플 공식 문서 Core NFC 를 한글화한 문서입니다. framework Core NFC NFC 태그 감지, NDEF 데이터를 포함하고 있는 메시지 읽기, 쓰기 가능한 태그에 데이터 저장 Overview 앱은 사용자의 물리적 환경 안에서 실제 개체에 대한 더 많은 정보를 태그를 읽어 사용자에게 제공할 수 있습니다. CoreNFC를 사용하면 NFC Data Exchange Format(NDEF) 의 데이터가 포함된 유형 1 ~ 5의 근거리 무선 통신(NFC) 태그를 읽을 수 있습니다. 예를 들어 앱은 상점에서 찾은 제품이나 박물관에서 방문한 전시회에 대한 정보를 사용자에게 제공할 수 있습니다. 또한 앱은 데이터를 태그에 기록할 수도 있고, ISO 7816, ISO 15693, FeliCa™ 과..