Play3D010-Binary
所属分类:OpenGL
开发工具:Visual C++
文件大小:146KB
下载次数:63
上传日期:2008-04-11 08:07:32
上 传 者:
jeosword
说明: Play3D is a program to play 3D video files using full-screen quad-buffer
OpenGL stereo, or red/blue glasses (anaglyph mode). It should play any
format that is supported through DirectShow with an appropriate codec.
This includes AVI as well as properly formatted MPEG files.
The quad-buffer support will only work on graphics cards that support
true OpenGL quad-buffer stereo, for example:
* nVidia Quadro 2,3 or 4
* 3Dlabs Wildcat 3/4
* others..
If you don t have quad-buffer stereo, you can still use anaglyph mode,
see the command line options for details.
There is support for the following movie stereo formats:
* Interlaced
* Above/Below
* Above/Below with 5% separator
* Side-by-side
The input movie format can be controlled either by command-line switches,
or from the keyboard at run time.
(Play3D is a program to play 3D video files using full-screen quad-bufferOpenGL stereo, or red/blue glasses (anaglyph mode). It should play anyformat that is supported through DirectShow with an appropriate codec.This includes AVI as well as properly formatted MPEG files.The quad-buffer support will only work on graphics cards that supporttrue OpenGL quad-buffer stereo, for example:* nVidia Quadro 2,3 or 4* 3Dlabs Wildcat 3/4* others .. If you don t have quad- buffer stereo, you can still use anaglyph mode, see the command line options for details.There is support for the following movie stereo formats:* Interlaced* Above/Below* Above/Below with 5 separator* Side-by-sideThe input movie format can be controlled either by command-line switches, or from the keyboard at run time.)
文件列表:
glut32.dll (221184, 2000-09-29)
Play3D.exe (102400, 2003-08-13)
Play3D Version 0.10, James Ward, University of Hull, UK
=======================================================
Overview
--------
Play3D is a program to play 3D video files using full-screen quad-buffer
OpenGL stereo, or red/blue glasses (anaglyph mode). It should play any
format that is supported through DirectShow with an appropriate codec.
This includes AVI as well as properly formatted MPEG files.
The quad-buffer support will only work on graphics cards that support
true OpenGL quad-buffer stereo, for example:
* nVidia Quadro 2,3 or 4
* 3Dlabs Wildcat 3/4
* others..
If you don't have quad-buffer stereo, you can still use anaglyph mode,
see the command line options for details.
There is support for the following movie stereo formats:
* Interlaced
* Above/Below
* Above/Below with 5% separator
* Side-by-side
The input movie format can be controlled either by command-line switches,
or from the keyboard at run time.
This program is exactly one year and one day old as I write this, having
gone through ten revisions so far..
James Ward, 13th August 2003.
Contacts
--------
If you are looking for the latest version of this software, or you need
some help with a technical problem. I'm happy to answer any reasonable
questions that are not addressed in this readme file:
Web-site: www.crema.co.uk
E-mail : espresso@crema.co.uk
License
-------
This is free software, you are free to use and distribute the original
package provided that:
1. You don't profit from it in any way (for example, please don't
include it on some CD or collection that you charge for..)
2. You distribute it whole, including this documentation and giving
appropriate credit to the author.
3. Please don't bundle it with commercial hardware or software without
seeking permission of the author.
You use this software and documentation at your own risk, and I can't
accept responsibility for any loss or damage that might result from its
use or misuse.
I've decided not to release the source code for free, because I've
invested a lot of time and effort in development now. If you wish to
license the player software for commercial use, please contact the
author.
Possible options include:
* Addition of specific features (by the author)
* Improved user interface / GUI (by the author)
* Distribution / bundle licensing
* Branding
* Full source code license
Requirements
------------
* Support for DirectShow
* The video card and drivers must support OpenGL quad-buffer stereo.
* Video frame size must not exceed supported texture size. For example,
a 720x480 movie consists of two 720x240 fields, and will require
support for two 1024x256 textures (the next power of two on each axis).
Most modern graphics cards support very large textures (eg. 2048x2048),
so this is unlikely to be a problem.
* Note: not all display adapters support adjustable gamma tables.
Keyboard
--------
H = Help
P = Pause/Play
R = Rewind to start
E = Eye flip (toggle L/R order)
F/Enter = Full-screen mode
I = Indicators (display L/R indicators)
S = Toggle statistics display
g/G = Decrease/Increase Display Gamma (not all video cards support this)
V = Video format (cycles: interlaced, above/below, side-by-side..)
Q/ESC = Quit
Command Line Options
--------------------
Usage:
play3D [options]
Where options include:
-quad = Display using OpenGL quad-buffer stereo (the default)
-anag = Display as red/blue anaglyph
-mono = Monoscopic mode, displays left field only
-swap = Swap left/right order at startup
-ab = Above/Below format video
-ab5 = Above/Below format video with 5% separator (black-band)
-abc = Above/Below with vertical compression
-abc5 = Above/Below with 5% separator and vertical compression
-sbs = Side by Side video (eg. made from JPS files)
-sbsc = Side by Side with horizontal compression
-ilace = Interlaced video (this is the default)
-full = Start in full-screen mode
-gamma = Set gamma, given floating point value: eg. -gamma 1.5
-lock = Lock initial aspect ratio
-aspect = Set aspect ratio (eg. -aspect 16:9 or -aspect 1.234)
Examples:
To play an interlaced movie in quad-buffer mode:
Play3D movie.mpg
To play an interlaced movie in anaglyph mode:
Play3D movie.mpg -anag
Play an above-below formatted movie that has been compressed
vertically by 50% with a 5% black border between the images:
Play3D movie.mpg -abc5
Play a side-by-side formatted movie that was created from
JPS files:
Play3D movie.mpg -sbs
Navigating through the video with the mouse
-------------------------------------------
* Move the mouse pointer to the top of window to view the 'dragger bar'.
This shows the current position of the video (light blue) and the time
remaining (dark blue).
* Moving the mouse left and right across the bar, you will see a small
cursor indicating the time in minutes and seconds. Clicking at a point
on the bar will seek to that position in the video: you can use this
to jump to a particular point in the movie.
* Note that seeking can be slow for certain types of video file: wait
until the video restarts before clicking again.
Possible Problems
-----------------
Q. Why does the program exit immediately without playing?
A. Possible reasons:
* Video file not found
* Unsupported video file (check that it can be played with
the Windows Media Player first, to ensure that the appropriate
codec is installed). Some video files use commercial codecs such
as MPEG2 that are not readily available for download.
* If your video card does not support quad-buffer stereo, or the
option isn't enabled in the display settings, the program will
display an error message and resort to mono playback instead.
If your card does not support stereo:
* Try enabling anaglyph mode from the command line using the option:
-anag
* Failing that, try using monoscopic mode with this option:
-mono
This mode is now the default when stereo is not available.
This will verify that the movie file can be found, and that the correct
codec is installed.
Q. Why doesn't the stereo look correct?
A. Have you checked that the left/right eye order is correct?
Different movie files use different left/right orders in the file, and
some shutter glasses do not always display in the correct order. Try
switching the order by pressing the 'E' key when playing. You can also
display a set of indicators by pressing 'I' (this draws a red band in
the GL right buffer, and a blue band in the GL left buffer). This doesn't
necessarily match the order of the file however!
If the file always appears reversed, you can specify the -swap option
from the command-line so that the player starts with the correct order.
I've tried to stick to the most common conventions in terms of eye
order in the movie files. For example, most above/below 5% movies that
I found to download seem to have the right image first (top) of the file,
so this is the convention that I use as well. However, there are a few
that use the reverse.
Q. Why are there double-images, or flickering borders at top or bottom of
the image when playing?
A. Check that the video input format is correct. You can cycle through
the different formats using the 'V' key, or use command-line switches.
Look at the movie in media player first:
* Above/below = the left+right images appear in the top and bottom
of the frame.
* Above/below 5% = as above, but usually with a horizontal black
border separating the two images.
* Interlaced = you can see fine horizontal stripes, because the
two frames (left/right) are interleaved in the movie file.
* Side by Side = the left+right images appear in the left/right of
the frame.
Once you have identified the movie format, you can choose the correct
command-line switch to select that format. Also, you can cycle through
the available options with 'V' until you find the right one, and then
use the 'S' status key to find out which format was used.
Interlaced Video Notes
----------------------
When encoding interlaced video files, be careful to preserve interlacing.
If video is encoded with progressive scan, the video compression can 'blur'
the odd and even scan lines together, destroying the stereo effect. Also,
use a sufficient bit-rate to maintain the quality of the video file.
You will almost certainly achieve better results with above/below or
side-by-side formats, which do not suffer from this problem.
Dependencies
------------
* The GLUT library can cause problems if you link with one version, and
have a different version of the DLL in your search path. For this reason,
it's usually safer to put the appropriate version of the GLUT DLL in the
working directory with the executable. This version will then be used
in preference to the one in the search path (usually in windows system).
TODO List
---------
TODO: Add zoom option (eg. 50%, 100%, 200%) with command-line control
TODO: Option to remove console window
TODO: GUI to pick files from player (but retain CLI as well)
TODO: Check support for dual-head: if not working, make it work!
TODO: GUI for options (to save remembering key shortcuts)
TODO: Add support for dual-head overlap and soft-edge blending
TODO: Add support for multi-view genlock over two PCs with overlap
TODO: Add support for multi-view soft-edge blending over two PCs
DONE List
---------
DONE: Add command-line option to run full-screen initially
DONE: Made pop-up help more visible
DONE: Improved handling of case where stereo isn't supported/enabled
DONE: Display now updates during resizing
DONE: Someone reported problem with DivX 5.0.2 playback, but it appears
that DivX 5.0.5 works (and some older versions also), therefore I've
closed this issue.
DONE: Added command-line option to set initial gamma
DONE: Preserve aspect ratio by adding borders (option)
DONE: Allow aspect ratio to be specified
History
-------
The most recent changes appear at the end of this list..
JWW 12/08/02: 001
* First working implementation, based on SampGrabCB example from DirectX SDK,
using OpenGL rendering through GLUT. There is no audio support, but full
screen playback works.
JWW 15/08/02: 002
* Partial rewrite using GraphBuilder (work in progress).
JWW 16/08/02: 003
* Completed rewrite using GraphBuilder (audio looked tricky with IMediaDet..)
This version uses GraphBuilder to build a video playback graph (automatically
inserting all the required decoders, AVI splitters etc.) then replaces the
video renderer filter with a sample grabber and null renderer.
* This version is able to play video and audio, but audio loses synch. with
video sadly..
* I thought problem was caused by OpenGL/GLUT side not being able to render
frames quickly enough, so a backlog develops in message queue. However, I've
since improved event handling so that this shouldn't be possible (it now
drops frames if necessary). However, the problem is still there.
* I think the next stage is to ditch GLUT and use MFC instead. I'm not convinced
that this will solve the problem though. Another test is to build the same
graph in graph edit, and see if the audio sync. is OK (just in case this is
some limitation with sample grabber, which isn't really intended for use in
continuous video playback - just for grabbing bitmaps/sequences).
JWW 16/08/02: 004
* Modified to use buffer callback instead of sample callback, and now it
seems to maintain audio synch. OK :)
JWW 20/08/02: 005
* Added 'dragger bar' to seek to a position within the video, along with
feedback to display time in MM:SS format under mouse pointer.
* Added statistics display
* Added gamma control: increase and decrease display gamma during playback.
Requires support for downloadable gamma tables on video card/driver.
Saves and restores existing gamma at start/exit.
* Made 'Enter' key switch to full-screen (since ALT+ENTER is familiar from
windows media player).
* Switched L/R interlace order at startup (to match the video files that
I'm using, with left-eye on first scan line).
JWW 01/10/02: 006
* Added option to display as Red/Blue anaglyph. Adjusting the gamma can
help to improve results. This works in full-colour also. It's now possible
to use the stereo player on hardware without stereo support.
* Added option to display in monoscopic mode, where only the left image is
displayed, therefore you can view a 3D movie in 2D if you want.
* Added current display mode to statistics display.
* Added command line options to control the features above, and expanded the
'usage' help that gets printed when the parameters are incorrect.
* Added '-swap' option to switch left/right views at startup.
* Made it possible to flip anaglyph order also.
* BUGFIX: fixed program crash when started without an appropriate video codec
installed. I never saw this problem, because I had the right codecs on all
the PCs that I was developing on.. doh.
* Fixed full-screen toggle, so that you can now toggle freely between window
and full-screen mode.
JWW 03/12/02
* Added support for above/below and side-by-side movie formats. The player
now displays:
+ Interlaced L/R format
+ Above/Below format
+ Above/Below format with 5% border between images
+ Side by Side format (eg. movie created from JPS files)
* Work in progress: mono/anaglyph output formats broken
JWW 04/12/02
* Fixed mono and anaglyph support
* Added keyboard control (V key) to switch video input format
* Added popup help window that displays keyboard shortcuts (H key)
* Added command-line options to select the various video input formats:
-ab = above/below
-ab5 = above/below with 5% separator
-sbs = side by side
-ilace = interlaced
JWW 05/12/02
* Forced window redraw when video input format changes (this updates
the status display, but the video will only update when playing)
* Added scale factor to correct initial window height for 'compressed'
above/below video format.
* Added command-line options to select compressed above/below format:
-abc = above/below compressed
-abc5 = above/below compressed with 5% separator
* Added program version number to popup help
* Checks to see if file exists to give more helpful error message when
a video file cannot be opened.
JWW 06/12/02: 007
* Added command-line option to loop video playback at end
-loop = turn on looping (off by default)
* Added keyboard option 'L' to toggle this feature on/off
* Modified status display to show whether looping is on/off
* Added 'L' key to online help
* Added -loop option to command-line help
JWW 11/03/03: 008
* Fixed bug: using single %age in strings on command line help (duh!)
* Added -full command line option to start in full-screen mode
JWW 09/05/03: 008s IN PROGRESS
* Added test to see if stereo is supported, so that the program will
fall back to monoscopic mode if stereo isn't available
* Added blended background rectangle behind help text to try and make
it a bit easier to see.
* Added error message display in main window. Currently, this is used
to inform the user if the stereo mode isn't available.
* When window is resized, the display is now updated during the drag.
* Added -sbsc option, which denotes side-by-side compressed format.
Haven't tested this because I don't have any such files.
JWW 13/05/03: 009
* Added command line option '-gamma ' to specify display gamma
at startup. This accepts a single floating point parameter. Values
are clamped to a sensible minimum/maximum range.
* Added command line option '-lock' which locks the aspect ratio by
drawing black borders where the window aspect doesn't match the
aspect ratio of the video.
* Added command line option '-aspect ' which forces a particular
aspect ratio to be used (which can differ from that of the video).
As with the '-lock' command line option, black borders are added in
cases where the window aspect ratio doesn't match the desired ratio.
The following formats are accepted:
-aspect 16:9 ; ie. two floating point values, separated by ':'
-aspect 1.33 ; ie. single floating point value
And, if you are mad :)
-aspect 12.34:56.78
You aren't allowed spaces, and the aspect ratio is silently clamped
to the range (1:16 - 16:1)
* Sent beta version out to M.Rochel at this point.
JWW 12/08/03: 010
* Fixed a bug with playback of side by side movies in anaglyph mode,
which was discovered by Jad Nohra - thanks!
This bug was caused by using the original movie width, rather than
the output width when rendering the anaglyph view.
* Added glFlush prior to swap, documented at length in the source.
近期下载者:
相关文件:
收藏者: