作者mactaris (mactaris)
看板MacDev
标题Re: [问题] 用QTKit从iSight上面撷取每一张画面
时间Sun Oct 3 16:57:30 2010
※ 引述《ryanliang (暑假闲闲的大学生~~)》之铭言:
: ※ 引述《zonble (zonble)》之铭言:
: : QTMovie 有两个 method
: : - (NSImage *)frameImageAtTime:(QTTime)time
: : - (void *)frameImageAtTime:(QTTime)time withAttributes:(NSDictionary *)attributes error:(NSError **)errorPtr
: : 这两个 method 可以让你在取得了一段 QuickTime movie 後
: : 根据时间把 NSImage 或其他的 Image 物件抽出来,不知道
: : 这是不是你想要的?
: Z大的意思是,
: 我先录影片,录完後在用QTMovie中的方法,
: 撷取某特定时间点的Frame,
: 是这意思吗?
: 跟我原本的流程好像有点不大相同,
: 我是想在我按下录影键後的每一张图(Frame)都存在一个地方,
: 也就是说我不打算输出成影片档,
: 我要的是图档,
: 不过如果Z大说的方法如果可以找得出"每一张"图(Frame)的话,
: 那倒也不是不可行,
: 感谢Z大!!
QTCaptureVideoPreviewOutput 有一个 delegate method
- (void)captureOutput:(QTCaptureOutput *)captureOutput
didOutputVideoFrame:(CVImageBufferRef)videoFrame
withSampleBuffer:(QTSampleBuffer *)sampleBuffer
fromConnection:(QTCaptureConnection *)connection
可以撷取 frame
QTCaptureDecompressedVideoOutput 也有一个 delegate method
- (void)captureOutput:(QTCaptureOutput *)captureOutput
didOutputVideoFrame:(CVImageBufferRef)videoFrame
withSampleBuffer:(QTSampleBuffer *)sampleBuffer
fromConnection:(QTCaptureConnection *)connection
可以撷取 frame
应该就是你要找的功能了吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.111.97
1F:推 ryanliang:感谢m大!! 这个方法我都有找到 但是不知怎麽去使用它 10/03 19:32
2F:→ ryanliang:能够更举体解说看看吗? 感谢~~ 10/03 19:33
3F:→ mactaris:你应该看过 StillMotion 这个官方的范例了吧? 10/04 04:44
4F:→ mactaris:问题在於你要每个 frame 都存起来 10/04 04:45
5F:→ mactaris:这两个 delegate method 会把每一个 frame 都 pass 给你 10/04 04:47
6F:→ mactaris:所以得确定下一个frame进来之前来得及把这个frame存档 10/04 04:49
7F:→ mactaris:或者把frame丢给别人(thread?)去存档... 10/04 04:51
8F:推 ryanliang:没错!!会来不及存档 而且程式会当掉 thread我没有写过 10/04 12:05
9F:→ ryanliang:我不知道该怎麽将它分开 我是想按addFrame时可以将Frame 10/04 12:07
10F:→ ryanliang:存起来 现在看来用回圈写会当掉 thread我没研究过 M大有 10/04 12:08
11F:→ ryanliang:甚麽好建议吗? 10/04 12:08