我想知道AVFoundation中是否有任何公共API或任何其他可用于记录屏幕的框架,如Talking Tom Cat.我查看了AVFoundation和CoreVideo框架,但无法从头文件中找到任何内容.
如果有人知道如何使用iPhone SDK以电子方式录制屏幕视频,请告诉我.
我已经完成了研发工作并取得了成功,如何根据播放的视频文件中的图像获取帧MPMoviePlayerController.
从此代码中获取所有帧,并将所有图像保存在一个阵列中.
for(int i= 1; i <= moviePlayerController.duration; i++)
{
UIImage *img = [moviePlayerController thumbnailImageAtTime:i timeOption:MPMovieTimeOptionNearestKeyFrame];
[arrImages addObject:img];
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,在更改了一些图像文件后,比如为图像添加情感并添加过滤器,例如; 电影真实,黑白,我们如何再次创建视频并以相同的帧速率将相同的视频存储在文档目录中,而不会丢失视频质量.
更改了一些图像后,我按照代码再次保存了该视频.
- (void) writeImagesAsMovie:(NSString*)path
{
NSError *error = nil;
UIImage *first = [arrImages objectAtIndex:0];
CGSize frameSize = first.size;
AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL:
[NSURL fileURLWithPath:path] fileType:AVFileTypeQuickTimeMovie
error:&error];
NSParameterAssert(videoWriter);
NSDictionary *videoSettings = [NSDictionary dictionaryWithObjectsAndKeys:
AVVideoCodecH264, AVVideoCodecKey,
[NSNumber numberWithInt:640], AVVideoWidthKey,
[NSNumber numberWithInt:480], AVVideoHeightKey,
nil];
AVAssetWriterInput* writerInput = [[AVAssetWriterInput
assetWriterInputWithMediaType:AVMediaTypeVideo
outputSettings:videoSettings] retain];
AVAssetWriterInputPixelBufferAdaptor *adaptor = [AVAssetWriterInputPixelBufferAdaptor
assetWriterInputPixelBufferAdaptorWithAssetWriterInput:writerInput
sourcePixelBufferAttributes:nil];
NSParameterAssert(writerInput); …Run Code Online (Sandbox Code Playgroud) 我真的很喜欢这个问题,因为我没有在互联网上看到有关iOS视频编码的足够信息,但是我们可以观察到大量应用成功解决视频流问题的应用程序(skype,qik,justin.tv等) .)
我将开发一个应用程序,它应该将从摄像机获得的视频帧发送到网络服务器,并在h.263(h.264或MPEG-4,它正在决定)中编码.为此,我需要一些视频编码库.显然,ffmpeg可以处理这个任务,但它是在LGPL许可下,这可能会导致在AppStore中提交应用程序时出现一些问题.另一方面,有些应用程序似乎使用ffmpeg库,但只有Timelapser在应用程序描述中明确说明了这一事实.这是否意味着,其他应用程序没有使用ffmpeg或仅隐藏此信息?
请分享您对此主题的想法和经验.我对dicsussion持开放态度.
我正在尝试使用iFrameExtractor示例中的make和build文件来编译ffmpeg .首先,我试图遵循github上的自述文件,该文件只表示./build_universal在ffmpeg文件夹中运行.那没起效
然后,我尝试按照INSTALL中的信息进行操作,但没有成功.然后我尝试在INSTALL中执行这些操作,然后执行该操作./build_universal.导入到项目的所有*.a文件都存在,直到构建序列结束.当运行build_universal中的lipo命令时,我想连接不同体系结构的.a文件(?).无论如何这些都会留下以下错误:
lipo: specifed architecture type (armv6) for file (armv6/libavcodec.a) does not match it's cputype (16777223) and cpusubtype (3) (should be cputype (12) and cpusubtype (6))
lipo: specifed architecture type (armv6) for file (armv6/libavdevice.a) does not match it's cputype (16777223) and cpusubtype (3) (should be cputype (12) and cpusubtype (6))
lipo: specifed architecture type (armv6) for file (armv6/libavformat.a) does not match it's cputype (16777223) and cpusubtype (3) (should be cputype (12) …Run Code Online (Sandbox Code Playgroud)