Tag: avfoundation

如何将CVPixelBuffer变成UIImage?

我有一些从CVPixelBuffer获取UIIMage的问题。 这就是我想要的: CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(imageDataSampleBuffer); CFDictionaryRef attachments = CMCopyDictionaryOfAttachments(kCFAllocatorDefault, imageDataSampleBuffer, kCMAttachmentMode_ShouldPropagate); CIImage *ciImage = [[CIImage alloc] initWithCVPixelBuffer:pixelBuffer options:(NSDictionary *)attachments]; if (attachments) CFRelease(attachments); size_t width = CVPixelBufferGetWidth(pixelBuffer); size_t height = CVPixelBufferGetHeight(pixelBuffer); if (width && height) { // test to make sure we have valid dimensions UIImage *image = [[UIImage alloc] initWithCIImage:ciImage]; UIImageView *lv = [[UIImageView […]

使用AVVideoCompositionCoreAnimationTool将video与静态图像混合在CALayer中

我正试图将来自相机的video与静态图像(水印)混合在一起。 我已经检查了这里的问题和答案,还有一些例子,包括来自Apple的WWDC AVEditDemo,并以下面的代码结束。 不幸的是,导出的video不包含图像的图层。 有任何想法吗? – (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { /// incoming video NSURL *videoURL = [info valueForKey:UIImagePickerControllerMediaURL]; /// UIImage into CALayer UIImage *myImage = [UIImage imageNamed:@"m1h.png"]; CALayer *aLayer = [CALayer layer]; aLayer.contents = (id)myImage.CGImage; AVURLAsset* url = [AVURLAsset URLAssetWithURL:videoURL options:nil]; AVMutableComposition *videoComposition = [AVMutableComposition composition]; NSError *error; NSFileManager *fileManager = [NSFileManager defaultManager]; AVMutableCompositionTrack […]

AVAudioPlayer立即停止播放ARC

我试图通过AVAudioPlayer播放MP3,我认为这很简单。 不幸的是,这不是工作。 这是我所做的一切: 为了testing,我在Xcode中创build了一个新的iOS应用程序(Single View)。 我将AVFoundation框架添加到项目中,并将#import <AVFoundation/AVFoundation.h>到ViewController.m 我添加了一个MP3文件到应用程序的文档文件夹。 我改变了ViewControllers viewDidLoad:如下: 码: – (void)viewDidLoad { [super viewDidLoad]; NSString* recorderFilePath = [NSString stringWithFormat:@"%@/MySound.mp3", [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]]; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:recorderFilePath] error:nil]; audioPlayer.numberOfLoops = 1; [audioPlayer play]; //[NSThread sleepForTimeInterval:20]; } 不幸的是,audio开始播放后显然停止。 如果我取消注释sleepForTimeInterval它播放20秒,然后停止。 只有使用ARC进行编译时才会出现此问题,否则,该工作将完美无瑕。

iOS AVFoundation:如何从mp3文件中获取作品?

我的代码: – (void)metadata { AVURLAsset *asset = [AVURLAsset URLAssetWithURL:self.fileURL options:nil]; NSArray *artworks = [AVMetadataItem metadataItemsFromArray:asset.commonMetadata withKey:AVMetadataCommonKeyArtwork keySpace:AVMetadataKeySpaceCommon]; NSArray *titles = [AVMetadataItem metadataItemsFromArray:asset.commonMetadata withKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon]; NSArray *artists = [AVMetadataItem metadataItemsFromArray:asset.commonMetadata withKey:AVMetadataCommonKeyArtist keySpace:AVMetadataKeySpaceCommon]; NSArray *albumNames = [AVMetadataItem metadataItemsFromArray:asset.commonMetadata withKey:AVMetadataCommonKeyAlbumName keySpace:AVMetadataKeySpaceCommon]; AVMetadataItem *artwork = [artworks objectAtIndex:0]; AVMetadataItem *title = [titles objectAtIndex:0]; AVMetadataItem *artist = [artists objectAtIndex:0]; AVMetadataItem *albumName […]

在iOS中发送包含AVPlayer请求的标头

使用AVPlayer时,是否可以将带有http请求的头文件发送到audio文件? 我需要能够检查服务器收到的头部内容,以限制对被请求的文件的访问。

iPhone使用AVFoundation从video中读取UIimage(帧)

对不起,我的英文)寻找从iPhonevideo阅读框架信息,我发现这个项目, http://www.codza.com/extracting-frames-from-movies-on-iphone/comment-page-1#comment -1116 ,但我也读过的地方,你可以使用AVFoundation从video捕捉帧更好的性能.. 但是我找不到如何做到这一点的信息… 一些想法? 谢谢阅读

如何在IOS中做慢动作video

我必须在video文件中伴随audio,在一些帧之间进行“ 慢动作 ”,并且需要将渐变video存储为新video。 参考: http : //www.youtube.com/watch?v = BJ3_xMGzauk (从0到10秒钟) 从我的分析,我发现AVFoundation框架可以是有帮助的。 参考: http : //developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/00_Introduction.html 从上面的链接复制并粘贴: “编辑AV Foundation使用合成来创build现有媒体(通常是一个或多个video和audio轨道)的新资产,使用可变的合成来添加和移除轨道,并调整它们的时间顺序,还可以设置相对音量和渐变音轨;以及设置video轨道的不透明度和不透明度斜坡,合成是内存中保存的多个媒体的集合,当您使用导出会话导出合成时,它将合并到一个文件中。 iOS 4.1及更高版本,您还可以使用资产编写器从媒体(如样本缓冲区或静态图像)创build资产。 “ 问题: 我可以使用AVFoundation框架“慢动作”video/audio文件吗? 还是有其他可用的包吗? 如果我想单独处理audio和video,请指导我如何做? 更新::代码AV导出会话: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *outputURL = paths[0]; NSFileManager *manager = [NSFileManager defaultManager]; [manager createDirectoryAtPath:outputURL withIntermediateDirectories:YES attributes:nil error:nil]; outputURL = [outputURL stringByAppendingPathComponent:@"output.mp4"]; // Remove Existing File [manager […]

如何使用AVFoundation结合不同方向的video剪辑

我正在尝试将几个video剪辑合并为一个使用AVFoundation。 我可以使用下面的代码使用AVMutableComposition创build一个video AVMutableComposition *composition = [AVMutableComposition composition]; AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; AVMutableCompositionTrack *compositionAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid]; CMTime startTime = kCMTimeZero; /*videoClipPaths is a array of paths of the video clips recorded*/ //for loop to combine clips into a single video for (NSInteger i=0; i < [videoClipPaths count]; i++) { NSString *path = […]

iOS – 缩放和裁剪CMSampleBufferRef / CVImageBufferRef

我正在使用AVFoundation并从AVCaptureVideoDataOutput获取示例缓冲区,我可以直接写入到videoWriter使用: – (void)writeBufferFrame:(CMSampleBufferRef)sampleBuffer { CMTime lastSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); if(self.videoWriter.status != AVAssetWriterStatusWriting) { [self.videoWriter startWriting]; [self.videoWriter startSessionAtSourceTime:lastSampleTime]; } [self.videoWriterInput appendSampleBuffer:sampleBuffer]; } 我现在要做的是在CMSampleBufferRef中裁剪和缩放图像,而不将其转换为UIImage或CGImageRef,因为这会降低性能。

如何使用AVCapturePhotoOutput

我一直在使用一个自定义的相机,我最近升级到Xcode 8 beta与斯威夫特3我原本有这样的: var stillImageOutput: AVCaptureStillImageOutput? 但是,我现在得到警告: 在iOS 10.0中不推荐使用“AVCaptureStillImageOutput”:使用AVCapturePhotoOutput 由于这是相当新的,我没有看到这方面的很多信息。 这是我现在的代码: var captureSession: AVCaptureSession? var stillImageOutput: AVCaptureStillImageOutput? var previewLayer: AVCaptureVideoPreviewLayer? func clickPicture() { if let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo) { videoConnection.videoOrientation = .portrait stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (sampleBuffer, error) -> Void in if sampleBuffer != nil { let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer) let dataProvider = CGDataProvider(data: […]