Skip to content
Process video image data with Metal shading language
Branch: master
Clone or download
Latest commit d5d192a May 12, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
VideoProcessWithMetal.xcodeproj add player/reader May 11, 2018
VideoProcessWithMetal add player/reader May 11, 2018
VideoProcessWithMetalUITests Initial Commit Aug 3, 2017
images reduce images size May 11, 2018
.gitignore first commit; Aug 7, 2017
LICENSE Initial commit Aug 7, 2017 modify readme May 12, 2018


It's a demo project to illustrate how to process video with Metal framework. This blog talks about the details.

The second blog talks about how to imitate Metal Performance Shaders.


Click titles below to watch demo video on YouTube.

  1. Filter video sample buffer from camera

  2. Play local file with AVPlayer

  3. Transcode local file with AVAssetReader


  • Compute original texture into an intermediate texture instead of computing directly with MTKView(currentDrawable.texture)
  • Switch filter progressively when touch moved
  • Chaineble filters
  • Queueable commands(filter -> present -> append to file)
  • Clean debug information
  • Remove duplicate code
You can’t perform that action at this time.