iphone ios 视频特效,视频合成

如果对av foundation 不熟悉得话,建议先看看wwdc 2010 关于av foundation得讲座。http://blog.csdn.net/linzhiji/article/details/6752722


好的软件

CinemaFX for Video

By Nexvio Inc.


Super 8 Qik viddy 8mm realDirector 

CinemaFX




以下内容来自论坛,和自己的编辑


在做视频特效的时候遇到了效率问题,怎么修改都无法达到super 8 的效果,我的做法是这样的:
使用AVAssetWriter *assetWriter;
    AVAssetWriterInput *videoWriterInput;
    AVAssetWriterInput *audioWriterInput;
    
    AVAssetWriterInputPixelBufferAdaptor *pixelBufferAdaptor;
去进行视频输入和输出,以及audio的合成.
2) 在得到每一个视频frame的时候 进行图片合成再输出(输出用OpenGl 方式 )

    CVPixelBufferLockBaseAddress(cameraFrame, 0);
    int bufferHeight = CVPixelBufferGetHeight(cameraFrame);
    int bufferWidth = CVPixelBufferGetWidth(cameraFrame);
    int bytesPerRow = CVPixelBufferGetBytesPerRow(cameraFrame);
    
    sourceTime = timeS*****p;
    
    frameBaseAddress = (unsigned char *)CVPixelBufferGetBaseAddress(cameraFrame);
    
    CGContextRef context = CGBitmapContextCreate(frameBaseAddress, bufferWidth, bufferHeight, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);

   CGContextDrawImage(context, CGRectMake (0, 0, 480, 360), coverImage); //和图片进行合成.
   CGContextRelease(context);

可以一进行合成的时候视频显示就会很卡,我的输出使用的是AVCaptureSessionPresetMedium 正等大小 . 
请问有没有知道super 8的解决方案,谢谢!


主要是在这里慢 CGContextDrawImage(context, CGRectMake (0, 0, 480, 360), coverImage); //和图片进行合成. ,在用Opengl绘制时候是很快的。


另外  stackflow有一个问答:

http://stackoverflow.com/questions/3741323/how-do-i-export-uiimage-array-as-a-movie

你可能感兴趣的:(ios,iPhone,360,audio,2010)