美文网首页
AVFoundation相关

AVFoundation相关

作者: LeepengX | 来源:发表于2017-08-07 19:20 被阅读0次

AVFoundation

AVAsset:多媒体载体类

AVAssetTrack:track id是唯一性标识符。每个视频至少两个track,(音频轨和视频轨)Atom Inspector可以查看视频文件的详细信息!

将视频文件写入Caches/videos文件夹    

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);    NSString *cachesDirectory = [paths objectAtIndex:0];    NSString *dataPath = [cachesDirectory stringByAppendingPathComponent:@"/videos"];    if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])        [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init] ;    [dateFormat setDateFormat:@"dd-MM-yyyyHH:mm:SS"];    NSDate *now = [[NSDate alloc] init];    NSString *theDate = [dateFormat stringFromDate:now];    NSData *videoData = [NSData dataWithContentsOfURL:srcVideo] ;    NSString *videopath= [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/%@_Origin.mp4",dataPath,theDate]];    BOOL success = [videoData writeToFile:videopath atomically:NO];    NSLog(@"Successs:::: %@", success ? @"YES" : @"NO");    NSLog(@"video path --> %@",videopath);* 视频方向:关于Rotation的0、90、180和270这四个角度值可以这样理解:LandscapeRigth为0度;以Home键或摄像头为圆心,顺时针旋转到Portrait为90度;旋转到LandscapeLeft为180度;旋转到PortraitUpsideDown为270度。视频是默认横屏拍摄,此时长边叫width=1920,height=1080注意坐标原点的变动。判断原始视频的拍摄角度:+ (NSUInteger)degressFromVideoFileWithURL:(NSURL *)url{    NSUInteger degress = 0;      AVAsset *asset = [AVAsset assetWithURL:url];    NSArray *tracks = [asset tracksWithMediaType:AVMediaTypeVideo];    if([tracks count] > 0) {        AVAssetTrack *videoTrack = [tracks objectAtIndex:0];        CGAffineTransform t = videoTrack.preferredTransform;              if(t.a == 0 && t.b == 1.0 && t.c == -1.0 && t.d == 0){            // Portrait            degress = 90;        }else if(t.a == 0 && t.b == -1.0 && t.c == 1.0 && t.d == 0){            // PortraitUpsideDown            degress = 270;        }else if(t.a == 1.0 && t.b == 0 && t.c == 0 && t.d == 1.0){            // LandscapeRight            degress = 0;        }else if(t.a == -1.0 && t.b == 0 && t.c == 0 && t.d == -1.0){            // LandscapeLeft            degress = 180;        }    }      return degress;}(NSArray*)tracksWithMediaType:(NSString *)mediaType;

tracks数组包含指定媒体类型的track。

相关文章

  • AVFoundation相关

    AVFoundation AVAsset:多媒体载体类 AVAssetTrack:track id是唯一性标识符。...

  • 直播-数据采集

    采集数据需要使用AVFoundation下的相关API AVFoundation在相关框架栈中的的位置: 为了捕捉...

  • [音视频]001-AVFoundation捕捉

    [TOC] AVFoundation 主要用途 : 照片视频直播 小直播 AVFoundation相关的类 AVC...

  • iOS 相机捕捉

    AVFoundation 相关类 AVFoundation 框架基于以下几个类实现图像捕捉 ,通过这些类可以访问来...

  • AVFoundation的的视频采集使用

    相机相关应用一般会用到AVFoundation. 这里简单做个整理。 AVFoundation是基于session...

  • AVFoundation --- 01入门

    AVFoundation --- 01入门 目标 解析框架,了解相关的功能和特性。媒体相关知识 解析AVFound...

  • AVFoundation 读取和写入媒体

    1 读取和写入媒体相关类 在AVFoundation中,底层依靠AVAssetReader和AVAssetWrit...

  • iOS Camera开发指南

    AVFoundation 该框架框架包含视频相关的APIs和音频相关的APIs。 针对音频及视频,其主要提供的功能...

  • iOS拍照/录像总结

    使用AVFoundation做拍照和视频录制开发用到的相关类 AVCaptureSession:媒体(音、视频)捕...

  • About AVFoundation - AVFoundatio

    About AVFoundation - AVFoundation概述 AVFoundation is one o...

网友评论

      本文标题:AVFoundation相关

      本文链接:https://www.haomeiwen.com/subject/rggalxtx.html