使用objective-c从url获取网络摄像头图像

Posted

技术标签:

【中文标题】使用objective-c从url获取网络摄像头图像【英文标题】:web cam image from url using objective-c 【发布时间】:2013-05-02 18:16:14 【问题描述】:

我正在用 cocoa 编写一个 OS X 应用程序,并试图弄清楚如何获取网络摄像头静止图像 来自此网址的轴摄像头:

http://bigwatersedge.axiscam.net/view/snapshot.shtml?picturepath=/jpg/image.jpg&timestamp=

使用这里建议的调度/队列/块:

Getting Image from URL Objective C

它将返回页面的html代码。

从网络摄像头而不是页面获取图像数据的建议方法是什么? 由于没有直接链接到 jpg 图像,所以有点混乱。

我能够在 C# 中完成这项工作 - Save Webcam Image From Website 这是我在底部的回答/问题 - 看起来我忘记了我的旧帐户并开始了一个新帐户。

【问题讨论】:

我建议你获取视频流的 url,正如它在网站上显示的那样,你可以使用 MPMoviePlayerController 直接在 ios 设备上流式传输和显示视频,不需要下载图像并从那个页面你什么都得不到 我的意图是在定义的时间间隔收集静止图像。此外,视频流只能播放 20 秒,需要刷新才能继续。预期的平台是 OS X 而不是 iOS。 【参考方案1】:

看来我想通了。

Headers需要设置如下:

self.bweHeader = @"http://bigwatersedge.axiscam.net/view/snapshot.shtml?picturepath=/jpg/image.jpg?timestamp=";
self.bweImage = @"http://bigwatersedge.axiscam.net/jpg/image.jpg?timestamp=";
self.bweHost = @"bigwatersedge.axiscam.net";

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL       URLWithString:[self.bweImage stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];

[theRequest setHTTPMethod:@"GET"];
[theRequest addValue:self.bweHost forHTTPHeaderField:@"Host"];
[theRequest addValue:self.bweHeader forHTTPHeaderField:@"Referer"];

NSData *data = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&returnError];

NSImage *camImage = [[NSImage alloc] initWithData:data];

[self.imageView setImage:camImage];
[self.imageView setImageScaling:NSImageScaleProportionallyUpOrDown];

【讨论】:

以上是关于使用objective-c从url获取网络摄像头图像的主要内容,如果未能解决你的问题,请参考以下文章

如何从 NSViewController 显示视图?

为啥我使用承保代码从网络摄像头获取图像而不是视频

使用 openCV 和 wxPython 从网络摄像头获取流

使用ffmpeg通过编解码器压缩后从网络摄像头获取所有字节流?

如何从网络摄像头获取原始 mjpg 流

如何通过浏览器从网络摄像头获取实时流视频详细信息到 python?