QTKit - объединить два видео с разной шириной и высотой?

Я только что сделал простое приложение, которое использует QTKit для объединения двух видео

Здесьпроблема:

Я только что обнаружил, что если я пытаюсь объединить два видео с разной шириной и высотой, то получается видео, высота и ширина которого совпадает с большим видео, но содержит маленькое с черными и широкими полями.

Вопрос:

Как я могу объединить два видео вместе и получить выходное видео в правильном формате (ширина / высота)?

Пример, чтобы лучше понять, что мне нужно:

У меня есть два видео:

Видео 1 = 1920 x 1280, видео 2 = 1280 x 960

Что я хочу: видео 1920 x 1280 (нужно увеличить и обрезать маленькое)

Код:

-(void)voidMethodToCombine {


NSError *err = nil;
QTMovie *myCombinedMovie = [[QTMovie alloc] initToWritableData:[NSMutableData data] error:&err];
if (err)
{
    NSRunAlertPanel(@"Errore nella creazione del video",[err localizedDescription], nil, @"Chiudi", nil, nil);
    return;
    return;
}


// Create the File Open Dialog class.
NSSavePanel *savePanel = [NSSavePanel savePanel]; //Dove salvo il video ?


if ([savePanel runModal])//Se premo ok
{   
    [indicatore setUsesThreadedAnimation:YES];
    [indicatore startAnimation:self];
    NSURL *saveURL = savePanel.URL;
    NSString *savePath = [saveURL path];
//Prelevo i 2 percorsi e gli inserisco negli array

NSString *video1 = [URLVideo1 stringValue];
NSString *video2 = [URLVideo2 stringValue];

NSURL *theURLvideo1 = [NSURL fileURLWithPath:video1];

NSURL *theURLvideo2 = [NSURL fileURLWithPath:video2];

if((theURLvideo1) && (theURLvideo2)) {



NSArray *myMovieURLs = [NSArray arrayWithObjects:theURLvideo1,theURLvideo2, nil];

for (NSURL *url in myMovieURLs)
{
    QTMovie *theMovie = [QTMovie movieWithURL:url error:&err];
    if (err){
        NSRunAlertPanel(@"Errore durante il caricamento di uno dei film",[err localizedDescription], nil, @"Chiudi", nil, nil);
        return;
    }
    QTTimeRange timeRange = QTMakeTimeRange(QTZeroTime, [theMovie duration]);
    QTTime insertionTime = [myCombinedMovie duration]; 
    [myCombinedMovie insertSegmentOfMovie:theMovie timeRange:timeRange atTime:insertionTime];
}

NSDictionary *writeAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], QTMovieFlatten, nil]; 
//Pannello di path salvataggio

bool success = [myCombinedMovie writeToFile:savePath withAttributes:writeAttributes error:&err];




[indicatore stopAnimation:self];
NSBeep();
NSString *dove = [[NSString alloc] initWithFormat:@"Video esportato in:\n%@",savePath];
NSRunAlertPanel(@"Esportazione avvenuta con successo!", dove, @"Ok", nil, nil);

if (!success)
{
    NSRunAlertPanel(@"Errore durante il salvataggio del video.",[err localizedDescription], nil, @"Chiudi", nil, nil);
    return;
    return;
}
}
//Se non esiste alcun percorso
else {

    NSRunAlertPanel(@"Impossibile selezionare i file.", @"Controlla di aver specificato un percorso.", @"Chiudi", nil, nil);
}

Ответы на вопрос(1)

Ваш ответ на вопрос