如果对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
                  
                  
                  
                  
                            
本文探讨了使用AVFoundation进行视频特效处理时遇到的效率瓶颈,特别是在视频帧合成阶段的问题,并提出了可能的解决方案。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					924
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            