This seems rather complicated if you really want to avoid using MPMoviePlayerViewController. One option that seems to work even if you have it in full screen mode is to manually set the MPMoviePlayerController view frame. (Note that in other problems with iOS, sometimes using a background view gives different results, but it's worth it.)
MyMPMoviePlayerController.view.frame = CGRectMake(0, 0, your numbers, here);
However, Apple says in its documents that the frame of its parent view should be set in the controller frame.
[MyMPMoviePlayerController.view setFrame: parentView.bounds]
Less elegant solution, but may work even if it is not:
Listen to UIDeviceOrientationDidChangeNotification and watch the movie. Apply the transfrom, borders and center (or frame, etc.) to it so that it still matches the landscape view. Essentially, every time he tries to spin, he converts it back. (It is all assumed that you really cannot keep it from spinning with toAutorotateToInterfaceOrientation :).
The only problem is that he can keep the film in the portrait, but screw with a look that is not the desired result.
source share