如何使用QTMovie API提取流式(RTSP)电影的QTTracks?

时间:2011-01-24 06:16:59

标签: cocoa macos quicktime qtkit

是否有人知道如何使用QTMovie(QTKit)API获取RTSP流媒体电影的QTTracks?

基本上我想从电影中提取音频和视频曲目,并在播放之前做一些额外的处理。

以下是一个简化的代码段,这适用于本地电影文件但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 :(得分:0)

使用rtsp流,QTMovie工作的实际文件是一个“流媒体处理程序”容器,大小约10kb,你可以通过查看QTMovieDataSizeAttribute键是否在200左右来验证,没有办法到达流中的实际数据(甚至不包括10.7 AVCaptureInput api)