본문으로 건너뛰기

동영상 흔들림 보정

AIBudsVideoStabilization은 지원되는 복합 6축 녹화 파일을 흔들림 보정된 MP4로 변환하면서 다운로드한 원본을 보존하는 선택적 후처리 플러그인입니다.

기기의 카메라 설정이 아니며 실시간 미리보기에도 적용되지 않습니다. 미디어 파일 가져오기에서 로컬 파일을 만든 뒤 처리가 시작됩니다.

Animated flow map

가져오기 후 흔들림 보정 파이프라인

처리 가능한 6축 동영상이 선택적 후처리를 거치는 동안에도 다운로드한 원본은 안전한 대체 파일로 유지됩니다.

가져오기

다운로드한 원본

다운로드한 원본을 안전한 대체 파일로 보관합니다.

처리 가능 여부

녹화 파일 검사

메타데이터와 지원되는 6축 녹화 데이터를 확인합니다.

선택적 처리기

동영상 흔들림 보정

원본을 교체하지 않고 파생 파일을 만듭니다.

우선 출력

흔들림 보정 MP4

검증된 흔들림 보정 결과를 재생에 우선 사용합니다.

안전한 대체 경로

원본 사용

처리를 건너뛰거나 실패하면 원본을 사용합니다.

  • 다운로드한 원본continues to녹화 파일 검사
  • 녹화 파일 검사처리 가능동영상 흔들림 보정
  • 동영상 흔들림 보정continues to흔들림 보정 MP4
  • 녹화 파일 검사처리하지 않음원본 사용
  • 동영상 흔들림 보정실패원본 사용
흔들림 보정 실패는 파생 파일 결과에만 영향을 주며, 이미 완료된 다운로드의 성공 여부는 바꾸지 않습니다.

파이프라인 경계

AIBuds가 가져오기 작업을 조정하고 등록된 VideoStabilizationPlugin을 호출합니다. AIBudsVideoStabilization은 내장 구현을 제공합니다. AIBudsAllInOne은 전체 SDK 초기화 중 이를 등록하지만, 모듈식 통합에서는 앱이 등록을 명시적으로 관리해야 합니다.

모듈은 기기 전송 없이 이미 로컬에 있는 복합 녹화를 처리하는 VideoStabilizer도 제공합니다. 작업을 취소할 수 있도록 완료될 때까지 반환된 VideoStabilizationTask를 유지하세요.

AI를 활용해 구현

AI로 구현

AI로 이 워크플로 구현

공식 “AIBuds에서 미디어 가져오기” 스킬을 사용해 앱에 맞게 구현하세요.

https://docs-aibuds.github.io/ko/skills/import-aibuds-media을 읽고 지침을 따르세요. 이 스킬로 “AIBuds에서 미디어 가져오기”을 이 iOS 프로젝트에 구현하고 검증하세요.
공식 스킬 보기

처리 위치 결정

가져오기와 흔들림 보정을 하나의 연계 작업으로 처리하려면 SDK 관리 처리를 사용하세요. 제품에서 별도의 로컬 또는 서버 처리기를 운영한다면 비활성화합니다. 파일 확장자만으로 처리 가능 여부를 판단하지 마세요. 플러그인이 로컬 파일과 MediaFileInfoModel을 검사합니다.

원본 보존

플러그인은 입력 파일을 교체하거나 삭제해서는 안 됩니다. 성공하면 파생 파일을 우선 사용하고, 그렇지 않으면 다운로드한 원본을 사용합니다.

Swift
let playableURL = importedFile.stabilizedFileURL ?? importedFile.localFileURL

흔들림 보정 실패를 다운로드 실패로 처리하지 마세요. 전송과 흔들림 보정을 별도 단계로 표시하고 파일별 상태를 유지합니다.

상태 해석

상태제품에서의 의미
notRequired6축 파일이 아니므로 원본을 사용합니다.
pending처리를 기다리는 중입니다.
stabilized처리에 성공했으므로 stabilizedFileURL을 우선 사용합니다.
pluginUnavailable등록된 플러그인이 없으므로 원본을 유지합니다.
skipped플러그인이 이 파일을 처리할 수 없으므로 원본을 유지합니다.
failed처리에 실패했습니다. 오류를 표시하고, 사용할 수 있으면 원본을 유지합니다.
disabled앱이 처리를 직접 담당하도록 선택했습니다.

StabilizationStatus을 참고하세요. 출력 파일의 유무로 누락된 상태를 추정하지 마세요.

품질과 리소스의 균형

내장 기본 설정은 trimRatio = 0.1을 사용하고 averageBitRate = 0이면 비트 전송률을 산정하며 automatic을 선택합니다. 자동 모드는 메모리 사용량이 낮은 자이로/Metal 엔진을 우선하고, 자이로 메타데이터나 Metal을 사용할 수 없으면 AWEIS로 대체할 수 있습니다. 설정에는 보정된 초점 거리, 축 매핑, 센서 시간 오프셋, 자이로 평활화, AWEIS 반경 및 콘솔 출력 제어도 포함됩니다. 크롭은 화면 영역을 줄이고 높은 비트 전송률은 저장 공간과 처리량을 더 사용합니다. 대표적인 조건에서 사용자 설정을 검증하세요.

병렬 처리가 안전하다고 테스트로 확인하기 전까지는 처리 가능한 파일을 순차적으로 처리하세요. 파일별 진행률(0.0...1.0)과 배치 순번 및 개수를 구분하고, UI 업데이트 빈도를 제한하며, 취소 작업은 여러 번 호출해도 안전하게 만듭니다. 처리 중에는 원본, 부분 결과, 최종 파일을 동시에 보유할 수 있습니다.

파일 보존 점검 목록

  • 선택적 모듈과 라이선스 리소스가 앱에 포함되어 있습니다.
  • 모듈식 초기화에서 사용할 플러그인 하나만 등록합니다.
  • 모든 흔들림 보정 상태를 표현합니다.
  • 재생 시 흔들림 보정 결과를 우선하고 원본으로 대체할 수 있습니다.
  • 전송, 파일별 처리, 배치 완료를 서로 구분합니다.
  • 취소 후에도 사용 가능한 결과와 원본을 보존합니다.
  • 긴 동영상에서 저장 공간, 메모리, 발열, 중단 상황을 테스트합니다.
  • 임시 및 보관 미디어가 개인정보 보호와 삭제 정책을 따릅니다.