|
|
|
|
New webcam module
Posted:
Oct 16, 2009 11:56 AM
|
|
|
In Wonderland, 0.4 Erik Reitsma at Ericsson enhanced the Wonderland webcam application by replacing the problematic JMF library with a pure Java M-JPEG decoding library called Cambozola:
http://www.charliemouse.com:8080/code/cambozola/
This allowed him to connect the webcam viewer to any M-JPEG source, not just the models of Axis webcams supported by JMF. With this approach, he was able to stream video into Wonderland using VLC. He wrote an interesting blog article about this:
http://blogs.sun.com/wonderland/entry/video_in_wonderland_using_mjpeg
Thanks to a generous donation of code by Jan van der Meer of Ericsson Telecommunicatie NL, I've been able to port Erik's code to 0.5.
The 0.5 webcam viewer application is now available as a stable module. If you have the stable modules checked out, do an svn update to get the webcamviewer module.
By default the webcam should show live video of a (rainy) construction site at Muhlenberg College. You can find a worldwide directory of webcams at http://camelive.info. Look for webcams tagged with "Axis/Live view". Click on the image and get the IP address of the camera. The URI you enter into the webcam view should have the following format:
http://xxx.xxx.xxx.xxx/axis-cgi/mjpg/video.cgi?camera=&resolution=640x480
Unfortunately, one thing that seems to be a universal constant for people setting up webcams is to point them at static, never changing scenes! So, you'll have to hunt to find dynamic content. One webcam I like is a fish cam in Japan:
http://210.236.173.198/axis-cgi/mjpg/video.cgi?camera=&resolution=640x480
Unfortunately, they keep moving the camera, so if you see a gray, grainy image, you'll have to take a look later. It's neat when it's pointed at the tank though.
Known limitations:
1. M-JPEG is a loosely interpreted "standard". This means that not all M-JPEG sources are compatible with the M-JPEG decoder in the Cambozola library. In practice, it's most compatible with Axis webcams. It's possible that Cambozola could be enhanced to support different sources, and I'd encourage the community to explore this.
2. Although you can stream recorded movies using VLC, the webcam viewer does not support audio. So, this is not suitable as a movie player. A movie player is planned for 0.5 (the videoplayer module on wonderland-modules is not currently functional.)
3. The app is designed to adjust to fit the size of the source video stream, but this feature is currently disabled. When specifying a video URI, request 640x480 resolution. For Axis camera sources, append "&resolution=640x480" to the URI.
4. It does not support pan/tilt/zoom capable cameras. You can still use the video feed, but the app doesn't provide PTZ controls. I'm trying to assess how important this feature is. Let me know if you have a compelling use case.
5. It doesn't currently support password protected cameras.
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 18, 2009 2:41 PM
in response to: nsimpson
|
|
|
Fine .. great job!
A question: how will we support "mixed-reality" situations with WL 0.5, as: - this webcam module does not support audio - video player does not support (?) live feed but only off-line tapes
michel
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 18, 2009 5:23 PM
in response to: micheldenis
|
|
|
I think there are several solutions for providing audio:
1. Run the wonderland client on a system next to the webcam 2. Run a softphone or SIP phone and call it from an in-world phone 3. Run an audio streaming server at the webcam location and add the audio capability to the webcam application 
So, #1 would be simplest and this is how we've demonstrated mixed reality use cases in Wonderland before. Many mixed reality use cases usually require a 2-way communication, so the people in the real world with the webcam need a way to see and communicate with people in the virtual world. I suspect Joe might have some ideas about how to do #2. And for #3, that would require an audio streaming application supported by the voice bridge.
Nigel
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 19, 2009 1:37 PM
in response to: nsimpson
|
|
|
Hi,
first off -- fantastic -- we've tried streaming M-JPEG via an app server with less-than-stellar results, so will definitely be trying this. Thanks for contributing the module.
second, I'd like to put my vote in for #4 -- PZT is critical for us. Is the API for these controls standard across cams that support them?
Derek
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 21, 2009 9:52 AM
in response to: derekreilly
|
|
|
> second, I'd like to put my vote in for #4 -- PZT is critical for us. Is the API for these controls > standard across cams that support them?
Unfortunately, there's no standard for PTZ controls across vendors. It should be straightforward to allow users to specify the PTZ commands in a configuration dialog. We supported Axis cameras in 0.4, so we can pre-configure the PTZ commands for Axis cameras. What brand of PTZ cameras are you using?
Can you tell me a little more about how you're using PTZ?
Nigel
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 22, 2009 8:49 AM
in response to: nsimpson
|
|
|
Hi, thanks for the info -- we have a Panasonic BL-C30, it's a pan+tilt camera.
We'd like to add controls in-world for this camera and control pan+tilt programmatically from within WL, for cross-reality communication.
Derek
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 22, 2009 9:55 AM
in response to: derekreilly
|
|
|
Panasonic cameras like this one have a web interface for controlling the camera, just like Axis cameras, so it seems likely that the pan and tilt functions would be controllable over a network connection. What we need to know are the HTTP requests that control panning and tilting. If we have those, then we should be able to control them from the webcam app. I'd need access to a Panasonic camera to figure this out, however.
Nigel
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 22, 2009 12:11 PM
in response to: nsimpson
|
|
|
By the way, the webcam viewer works webcams other than Axis cameras with webcamXP (http://www.webcamxp.com), a webcam streaming application for Windows. I was able to hook up a Logitech Quickcam for Notebooks Pro webcam and broadcast it using webcamXP. The webcamXP application exports an MJPEG stream via the following URL:
http://xxx.xxx.xxx.xxx:8080/cam_1.cgi
When configuring webcamXP, be sure to select 640x480: right click the video preview window in webcamXP and select Video Format > 640x480.
I suspect other Windows compatible webcams would also work with webcamXP as a streaming server.
Nigel
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 20, 2009 12:40 AM
in response to: nsimpson
|
|
|
Great . I have some Windows XP Wonderland 0.5 Clients and a Jaunty Wonderland 0.5 Server. Could you please point me to instructions for compiling, installing and using Webcamviewer module on the server ant getting the proper software to the client through JavaWS?
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Oct 20, 2009 7:51 PM
in response to: pl1
|
|
|
Nigel will have to answer your question if you're interested in experimenting with the source code, but if you just want to install the module on your server, here's what to do:
* Find the webcamviewer.jar on the wonderland-modules site here: https://wonderland-modules.dev.java.net/servlets/ProjectDocumentList?folderID=11855&expandFolder=11855&folderID=0
* Save the jar file on your computer
* Navigate to the Wonderland Launch web page and click on "Server Admin"
* Navigate to the "Manage Modules" page and scroll to the bottom of the page
* Upload the jar file using the buttons in the Install a New Module section
* Navigate to the "Manage Server" page and restart the Darkstar server
* Launch Wonderland and you should see the Webcam application is now listed in the Components dialog (Insert --> Components...)
Hope that helps, Nicole.
|
|
|
|
|
|
|
|
Re: New webcam module
Posted:
Nov 19, 2009 8:28 AM
in response to: nsimpson
|
|
|
Today during my testing, I found that if the wonderland is deployed and run on Linux server using VMware, this webcam module can not work for those clients from windows OS. It can not load the valid camera streaming.
Details setup as such: wonder 0.5 is running on Ubuntu 9.10 using VMvare player 3 under windows XP. The network is using bridge setting. Another windows XP machine has connected to a logitech webcam and installed VLC windows version for streaming the webcam to internet.
The webcam stream URL is proved working and accessible from other XP machines (3rd, 4th...) since browser can open the URL. However, when launch the wonder land client at those machines, the webcam module can not load the stream URL. Nothing is displayed. The same URL only works on streaming machine.
By running the wonderland server on another Linux box (Not using VMware), the same streaming URL works on all XP machines.
|
|
|
|
|