Перейти к основному содержимому

Стабилизация видео

AIBudsVideoStabilization — необязательный плагин постобработки, который преобразует поддерживаемую составную шестиосевую запись в стабилизированный MP4, сохраняя загруженный оригинал.

Это не настройка камеры устройства и не стабилизация предпросмотра в реальном времени. Обработка начинается после того, как импорт медиафайла создаст локальный файл.

Animated flow map

Стабилизация после импорта

Загруженный оригинал остаётся надёжным резервным вариантом, пока подходящее шестиосевое видео проходит необязательную обработку.

Импорт

Загруженный оригинал

Сохранить загруженный файл как надёжный резервный вариант.

Проверка

Проверить запись

Проверить метаданные и поддерживаемые шестиосевые данные.

Необязательная обработка

Стабилизировать видео

Создать производный файл, не заменяя оригинал.

Предпочтительный результат

Стабилизированный MP4

Для воспроизведения выбрать проверенный стабилизированный файл.

Надёжный резерв

Использовать оригинал

Использовать оригинал, если обработка пропущена или завершилась ошибкой.

  • Загруженный оригиналcontinues toПроверить запись
  • Проверить записьподходитСтабилизировать видео
  • Стабилизировать видеоcontinues toСтабилизированный MP4
  • Проверить записьне обработаноИспользовать оригинал
  • Стабилизировать видеоошибкаИспользовать оригинал
Ошибка стабилизации влияет на производный файл, но не отменяет уже завершённую загрузку.

Границы процесса

AIBuds координирует импорт и вызывает зарегистрированный VideoStabilizationPlugin. Встроенную реализацию предоставляет AIBudsVideoStabilization. AIBudsAllInOne регистрирует её при инициализации набора; при модульной интеграции регистрацией должно явно управлять приложение.

Модуль также предоставляет VideoStabilizer для обработки уже локальной составной записи без передачи с устройства. Сохраняйте возвращённый VideoStabilizationTask до завершения, чтобы задачу можно было отменить.

Реализация с помощью AI

Разработка с AI

Реализуйте этот сценарий с AI

Используйте официальный навык «Импорт медиа с AIBuds» и адаптируйте сценарий к приложению.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/import-aibuds-media. Используйте этот навык, чтобы реализовать «Импорт медиа с AIBuds» в данном iOS-проекте и проверить результат.
Открыть официальный навык

Выбор места обработки

Используйте обработку SDK, если импорт и стабилизация должны быть единой согласованной операцией. Отключите её, если продукт использует другой локальный или серверный процессор. Не определяйте пригодность только по расширению: плагин проверяет локальный файл и MediaFileInfoModel.

Сохраняйте оригинал

По контракту плагин не должен заменять или удалять входной файл. При успехе выбирайте производный файл, иначе — загруженный оригинал:

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

Не считайте ошибку стабилизации ошибкой загрузки. Показывайте передачу и стабилизацию как отдельные этапы и храните состояние каждого файла.

Интерпретация состояния

СостояниеЗначение для продукта
notRequiredФайл не шестиосевой; используйте оригинал.
pendingОжидание обработки.
stabilizedОбработка завершена; предпочитайте stabilizedFileURL.
pluginUnavailableПлагин не зарегистрирован; сохраните оригинал.
skippedПлагин не может обработать файл; сохраните оригинал.
failedОшибка обработки; покажите ошибку и сохраните оригинал при наличии.
disabledПриложение управляет обработкой самостоятельно.

См. StabilizationStatus. Не выводите отсутствующее состояние только из наличия результата.

Баланс качества и ресурсов

Встроенная конфигурация использует trimRatio = 0.1, вычисляет битрейт при averageBitRate = 0 и выбирает automatic. Автоматический режим предпочитает экономичный по памяти движок гироскоп/Metal и может переключиться на AWEIS, если метаданные гироскопа или Metal недоступны. Также доступны калиброванное фокусное расстояние, сопоставление осей, временное смещение датчика, сглаживание гироскопа, радиус AWEIS и управление выводом в консоль. Более сильное кадрирование уменьшает область изображения, а повышенный битрейт требует больше места и пропускной способности. Проверяйте настройки в типичных условиях.

Обрабатывайте подходящие файлы последовательно, пока тестирование не подтвердит безопасность параллельной работы. Отделяйте прогресс файла (0.0...1.0) от номера и размера пакета, ограничивайте частоту обновления интерфейса и делайте отмену идемпотентной. Во время обработки приложение может одновременно хранить оригинал, промежуточный и итоговый файлы.

Контрольный список хранения

  • Необязательный модуль и ресурс лицензии включены в сборку.
  • Модульная инициализация регистрирует один выбранный плагин.
  • Все состояния стабилизации представлены в продукте.
  • Воспроизведение предпочитает стабилизированный файл и использует оригинал как резерв.
  • Передача, обработка файла и завершение пакета остаются отдельными этапами.
  • При отмене сохраняются пригодные результаты и оригиналы.
  • Длинные видео проверены на использование хранилища, памяти, тепловую нагрузку и прерывания.
  • Временные и сохранённые медиа соответствуют политике конфиденциальности и удаления.