iOS视频分段录制

4

在连续录制视频的同时是否可以剪切视频文件?我的想法是,我录制了一个视频后,我希望每隔5秒将视频剪切成一段并发送到服务器,直到录制停止为止。例如,录制了一个10秒钟的视频,我想发送两个持续5秒钟的视频文件。第一个文件在录制视频的同时被发送,然后等待下一个5秒钟。

2个回答

1

Take a look at this tutorial:

http://www.ios-developer.net/iphone-ipad-programmer/development/camera/record-video-with-avcapturesession-2

您需要设置预览显示(如果需要)。 您需要设置录制/停止按钮。 当用户按下开始录制时,您使用

[MovieFileOutput startRecordingToOutputFileURL:outputURL recordingDelegate:self];

每隔 X 秒钟,您执行以下操作:
[MovieFileOutput stopRecording];
// setting up the url ...
[MovieFileOutput startRecordingToOutputFileURL:nextOutputURL recordingDelegate:self];

看啊!你有许多X秒的文件,你可以随心所欲地使用它们。

预览显示屏没有显示出停止的情况,录制按钮也是一样。


1
这两个答案都留下了一小段录音之间缺失的时间。在后期制作视频时,这并不是一种自然的体验。每X秒钟会有一些缺失的毫秒。 - Mikkel Cortnum

0

这是以5秒为间隔录制视频的正确方式。

按下录制按钮,开始将第一个视频片段录制到URL中。

[MovieFileOutput startRecordingToOutputFileURL:outputURL recordingDelegate:self];

当记录按钮被按下时,设置一个5秒的计时器。
[NSTimer scheduledTimerWithTimeInterval:5.0f target:self selector:@selector(stopRecording) userInfo:nil repeats:YES];

-(void)stopRecording
{
    [MovieFileOutput stopRecording];
}

这是你想要开始录制下一个视频剪辑的地方。此方法在第一个剪辑停止后立即调用。

- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error
{
    NSLog(@"end record");
    [MovieFileOutput startRecordingToOutputFileURL:[self getNextURL] recordingDelegate:self];
}

生成下一个剪辑的新URL。
-(NSURL*) getNextURL
{
    videoNumber++;
    NSString *outputPath = [self getTempVideoOutputPath:videoNumber];
    NSURL *outputURL = [[NSURL alloc] initFileURLWithPath:outputPath];

    return outputURL;
}

将剪辑编号传递进去以创建新的临时URL。例如,此方法将创建视频文件clip-1.mov、clip-2.mov、clip-3.mov等。
-(NSString*)getTempVideoOutputPath: (int) clipNumber
{
    //Create temporary URL to record to
    NSString *outputFileName = [NSString stringWithFormat:@"clip-%i.mov",clipNumber];
    NSString *outputPath = [[NSString alloc] initWithFormat:@"%@%@", NSTemporaryDirectory(), outputFileName];

    return outputPath;
}

1
这两个答案之间留下了少量的遗漏时间,当在后期制作视频时,这不是一个自然的体验。每X秒钟有一些缺失的毫秒。 - Mikkel Cortnum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接