Skip to content

Repository files navigation

VideoIO

Video Input/Output Utilities

VideoComposition

Wraps around AVMutableVideoComposition with custom video compositor. A BlockBasedVideoCompositor is provided for convenience.

With MetalPetal

letcontext=try!MTIContext(device:MTLCreateSystemDefaultDevice()!)lethandler=MTIAsyncVideoCompositionRequestHandler(context: context, tracks: asset.tracks(withMediaType:.video)){ request inreturnFilterGraph.makeImage{ output in
request.anySourceImage => filterA => filterB => output
}!
}letcomposition=VideoComposition(propertiesOf: asset, compositionRequestHandler: handler.handle(request:))letplayerItem=AVPlayerItem(asset: asset)
playerItem.videoComposition = composition.makeAVVideoComposition()
player.replaceCurrentItem(with: playerItem)
player.play()

Without MetalPetal

letcomposition=VideoComposition(propertiesOf: asset, compositionRequestHandler:{ request in
//Process video frame
})letplayerItem=AVPlayerItem(asset: asset)
playerItem.videoComposition = composition.makeAVVideoComposition()
player.replaceCurrentItem(with: playerItem)
player.play()

AssetExportSession

Export AVAssets. With the ability to customize video/audio settings as well as pause / resume.

varconfiguration=AssetExportSession.Configuration(fileType:.mp4, videoSettings:.h264(videoSize: videoComposition.renderSize), audioSettings:.aac(channels:2, sampleRate:44100, bitRate:128*1000))
configuration.metadata =...
configuration.videoComposition =...
configuration.audioMix =...self.exporter =try!AssetExportSession(asset: asset, outputURL: outputURL, configuration: configuration)
exporter.export(progress:{ p in}, completion:{ error in
//Done
})

PlayerVideoOutput

Output video buffers from AVPlayer.

letplayer:AVPlayer=...letplayerOutput=PlayerVideoOutput(player: player){ videoFrame in
//Got video frame
}
player.play()

MovieRecorder

Record video and audio.

MovieSegmentsRecorder

Record and merge video segements.

AudioQueueCaptureSession

Capture audio using AudioQueue.

Camera

Simple audio/video capture.

About

Video Input/Output Utilities

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages