Как я могу устранить задержку в быстром потоке видео - PullRequest
1 голос
/ 14 мая 2010

Я создаю прототип клиента, который отображает потоковое видео с HaiVision Barracuda через клиент быстрого доступа.Я не смог уменьшить размер буфера ниже 3,0 секунд ... для этого приложения нам нужно настолько низкое время ожидания, насколько позволяет сеть, и предпочли отсрочки видео задержке.Я делаю следующее:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"haivision" ofType:@"sdp"];

    NSError *error = nil;
    QTMovie *qtmovie = [QTMovie movieWithFile:path error:&error];
    if( error != nil ) {
        NSLog(@"error: %@", [error localizedDescription]);
    }

    Movie movie = [qtmovie quickTimeMovie];
    long trackCount = GetMovieTrackCount(movie);
    Track theTrack = GetMovieTrack(movie,1);
    Media theMedia = GetTrackMedia(theTrack);
    MediaHandler theMediaHandler = GetMediaHandler(theMedia);
    QTSMediaPresentationParams myPres;

    ComponentResult c = QTSMediaGetIndStreamInfo(theMediaHandler, 1,kQTSMediaPresentationInfo,
                             &myPres);
    Fixed shortdelay = 1<<15;
    OSErr theErr = QTSPresSetInfo (myPres.presentationID,
                               kQTSAllStreams,
                               kQTSTargetBufferDurationInfo,
                                &shortdelay );
    NSLog(@"OSErr %d", theErr);

    [movieView setMovie:qtmovie];
    [movieView play:self];
}

Кажется, я получаю действительные объекты / структуры вплоть до QTSPres, хотя и ComponentResult и OSErr возвращают -50.Потоковое видео воспроизводится нормально, но буфер все еще 3,0 секунды.Любая помощь / понимание приветствуется.

J

1 Ответ

0 голосов
/ 24 марта 2011

Понизьте качество видео. Это приведет к меньшему количеству отправляемых данных, что позволит быстрее отправлять буфер 3s.

...