【问题标题】:How can I eliminate latency in quicktime streamed video如何消除快速流式视频中的延迟
【发布时间】:2010-05-13 20:46:16
【问题描述】:

我正在制作一个客户端原型,该客户端通过 quicktime 客户端显示来自 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

【问题讨论】:

  • 那个缓冲区总是 3.0 秒,不管你做什么。即使您在 quicktime 客户端中启用 Instant-On...

标签: macos video-streaming buffer quicktime low-latency


【解决方案1】:

降低视频质量。这将导致发送的数据更少,从而可以更快地发送 3s 缓冲区。

【讨论】:

  • 延迟与视频分辨率无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2012-09-16
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多