我正在开发一个个人iOS项目,需要通过4G连接上传到后端的全屏视频(长度为15秒).虽然我可以很好地拍摄视频,但文件的输出大小达到30MB,这让我觉得在压缩时我做了一些严重的错误.下面是我用来设置AssetWriter的代码:
-(void)captureOutput:(AVCaptureFileOutput *)captureOutput didStartRecordingToOutputFileAtURL:(NSURL *)fileURL fromConnections:(NSArray *)connections
{
NSLog(@"Started Recording! *******************");
self.movieWriter = [AVAssetWriter assetWriterWithURL:fileURL fileType:AVFileTypeMPEG4 error:nil];
[self.movieWriter setShouldOptimizeForNetworkUse:YES];
NSDictionary *videoCleanApertureSettings = @{
AVVideoCleanApertureWidthKey: [NSNumber numberWithFloat:self.view.frame.size.width],
AVVideoCleanApertureHeightKey: [NSNumber numberWithFloat:self.view.frame.size.height],
AVVideoCleanApertureHorizontalOffsetKey: [NSNumber numberWithInt:10],
AVVideoCleanApertureVerticalOffsetKey: [NSNumber numberWithInt:10],
};
NSDictionary *videoCompressionSettings = @{
AVVideoAverageBitRateKey: [NSNumber numberWithFloat:5000000.0],
AVVideoMaxKeyFrameIntervalKey: [NSNumber numberWithInteger:1],
AVVideoProfileLevelKey: AVVideoProfileLevelH264Baseline30,
AVVideoCleanApertureKey: videoCleanApertureSettings,
};
NSDictionary *videoSettings = @{AVVideoCodecKey: AVVideoCodecH264,
AVVideoWidthKey: [NSNumber numberWithFloat:self.view.frame.size.width],
AVVideoHeightKey: [NSNumber numberWithFloat:self.view.frame.size.height],
AVVideoCompressionPropertiesKey: videoCompressionSettings,
};
self.movieWriterVideoInput = [[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeVideo outputSettings:videoSettings];
self.movieWriterVideoInput.expectsMediaDataInRealTime = YES;
[self.movieWriter addInput:self.movieWriterVideoInput];
NSDictionary *audioSettings …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,让用户可以生成1-75个Fibonacci数字,打印它们,然后将所有这些值一起添加到所有总和中.我没有问题生成数字和打印它们,但由于某种原因,我在sum函数方面遇到了很多麻烦.出于某种原因,它只返回0 ......并且在我盯着它看了几个小时后,我感到很茫然.任何和所有的帮助将不胜感激.我的代码如下:
#include <stdio.h>
#include <stdlib.h>
//function to calculate fibonacci number 1-75 (user specified)
int fibonacci(int * array, int size)
{
int i;
unsigned long long int Fibonacci[size]; //generating the array to save the Fibonacci values
Fibonacci[0] = 0; //by definition
Fibonacci[1] = 1; //by definition
for (i = 2; i < size; i++) {
Fibonacci[i] = Fibonacci[i-2] + Fibonacci[i-1]; //equation to calculate the numbers
}
for (i = 0; i < size; i++) {
printf("%llu\t", Fibonacci[i]); //printing …Run Code Online (Sandbox Code Playgroud)