Как извлечь QTTracks из потокового (RTSP) фильма с помощью API QTMovie? - PullRequest
0 голосов
/ 24 января 2011

Кто-нибудь знает, как получить QTTracks для потокового фильма RTSP с помощью API QTMovie (QTKit)?

В основном я хочу извлечь аудио и видео дорожки из фильма и выполнить дополнительную обработку перед их воспроизведением.

Ниже приведен упрощенный фрагмент кода, он отлично работает для локальных файлов фильмов, но не работает для потоков RTSP:

NSError* err = nil;
QTMovie* myMovie = [QTMovie movieWithURL: @"rtsp://example.com/123.mov" error: &err];
NSNumber* loadState = [mMovie attributeForKey: QTMovieLoadStateAttribute];

// This succeeds
if ( [loadState intValue] >= QTMovieLoadStatePlayable ) {

  // This fails - audioTracks returns a count of 0
  NSArray* audioTracks = [mMovie tracksOfMediaType: QTMediaTypeSound];
  if ( [audioTracks count] > 0 ) {
    [self processTrack: (QTTrack*)[audioTracks lastObject]];
  }
}

Заранее спасибо за вашу помощь.

1 Ответ

0 голосов
/ 09 января 2012

С потоками rtsp фактический файл, над которым работает QTMovie, является контейнером «обработчика потокового мультимедиа», размером около 10 КБ, вы можете проверить, посмотрев, что ключ QTMovieDataSizeAttribute меньше 200 или около того, нет способа добраться до фактические данные в потоке (даже с 10.7 AVCaptureInput api)

...