AVAsset और Composition
मीडिया ट्रैक की जाँच कीजिए और उन्हें मिलाइए।
AVAsset और Composition, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
AVAsset मीडिया को दर्शाता है
AVAsset समयबद्ध मीडिया के एक हिस्से—उसके ट्रैक, अवधि और मेटाडेटा—का मॉडल बनाता है, बिना उसे प्लेबैक के लिए निर्धारित किए। यह संपादन का आधार है।
import AVFoundation
let asset = AVURLAsset(url: fileURL)गुणों को अतुल्यकालिक रूप से लोड करना
एसेट के गुण आवश्यकता पड़ने पर लोड होते हैं। अवरोध उत्पन्न किए बिना अवधि या ट्रैक प्राप्त करने के लिए अतुल्यकालिक load(_:) API का उपयोग करें।
let duration = try await asset.load(.duration)
let tracks = try await asset.load(.tracks)ट्रैक
किसी एसेट में AVAssetTrack होते हैं, जिनमें से प्रत्येक एक मीडिया प्रकार—वीडियो, ऑडियो या उपशीर्षक—रखता है। संपादन करते समय आप इन ट्रैक का निरीक्षण और पुनः उपयोग करते हैं।
let videoTracks = try await asset.loadTracks(withMediaType: .video)
let audioTracks = try await asset.loadTracks(withMediaType: .audio)AVMutableComposition
AVMutableComposition एक संपादन योग्य एसेट है, जिसे आप अन्य एसेट से समय-सीमाएँ डालकर बनाते हैं—यह क्लिप काटने और जोड़ने का आधार है।
let composition = AVMutableComposition()रचना के ट्रैक जोड़ना
प्रत्येक मीडिया प्रकार के लिए एक परिवर्तनीय ट्रैक बनाएँ और उसका प्रकार तथा ट्रैक ID निर्दिष्ट करें।
let videoTrack = composition.addMutableTrack(
withMediaType: .video,
preferredTrackID: kCMPersistentTrackID_Invalid)समय-सीमाएँ डालना
insertTimeRange के साथ किसी स्रोत ट्रैक के खंड को अपने रचना ट्रैक में कॉपी करें और चुनें कि वह टाइमलाइन में कहाँ रखा जाए।
let range = CMTimeRange(start: .zero, duration: try await asset.load(.duration))
try videoTrack?.insertTimeRange(range, of: sourceTrack, at: .zero)क्लिप काटना
काटने के लिए किसी उप-सीमा—आरंभ और कम अवधि—को निर्दिष्ट करके स्रोत के केवल एक हिस्से को डालें।
let clip = CMTimeRange(
start: CMTime(seconds: 5, preferredTimescale: 600),
duration: CMTime(seconds: 10, preferredTimescale: 600))
try videoTrack?.insertTimeRange(clip, of: sourceTrack, at: .zero)कई क्लिप जोड़ना
प्रत्येक क्लिप को वर्तमान रचना अवधि पर डालकर उन्हें एक के बाद एक जोड़ें और एकल निरंतर टाइमलाइन बनाएँ।
var cursor = CMTime.zero
for src in sourceTracks {
let r = CMTimeRange(start: .zero, duration: src.timeRange.duration)
try videoTrack?.insertTimeRange(r, of: src, at: cursor)
cursor = cursor + r.duration
}प्रभावों के लिए वीडियो रचना
रूपांतरणों, परतों या संक्रमणों के लिए रचना को एक AVMutableVideoComposition के साथ जोड़ें, जो प्रत्येक समय-सीमा के निर्देश निर्धारित करता है।
let videoComposition = AVMutableVideoComposition()
videoComposition.frameDuration = CMTime(value: 1, timescale: 30)परिणाम एक्सपोर्ट करना
प्रीसेट और आउटपुट URL चुनकर AVAssetExportSession से रचना को किसी फ़ाइल में रेंडर करें।
let export = AVAssetExportSession(
asset: composition, presetName: AVAssetExportPresetHighestQuality)
export?.outputURL = outputURL
export?.outputFileType = .mp4
await export?.export()एक्सपोर्ट से पहले पूर्वावलोकन
क्योंकि रचना स्वयं एक AVAsset है, इसलिए आप उसे AVPlayerItem में लपेटकर एक्सपोर्ट करने से पहले संपादन का पूर्वावलोकन कर सकते हैं।
let previewItem = AVPlayerItem(asset: composition)
let player = AVPlayer(playerItem: previewItem)त्वरित जाँच: composition
AVAsset और composition की अपनी समझ जाँचें।
पुनरावलोकन: AVAsset और रचना
AVAsset अतुल्यकालिक गुण लोडिंग के साथ मीडिया (ट्रैक, अवधि और मेटाडेटा) का मॉडल बनाता है। AVMutableComposition स्रोत ट्रैक से समय-सीमाएँ डालकर संपादन योग्य टाइमलाइन बनाता है—जिससे क्लिप काटना और जोड़ना संभव होता है।
प्रभावों के लिए AVMutableVideoComposition जोड़ें, रचना को AVPlayerItem में लपेटकर उसका पूर्वावलोकन करें और AVAssetExportSession से रेंडर करें।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “AVAsset और Composition” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “AVAsset और Composition” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“AVAsset और Composition” में मैं क्या सीखूँगा?
मीडिया ट्रैक की जाँच कीजिए और उन्हें मिलाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“AVAsset और Composition” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- AVPlayer से मीडिया चलाना
- ऑडियो रिकॉर्ड करना
- AVAsset और Composition
- SwiftUI में प्लेयर शामिल करना