いくつかの奇妙な理由で - QTKit QTMovie(player) で currentFrameImage が失敗します - 後者が RTSP を処理している場合。file::///.../some.h264 のようなものを再生する場合は問題ありません
関連コード
movie1 = [QTMovie movieWithURL:[NSURL URLWithString:@"rtsp://axiscam/..foo.h264"]
error:&error];
movie2 = [QTMovie movieWithURL:[NSURL URLWithString:@"file:////axis-capture.h264"]
error:&error];
...
movieView.movie = flag ? movie1 : movie2;
[movieView play:sender];
そして「スナップショット」へのコード:
-(IBAction)copy:(id)sender {
NSImage * image = [movieView.movie currentFrameImage];
if (!image) {
NSSound * snd = [NSSound soundNamed:@"Basso"];
[snd play];
return;
}
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
[pasteboard clearContents];
NSArray *copiedObjects = [NSArray arrayWithObject:image];
[pasteboard writeObjects:copiedObjects];
}
カメラの保存されたストリームでは問題なく動作します。しかし、RTSP ストリーム (同じ H.264 形式) に同じことが適用されると、null (または黒い画像) が返されます。どちらもウィンドウで正常に再生されます。通常の一時停止などは完全に機能しています。
QTKit は基本的に RTSP を処理できませんか?