我正在使用LLSimpleCamera在我的应用中捕获视频:
是否有一种压缩视频的方法,或者LLSimple相机中是否有一些我没有看到的东西会导致视频如此之大。
例如,我的4秒视频导致PFFile大于10 MB,如10.6 MB!
以下是我使用LLSimpleCamera库上传的代码:
https://github.com/omergul123/LLSimpleCamera
它的效果很好!我很喜欢它,但是我也在使用Parse作为后端,最大文件大小为10MB。这应该不是问题,因为我捕获的AVSession视频都少于10秒,所以不应该那么大。是否有一种压缩视频的方法,或者LLSimple相机中是否有一些我没有看到的东西会导致视频如此之大。
例如,我的4秒视频导致PFFile大于10 MB,如10.6 MB!
以下是我使用LLSimpleCamera库上传的代码:
- (void)uploadMessage {
NSData *fileData;
NSString *fileName;
NSString *fileType;
fileData = [NSData dataWithContentsOfURL:self.videoUrl];
fileName = @"video.mov";
fileType = @"video";
NSLog(@"filesize = %@",[NSByteCountFormatter stringFromByteCount:fileData.length countStyle:NSByteCountFormatterCountStyleFile]);
float fileSize = (float)fileData.length;
NSLog(@"filesize = %f", fileSize);
if(fileSize <= 10485760) {
PFFile *file = [PFFile fileWithName:fileName data:fileData];
[file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An error occurred!"
message:@"Please try sending your message again."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
else {
PFObject *message = [PFObject objectWithClassName:@"Scenes"];
[message setObject:file forKey:@"file"];
[message setObject:fileType forKey:@"fileType"];
[message setObject:[[PFUser currentUser] objectId] forKey:@"userId"];
[message setObject:[[PFUser currentUser] username] forKey:@"userName"];
[message setObject:[[PFUser currentUser] objectForKey:@"loggedInVenueId"] forKey:@"venueId"];
[message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"An error occurred!"
message:@"Please try sending your message again."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
else {
// Everything was successful!
}
}];
}
}];
}else
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Video too big!"
message:@"Please try sending your message again."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
[self.navigationController popViewControllerAnimated:YES];
}