Я новичок в программировании на OS X, мне нужно взять кучу NSImages, прибывающих из Интернета с переменным интервалом, и создать из него прогрессивный видеофайл. Например, скорость прибытия NSImage может составлять от миллисекунд до трех секунд.Использование QTKit для добавления NSImages к фильму при случайной частоте кадров
Я интересно, если это правильный способ сделать это с помощью QTKit, и как рассчитать частоту кадров, так как кадры приходят почти в случайные моменты времени.
Я также интересуюсь использованием памяти, попытается ли он сохранить весь фильм в памяти, прежде чем писать его в конце?
Вот код, который я кусочки из Интернета:
-(void)startRecording
{
NSDictionary *myDict = nil;
myDict = [NSDictionary dictionaryWithObjectsAndKeys:@"mp4v",
QTAddImageCodecType,
[NSNumber numberWithLong:codecHighQuality],
QTAddImageCodecQuality,
nil];
long long timeValue = 1;
long timeScale = 3;
QTTime duration = QTMakeTime(timeValue, timeScale);
QTMovie *mMovie =[[QTMovie alloc] initToWritableFile:@"tmpfps.tmp" error:NULL];
self.mMovie=mMovie;
self.duration=duration;
self.myDict=myDict;
}
-(void) addFrame:(NSImage*)imageFrame
{
[mMovie addImage:imageFrame
forDuration:self.duration
withAttributes:self.myDict];
}
-(void) stopRecording
{
myDict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:QTMovieFlatten];
[self.mMovie writeToFile:@"my.mov" withAttributes:myDict];
self.mMovie=nil;
}
Большое спасибо. Я пытаюсь посмотреть, как я могу делать отметки времени и временные дельта с помощью QTTime API, но я не вижу никакой функции QTTime, которую я могу использовать для записи текущего времени, а затем принять разницу, чтобы я мог использовать ее с addImage: duration: withAttributes. –