This document summarizes a project to display live video streams from webcams and local videos on the NASA World Wind platform. It discusses the architecture used, techniques to improve efficiency such as reducing image quality and checking which images are visible, and ideas for future work such as automatic geocoding of webcam locations and supporting additional video sources and formats.
1 of 23
Downloaded 14 times
More Related Content
Live Video in World Wind
1. LIVE VIDEO IN WORLD WIND Developed by Jovan Stevovic Principles Of Computer Graphics 2008 / 2009
2. The project: The goal of the project is to show videos from different sources like webcams or local videos on the Nasa World Wind. The actual Java SDK provides a lot of features for drawing and managing objects, images, icons, annotations, etc. But, there are not features for displaying videos or images that can changes their aspect during the time.
3. Architecture The WWJ architecture: Layer Renderable Data source Proposed architecture: VideoLayer DynamicSurfaceImage VideoSource
5. Efficiency trade-off VideoLayer performs these tasks: Init all objects Start updating Thread At each cycle Get the current frame from the source Update the Renderable with the obtained image Get the new time to sleep Sleep PROBLEMS: Managing Video Sources expensive (Threads, images transform) Updating Renderables texture expensive
6. Quality of images The quality of images can be very high. During the navigation we can view them from a very close point to a very far one. We dont need the same quality. Reducing quality improve efficiency.
7. Time to render As we can see, decreasing image dimensions the rendering time decrease proportionally.
8. Images not in the View Managing videos is expensive. Reducing at maximum the number of simultaneously played videos increase performances. Checking which images are in the view permits to pause videos that are not visible.
9. Sloped images During the navigation user has some videos in the view but is not interested in them. How we can check this? If images are so sloped in respect to the view eye, we can suppose that the user is not interested in that image so we can pause the execution.
10. Images not visible In cities or mountains landscapes images can be hidden behind some objects. Using RayCasting functions we can detect if there is something in the middle that hides the image and then pause the playing.
11. GUI List of webcam types. Clicking on them will be shown the list of available cams. Add country and add webcam buttons Search form Results list
12. GUI cont. Insertion of a new webcam. Pick Webcam Angles button permits to capture the webcam position (yellow rectangle in the figure). The form on the left contains other meta-information.
13. Webcam menu Info button shows the annotation containing meta-information Settings button shows the setting menu (next slide) Play/Pause button pause or restart the video Cancel button permits to delete the webcam temporally or from memory. Zoom in/ Zoom out buttons permits to increase or decrease the image quality
14. Webcam manager Angle buttons permits to drag and drop a corner of an image Middle buttons permits to drag and drop a side of the image Save button save the changes on memory Discard button restore the previous position There is activated also the BasicDragger that permits to move the image.
15. Webcam structure A webcam is represented by the XML structure in the figure. There are information about position and URL and meta-information.
17. Supported webcams Supported webcams: Axis205 Axis206M Axis207 Axis207M Axis207MW Axis2100 Axis2120 Axis2130 Google provides a way to search pages with some substring of theURL, so we can search for example: inurl: axis-cgi/mjpg/video.cgi intitle:Live view - / - AXIS inurl:axis-cgi/jpg inurl:view/indexFrame.shtml inurl:view/view.shtml inurl:view/index.shtml Websites that provides lists and webcam categories: http://www.camhacker.com/ http://www.123cam.com/category-webcam-Axis.html http://www.ttrix.com/ipvisionpubcameras.html http://www.snow-cams.com/
18. Conclusions Managing Players expensive Reloading texture expensive No possibility for reloading at each frame Statistics class updates dynamically the time to sleep CPU time spent for managing images. No possibility for GPU processing. WWJ images quality low. Need more quality (at least like Google Earth) for better results.
19. Future Works Automatic geocoding of webcams Capture other video sources of other types of webcams (the majority of webcams are represented by some URL of some image that is reloaded periodically server side) Some Web Service can be added to the application to improve the adding process. IP to location service (sometimes we have only the IP of the webcam) Place name to LatLon position (faster finding of the location on WWJ)