I think that putting a UIVIew over the video is going to be your best option here. You could then use Quartz2d (or even OpenGL ES) if you really need performance for drawing in the view (thus, over the video).
With Quarz2d you could compose a simple sprite-sheet (common technique used in games) with all the frames for your shatter animation, and just loop through them and present them over the aforementioned UIView. If performance is not good enough, you could try using OpenGL ES :), but you could save a lot of time by using Quarz2d.
If performance would be an issue, you could end up using a Cocos2D layer on top of your video, like in this post, where the goal was to render a particle emitter on top of the video... Cocos2d ( OpenGL ES ) solved the performance issues. ( The good thing is that Cocos2d can easily handle sprite sheets so I'm guessing you could implement this in no time )
In short: Depending on how big your transition is, pick either OpenGL ES (if you want that performance) or Quarz2d if performance is not a big issue.
Cheers.