在本文中,您将会了解到关于在Java中的MacOsX上获取网络摄像头流的新资讯,同时我们还将为您解释java获取摄像头视频流的相关在本文中,我们将带你探索在Java中的MacOsX上获取网络摄像头流的
在本文中,您将会了解到关于在Java中的Mac Os X上获取网络摄像头流的新资讯,同时我们还将为您解释java获取摄像头视频流的相关在本文中,我们将带你探索在Java中的Mac Os X上获取网络摄像头流的奥秘,分析java获取摄像头视频流的特点,并给出一些关于.mp4或.webm中的网络摄像头录制内容无法在MacOS Safari浏览器和iOS设备上播放、c – 使用Qt显示来自OpenCV的网络摄像头流、CV2 无法读取 MacBook Pro 上的网络摄像头、html – 如何使用javascript检测实时网络摄像头中的手势?的实用技巧。
本文目录一览:- 在Java中的Mac Os X上获取网络摄像头流(java获取摄像头视频流)
- .mp4或.webm中的网络摄像头录制内容无法在MacOS Safari浏览器和iOS设备上播放
- c – 使用Qt显示来自OpenCV的网络摄像头流
- CV2 无法读取 MacBook Pro 上的网络摄像头
- html – 如何使用javascript检测实时网络摄像头中的手势?
在Java中的Mac Os X上获取网络摄像头流(java获取摄像头视频流)
我想获取Macbook的网络摄像头流(集成的iSight网络摄像头)。
我使用Java,但对Objective-C一无所知,因此我正在寻找“全Java”解决方案。我找到了一些示例,但它们是2005年制造的,无法在我的系统上使用。
答案1
小编典典我现在自己也遇到了同样的事情。我正在为项目使用VLCJ,它在Windows,Linux Mint,Linux Ubuntu和Mac OSX
Lion上均可完美运行。您可能已经读过,VLCJ是围绕libvlc的Java包装器,VLC播放器也使用该包装器。
问题是,当您打开VLC播放器的捕获选项时,它会在组合框中填充可用的摄像机(已连接USB)。但这只是VLC播放器自己完成的工作,它没有为此提供API。而且,如果您不通过VLCJ将某些摄像机的ID传递给它,则VLC将使用系统的默认摄像机。我使用VLCJ从USB连接的相机或台式机流式传输到文件。
我必须找到一种在系统上“扫描” USB摄像机的方法,这是特定于操作系统的。
在Windows上,我使用DirectShowJava。
在Linux上,您只需要阅读/ dev / video
*以获取可用的摄像机,并且如果您想向用户显示一些“用户友好名称”,则可以使用video4linux4java
还有3rd和您最感兴趣的那个,我还没有尝试过,但是我将尝试使用它:stack,example。
如果libvlc会给出更好的结果,那是更好的,因为我不必再使用3个API(用于3个操作系统),并且每个API都可以做VLCJ可以做的事情(仅在该平台上),而我在使用它们只是为了读取设备。
编辑
:当前的官方VLC版本是1.1.x,它在Mac上对照相机的支持有限。您只能从Mac的默认相机(iSight,内置的FaceTime)播放流媒体而没有音频。VLC1.2.0即将面世,它将具有更好的Mac支持(意识到其他连接的摄像头,桌面流和音频)。您可以在VideoLAN论坛上看到我的主题。我下载了适用于Mac的1.2.0-git版本的VLC,它看起来非常酷,并且具有真正的“
Mac感觉”。您可以从这里下载。但是请注意,这是开发版本,并且崩溃很多。
.mp4或.webm中的网络摄像头录制内容无法在MacOS Safari浏览器和iOS设备上播放
您需要将webm视频转换为mp4服务器站点,以便在Safari中播放。
在web based webcam recording上,每个浏览器都以特定的本机格式(MIME类型)保存。 Safari保存mp4 / mp3,而其他浏览器通常保存webm。 更改文件扩展名无济于事。您需要转换视频。
您可以使用服务器端ffmpeg将webm转换为mp4。
c – 使用Qt显示来自OpenCV的网络摄像头流
int main(int,char**) { VideoCapture cap(0); Mat edges; namedWindow("webcam",1); while (true) { Mat frame; cap >> frame; imshow("webcam",frame); if (waitKey(30) >= 0) break; } return 0; }
现在我想要的是在QT的Widget中显示来自OpenCV的QImage中的图像
这是从cv :: Mat到QImage的转换
QImage Mat2QImage(cv::Mat const& src) { cv::Mat temp; cvtColor(src,temp,CV_BGR2RGB); QImage dest((const uchar *)temp.data,temp.cols,temp.rows,temp.step,QImage::Format_RGB888); dest.bits(); // of QImage::QImage ( const uchar * data,int width,int height,Format format ) return dest; }
以及在QT中用QImage显示图像的小代码
int main(int argc,char *argv[]) { QApplication a(argc,argv); QImage myImage; myImage.load("a.png"); QLabel myLabel; myLabel.setpixmap(Qpixmap::fromImage(myImage)); myLabel.show(); return a.exec(); }
我试图以这种方式组合它们,但没有运气
int main(int argc,argv); VideoCapture cap(0); QImage myImage; QLabel myLabel; while (true) { Mat frame; cap >> frame; // get a new frame from camera myImage = Mat2QImage(frame); myLabel.setpixmap(Qpixmap::fromImage(myImage)); } myLabel.show(); return a.exec();
解决方法
class Window : public QMainWindow { Q_OBJECT QTimer _timer; private slots: void on_timeout() { // put your opencv code in it } public: Window() : QMainWindow(),_timer(this) { connect(&_timer,SIGNAL(timeout()),this,SLOT(on_timeout())); // populate your window with images,labels,etc. here _timer.start(10 /*call the timer every 10 ms*/); } };
然后在主要显示你的窗口:
int main(int argc,argv); Window win; win.show(); return a.exec(); }
如果您使用Qt创建者,使用Qt开发更简单:考虑一下.
CV2 无法读取 MacBook Pro 上的网络摄像头
由于未知原因,如果您使用 pip install opencv-python
安装了 openCV,它将不适用于 macOS 的隐私政策。
您应该改用 brew 包
brew install opencv
# Brew will probably need to overwrite previous openCV installations
brew link --overwrite opencv
一旦您创建了 VideoCapture 对象,您的网络摄像头指示灯就会亮起
import cv2
cap = cv2.VideoCapture(0)
,
尝试从终端打开您的应用:python path/to/app.py
一个窗口将出现关于允许访问相机。
html – 如何使用javascript检测实时网络摄像头中的手势?
解决方法
手势检测可以使用Haar Cascade分类器(从OpenCV移植)与js-objectdetect或HAAR.js完成。
在JavaScript / HTML5中使用js-objectdetect的示例:打开与闭合手检测(美国手语字母表的“A”姿态)
关于在Java中的Mac Os X上获取网络摄像头流和java获取摄像头视频流的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.mp4或.webm中的网络摄像头录制内容无法在MacOS Safari浏览器和iOS设备上播放、c – 使用Qt显示来自OpenCV的网络摄像头流、CV2 无法读取 MacBook Pro 上的网络摄像头、html – 如何使用javascript检测实时网络摄像头中的手势?等相关知识的信息别忘了在本站进行查找喔。
本文标签: