6

I'm creating a Quicktime movie file using AVAssetWriter. Currently the output video is "upside down". In theory I can correct this by rotating the video 180 degrees about the horizontal axis (essentially "flipping" the video). What's the best way to do this?

Currently I'm trying to assign a CGAffineTransform to myAVAssetWriterInput.transform. Perhaps CGAffineTransformMake(a, b, c, d, tx, ty) will allow me to specify the correct affine transformation matrix?

Neither the Apple docs nor wikipedia gives a clear explanation on how an affine transformation matrix works. And there might be a better way all together.

SundayMonday
  • 19,147
  • 29
  • 100
  • 154

2 Answers2

20
myAVAssetWriterInput.transform = CGAffineTransformMakeRotation(M_PI);

if you want to rotate the video 180 degrees around z-axis, or

myAVAssetWriterInput.transform = CGAffineTransformMakeScale(1, -1);

if you want to reflect in x-axis

Steve Rogers
  • 1,963
  • 2
  • 17
  • 25
0

[AVAssetTrack preferredTransform] will return the right CGAffineTransform.

You can assign this CGAffineTransform to writeInput.

Eric Aya
  • 69,473
  • 35
  • 181
  • 253
Randall Wang
  • 1,007
  • 3
  • 10
  • 24