Стабилизация видео
AIBudsVideoStabilization — необязательный плагин постобработки, который преобразует поддерживаемую составную шестиосевую запись в стабилизированный MP4, сохраняя загруженный оригинал.
Это не настройка камеры устройства и не стабилизация предпросмотра в реальном времени. Обработка начинается после того, как импорт медиафайла создаст локальный файл.
Стабилизация после импорта
Загруженный оригинал остаётся надёжным резервным вариантом, пока подходящее шестиосевое видео проходит необязательную обработку.
Загруженный оригинал
Сохранить загруженный файл как надёжный резервный вариант.
Проверить запись
Проверить метаданные и поддерживаемые шестиосевые данные.
Стабилизировать видео
Создать производный файл, не заменяя оригинал.
Стабилизированный MP4
Для воспроизведения выбрать проверенный стабилизированный файл.
Использовать оригинал
Использовать оригинал, если обработка пропущена или завершилась ошибкой.
- Загруженный оригиналcontinues toПроверить запись
- Проверить записьподходитСтабилизировать видео
- Стабилизировать видеоcontinues toСтабилизированный MP4
- Проверить записьне обработаноИспользовать оригинал
- Стабилизировать видеоошибкаИспользовать оригинал
Границы процесса
AIBuds координирует импорт и вызывает зарегистрированный VideoStabilizationPlugin. Встроенную реализацию предоставляет AIBudsVideoStabilization. AIBudsAllInOne регистрирует её при инициализации набора; при модульной интеграции регистрацией должно явно управлять приложение.
Модуль также предоставляет VideoStabilizer для обработки уже локальной составной записи без передачи с устройства. Сохраняйте возвращённый VideoStabilizationTask до завершения, чтобы задачу можно было отменить.
Реализация с помощью AI
Реализуйте этот сценарий с AI
Используйте официальный навык «Импорт медиа с AIBuds» и адаптируйте сценарий к приложению.
Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/import-aibuds-media. Используйте этот навык, чтобы реализовать «Импорт медиа с AIBuds» в данном iOS-проекте и проверить результат.Выбор места обработки
Используйте обработку SDK, если импорт и стабилизация должны быть единой согласованной операцией. Отключите её, если продукт использует другой локальный или серверный процессор. Не определяйте пригодность только по расширению: плагин проверяет локальный файл и MediaFileInfoModel.
Сохраняйте оригинал
По контракту плагин не должен заменять или удалять входной файл. При успехе выбирайте производный файл, иначе — загруженный оригинал:
- Swift
- Objective-C
let playableURL = importedFile.stabilizedFileURL ?? importedFile.localFileURLNSURL *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) от номера и размера пакета, ограничивайте частоту обновления интерфейса и делайте отмену идемпотентной. Во время обработки приложение может одновременно хранить оригинал, промежуточный и итоговый файлы.
Контрольный список хранения
- Необязательный модуль и ресурс лицензии включены в сборку.
- Модульная инициализация регистрирует один выбранный плагин.
- Все состояния стабилизации представлены в продукте.
- Воспроизведение предпочитает стабилизированный файл и использует оригинал как резерв.
- Передача, обработка файла и завершение пакета остаются отдельными этапами.
- При отмене сохраняются пригодные результаты и оригиналы.
- Длинные видео проверены на использование хранилища, памяти, тепловую нагрузку и прерывания.
- Временные и сохранённые медиа соответствуют политике конфиденциальности и удаления.