Convert README to restructured text for the benefit of Github
[opo.git] / README.rst
blob19eaf85e9aeb4b6383fb9499c8c9d483b69ad43b
1 Opo:  a small Video Whale
2 =========================
4 Opo is designed to show synchronised full screen video on projectors
5 connected to multiple video cards.  It can also do other things, like
6 split video across a number of non-full-screen windows, but that is
7 sort of incidental.
9 Dependencies
10 ============
12 Gstreamer 0.10
13 GTK/GDK 2.22
15 You need the dev packages.
17 To run across multiple screens you need multiple video outputs; for
18 more than 2 screens this means having more than one video card, which
19 in turn means having a motherboard capable of handling multiple cards.
20 Not all combinations of video cards will work.
22 Compiling
23 =========
25 Try ``make``.
27 Usage
28 =====
32    #show a test picture split over 3 windows
33    ./opo -F 2 -s 3
35    #split a picture full-screen across 4 monitors connected to 2 cards
36    ./opo -c picture.avi -w 1024 -h 768 -x 2 -f -s 4
38    #see what else you can try
39    ./opo --help
42 Importing video
43 ===============
45 Opo-launcher provides a means to stitch together several single-window
46 video sequences windows into an opo-ready multi-window video.
48 The examples directory has scripts showing how this process can be
49 controlled in greater detail.
51 Name and history
52 ================
54 In 2002 or before, Zeeshan Ali Khattak and others made a video wall
55 using Gstreamer and Xinerama.  They called it `Video Whale`_ (also
56 described here_).  To
57 run the 4x4 array of monitors, they had 4 computers with 4 video cards
58 in each, and a fifth computer that fed video to the others over the
59 network.  Opo was inspired by that project.
61 `Ngā Hau E Whā`_ is an artwork developed by Leilani Kake for the 2011
62 Auckland Arts Festival, to be shown at Fresh Gallery Otara[3].  It
63 requires four perfectly synchronised video projections.
65 Opo_ was a famous New Zealand dolphin.
67 This software was written for Leilani Kake's work, and Opo is a
68 conveniently short and available name for a small New Zealand Video
69 Whale.
71 .. _`Video Whale`: http://gstreamer.freedesktop.org/apps/videowhale.html
72 .. _here: http://www.linux-1u.net/X11/Quad/gstreamer.net/video-wall-howto.html
73 .. _`Ngā Hau E Whā`: http://ngahauewha.wordpress.com/
74 .. _Opo: http://en.wikipedia.org/wiki/Opo_the_Dolphin
77 Copyright and License
78 =====================
80 Copyright 2011 Douglas Bagnall
82 Portions of opo.c were originally derived from examples provided by
83 the Gstreamer developers.
85 Provided under the terms of the Gnu General Public License Version 3
86 (see the file COPYING or http://www.gnu.org/licenses/).
88 BUGS / TODO
89 ===========
91 * Sometimes opo fails to show all its windows.  This seems to be a
92   race condition.
94 * opo ought to be able to auto-detect size.
96 * opo-launcher could use the stitching process's progress report
98 * start_stitching_process, and others could shift to a module, and
99   testable bits could be dragged out of Launcher
101 * Various encoding and muxing settings could be fixed (or removed).
103 * opo could (optionally/ automatically) use vertical stitching rather
104   than horizontal (i.e., 1x4 rather than 4x1), or both (2x2). Apart
105   from making a 4 x 1024x768 video 1 pixel wider than is allowed for
106   mpeg1/2 (which could conceivably be a sweet spot for fast decoding
107   off slow media), the 4x1 arrangement could possibly complicate
108   cropping and damage cache locality.