वीडियो स्टेबलाइज़ेशन
AIBudsVideoStabilization optional post-processing plugin है। यह downloaded source सुरक्षित रखते हुए supported compound six-axis recording से stabilized MP4 बनाता है।
यह device camera setting नहीं है और live preview को stabilize नहीं करता। Processing तब शुरू होती है जब Media File Import local file बना चुका हो।
Import के बाद stabilization pipeline
Eligible six-axis video optional processing से गुजरता है, जबकि downloaded original सुरक्षित fallback बना रहता है।
Downloaded Source
Downloaded source को सुरक्षित fallback के रूप में रखें।
Recording जाँचें
Metadata और supported six-axis recording data जाँचें।
Video stabilize करें
Source को बदले बिना derivative file बनाएँ।
Stabilized MP4
Playback के लिए verified stabilized output चुनें।
Original file उपयोग करें
Processing skip या fail होने पर original उपयोग करें।
- Downloaded Sourcecontinues toRecording जाँचें
- Recording जाँचेंeligibleVideo stabilize करें
- Video stabilize करेंcontinues toStabilized MP4
- Recording जाँचेंprocess नहीं हुआOriginal file उपयोग करें
- Video stabilize करेंfailureOriginal file उपयोग करें
Pipeline की सीमा
AIBuds import coordinate करता है और registered VideoStabilizationPlugin call करता है। Built-in implementation AIBudsVideoStabilization देता है। AIBudsAllInOne suite initialization में इसे register करता है; modular integration में app को registration संभालना होगा।
Module VideoStabilizer भी देता है, जो device transfer के बिना पहले से local compound recording को process करता है। काम cancel किया जा सके, इसके लिए लौटाए गए VideoStabilizationTask को completion तक retain रखें।
AI की सहायता से लागू करें
इस वर्कफ़्लो को AI से लागू करें
आधिकारिक “AIBuds से मीडिया आयात करें” स्किल से वर्कफ़्लो को अपने ऐप के अनुसार लागू करें।
https://docs-aibuds.github.io/hi/skills/import-aibuds-media को पढ़ें और निर्देशों का पालन करें। इस स्किल से “AIBuds से मीडिया आयात करें” को इस iOS प्रोजेक्ट में लागू करें और परिणाम सत्यापित करें।Processing कहाँ होगी
Import और stabilization को एक coordinated operation रखना हो तो SDK-managed processing उपयोग करें। Product अपना local या server-side processor चलाता हो तो इसे disable करें। Eligibility केवल file extension से तय न करें; plugin local file और MediaFileInfoModel जाँचता है।
Source सुरक्षित रखें
Plugin contract input को replace या remove नहीं करता। सफलता पर derivative output चुनें; अन्यथा downloaded original उपयोग करें:
- Swift
- Objective-C
let playableURL = importedFile.stabilizedFileURL ?? importedFile.localFileURLNSURL *playableURL = importedFile.stabilizedFileURL ?: importedFile.localFileURL;Stabilization failure को download failure न मानें। Transfer और stabilization को अलग phases दिखाएँ और हर file की state अलग रखें।
Status का अर्थ
| Status | Product में अर्थ |
|---|---|
notRequired | Six-axis file नहीं है; original उपयोग करें। |
pending | Processing की प्रतीक्षा है। |
stabilized | Processing सफल; stabilizedFileURL चुनें। |
pluginUnavailable | Plugin registered नहीं है; original रखें। |
skipped | Plugin file process नहीं कर सकता; original रखें। |
failed | Processing fail हुई; error दिखाएँ और उपलब्ध original रखें। |
disabled | App स्वयं processing संभालता है। |
StabilizationStatus देखें। Output मौजूद होने से missing status का अनुमान न लगाएँ।
Quality और Resources का संतुलन
Built-in default configuration trimRatio = 0.1 उपयोग करती है, averageBitRate = 0 पर bitrate निकालती है और automatic चुनती है। Automatic mode कम-memory वाले gyro/Metal engine को प्राथमिकता देता है और gyro metadata या Metal उपलब्ध न होने पर AWEIS fallback कर सकता है। Configuration में calibrated focal length, axis mapping, sensor time offset, gyro smoothing, AWEIS radius और console-output controls भी हैं। अधिक crop image area घटाता है और अधिक bitrate storage तथा throughput बढ़ाता है। Custom settings को representative conditions पर validate करें।
Parallel processing सुरक्षित साबित न होने तक eligible files क्रम से process करें। Per-file progress (0.0...1.0) को batch index/count से अलग रखें, UI updates throttle करें और cancellation idempotent बनाएँ। Processing के दौरान app original, partial और final files एक साथ रख सकता है।
फ़ाइल बनाए रखने की checklist
- Optional module और license resource package में हैं।
- Modular initialization केवल intended plugin register करता है।
- सभी stabilization states product में संभाली गई हैं।
- Playback stabilized output चुनता है और original पर fallback करता है।
- Transfer, per-file processing और batch completion अलग phases हैं।
- Cancellation usable output और originals सुरक्षित रखता है।
- लंबे videos को storage, memory, thermal load और interruption पर test किया गया है।
- Temporary और retained media privacy व deletion policy का पालन करते हैं।