草庐IT

ios - AVFoundation 将第一帧添加到视频

我正在尝试控制由我的应用生成的视频在iOS上的照片应用中的显示方式。我制作的所有视频都以黑框开始,然后逐渐淡入和淡出,等等。将这些视频保存到照片时,Apple会获取第一帧(黑色方block)并将其用作照片中的缩略图。我想更改此设置,以便我可以设置自己的缩略图,以便人们轻松识别视频。因为我找不到任何内置的API,我试图通过添加我生成的缩略图作为视频的第一帧来破解它。我正在尝试为此使用AVFoundation,但遇到了一些问题。我的代码抛出以下错误:[AVAssetReaderTrackOutputcopyNextSampleBuffer]cannotcopynextsamplebuffe

ios - 让 iOS 5 AVPlayer 在播放完成时显示视频的最后一帧而不是黑屏

我正在对其他人编写的iPad应用程序进行一些修改,我需要解决的一件事是视频需要在播放完成后继续显示最后一帧,而不是屏幕变黑。在使用iOS4.3的iPad模拟器上,这正是它已经在做的事情,但在iOS5上它只是变黑了(在模拟器和设备上)。对于实现此目的以使其适用于iOS5的最佳方法有何建议?代码使用AVQueuePlayer。 最佳答案 我最终找到了解决方案:[playersetActionAtItemEnd:AVPlayerActionAtItemEndPause];我已经尝试过这个并因为它不起作用而将其丢弃,但我认为我犯了一个错误,

ios - UIView帧动画 "wiggle"

我有这段疯狂的代码。我如何使用CoreAnimation为它制作动画,这样我的代码就更少了?我找到了somecode制作“摆动”动画,但那是3D形式,我只想让View左右移动,我不想让它在两侧弹跳。[UIViewanimateWithDuration:0.1fanimations:^{CGRectframe=tableView.frame;frame.origin.x-=4;tableView.frame=frame;}completion:^(BOOLfinished){[UIViewanimateWithDuration:0.1fanimations:^{CGRectframe=t

iphone - 如何使用 AVFoundation 为逐帧生成的视频设置方向?

我正在编写一个iPhone应用程序,它从相机获取视频,通过一些OpenGL着色器代码运行它,然后使用AVFoundation将输出写入视频文件。该应用程序以横向(任一)运行,因此所有录制的视频都应该是横向的。我在开始录制之前使用的当前代码是:[[selfvideoWriterInput]setTransform:CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI),-1.0,1.0)];其中videoWriterInput是AVAssetWriterInput的实例,目的是补偿横向模式和OpenGL的反向方向。这会生成在Q

iOS录制视频第一帧是黑色的

我做了一个录制视频的应用程序,但第一帧总是黑色的。我使用:-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection和assetWriter写入样本缓冲区。我发现第一个samplebuffer是mediaType:'soun',是不是这个问题。我该怎么办 最佳答案 我遇到了同样的问题。而且我

ios - 以编程方式计算 iOS 应用程序的 FPS(每秒帧数)有多少种方法?

由于我们讨论的是编程,Instruments不在我的考虑范围内。一些提前列出的引用:Calculatefps(framespersecond)foriphoneappDisplayFPSoniOSonscreen(withoutInstruments)AtwhatframeratedoestheiOSUIrunanimationsat?1。使用CADisplayLink根据文档,Thedurationpropertyprovidestheamountoftimebetweenframes.Youcanusethisvalueinyourapplicationtocalculatethe

iOS7 AVMutableVideoCompositionLayerInstruction 导致视频帧卡住

我正在通过iOS7SDK中的AVMutableVideoCompositionLayerInstruction修改一些视频。以下代码用于iOS6.1.3,但在iOS7中,视频在第一帧卡住(尽管我仍然可以听到音频)。我摆脱了我应用的所有实际转换,以验证单独添加视频合成会导致问题。AVURLAsset*videoAsset=[[AVURLAssetalloc]initWithURL:inputFileURLoptions:NULL];AVAssetTrack*videoAssetTrack=[[videoAssettracksWithMediaType:AVMediaTypeVideo]o

ios - `viewDidLayoutSubviews` 中的帧计算

首先,我应该提一下,这主要是一个效率问题。有很多关于在哪里进行帧计算的讨论,其中viewWillAppear太早而viewDidAppear太晚(View已经可见)。常见的答案是在viewDidLayoutSubviews中进行帧计算。问题是,它被多次调用。更糟糕的是,最准确的调用,所有帧都有其最终大小的调用是最后一个。据我所知,没有办法知道最后一个调用是哪个调用。我们过去常常有一个“framesAreSet”标志(初始化为false)和一个检查,如果frame不为零(类似于self.view.frame.size.width!=0)和'framesAreSet'为false,它进去,

iphone - GPUImageMovieWriter 帧 presentationTime

我有一个GPUImageColorDodgeBlend连接两个输入的过滤器:AGPUImageVideoCamera它正在从iPhone摄像机获取帧。AGPUImageMovie这是一个(MP4)视频文件,我想将其放在实时摄像头画面上。GPUImageColorDodgeBlend然后连接到两个输出:AGPUImageImageView提供混合操作的实时预览。AGPUImageMovieWriter按下录制按钮后将电影写入存储。现在,在开始录制视频之前,一切正常100%。GPUImageVideo很好地混合了实时摄像机视频,没有报告任何问题或警告。但是,当GPUImageMovieWr

ios - 在 iOS 中访问所有电影帧的最佳方式

我正在尝试编辑现有电影并在顶部添加效果,因此我需要能够扫描所有电影帧,将它们获取为UIImage,应用效果,然后更新该帧或将其写入新电影。我发现有人建议使用AVAssetImageGenerator。以下是我最终编辑过的示例:-(void)processMovie:(NSString*)moviePath{NSURL*url=[NSURLfileURLWithPath:moviePath];AVURLAsset*asset=[[AVURLAssetalloc]initWithURL:urloptions:nil];floatmovieTimeInSeconds=CMTimeGetSec