forked from Flumotion/flumotion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
173 lines (122 loc) · 5.38 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
Flumotion - your streaming media server
WHAT IT IS
----------
Flumotion is a streaming media server based on GStreamer and Twisted.
This is the first public development series of Flumotion.
It will probably still contain bugs, be difficult to install (since
you need recent dependencies), and cause you some headaches.
On the other hand, when it works and you are capturing your Firewire camera
on one machine, encoding to Theora on a second (with an overlay, of course),
encoding the audio to Vorbis on a third, muxing to Ogg on a fourth, and then
streaming both audio and video from a fifth, audio only from a sixth,
video only from a seventh, and capturing all three streams to disk from
an eigth, you feel very good about yourself.
And you also have too many computers.
REQUIREMENTS
------------
You need:
Gstreamer: you need GStreamer version 0.10.10 or higher. 0.10.11 or higher is
strongly recommended.
For 0.10.x:
GStreamer: 0.10.10 or higher
GStreamer plugins base 0.10.10 or higher
GStreamer plugins good 0.10.1 or higher
GStreamer python bindings 0.10.1 or higher
PyGTK - 2.8.3 or higher
Python - 2.4 or higher
Twisted - 2.5.0 or higher
Kiwi - 1.9.13 or higher
PyCairo- 1.2.0 or higher
And depending on what codecs you want to use:
libvorbis 1.0.1 or higher
libogg 1.1 or higher
libtheora 1.0alpha3 or higher
And if you want to build documentation:
epydoc
And if you want support for java applets:
cortado
ISSUES
------
Some issues have been brought to our attention. Please take note if you
run into them:
- locales with a comma as a decimal point trigger problems in the XML parsing.
Run with LANG=C if you run into this
- When encoding to Vorbis, prefer to use quality instead of absolute bitrate.
For absolute bitrate, for each sample rate a limited range of bitrates is
allowed.
- You may see memory leaks if you use the soundcard or firewire source
components, and you use PyGTK prior to 0.8.5, or gst-python prior to 0.10.3,
so upgrading to these versions is strongly recommended.
A FIRST TEST
------------
Once everything is built and installed,
you can try this to start the server:
terminal 1:
flumotion-manager -v -T tcp conf/managers/default/planet.xml
terminal 2:
flumotion-worker -v -T tcp -u user -p test
terminal 3:
flumotion-admin
Unselect 'Secure connection via SSL', press Next, then enter "user" and
"test" in the dialog.
Go through the wizard, chosing defaults.
Double-click the http component after the wizard has completed
terminal 4:
gst-launch playbin2 uri=http://localhost:8800/ogg-audio-video/
Some systems may not have gst-launch, but only gst-launch-0.8 or
gst-launch-0.10, in that case you can substitute either of those commands.
Alternatively, you can use any theora-enabled network player to see the
stream.
terminal 5:
for a in `seq 1 9`; do ( flumotion-tester http://localhost:8800/ogg-audio-video/ & ); done
This will throw 9 processes with 100 clients each at the server. Hopefully,
all of them will return success at the end of their run!
We use 900 clients rather than a nice round number such as 1000 because, with
a standard unix system, you'll usually be limited to slightly under 1000
clients by default due to limits on open file descriptors (each client
requires a file descriptor). This limit is changable, but it's simpler to just
test with slightly fewer clients.
DOCUMENTATION
-------------
A manual is being written. You can access the current work in progress at
http://www.flumotion.net/doc/flumotion/manual/en/trunk/html/
Flumotion also comes with API documentation. You need epydoc to build them.
HACKING
-------
You can use jhbuild with the flu.modules and jhbuildrc file provided in misc/
This will set up everything except for Twisted for you from source.
SECURITY
--------
Read the security chapter in the aforementioned manual to get started.
Flumotion uses SSL transport by default. For this you need a PEM certificate
file. For security reasons you should generate this yourself when installing
from source.
The sample configuration file for the manager contains some htpasswd-style
crypted credentials, for a user named "user" and a password "test". Use
these only for testing; make sure you change them before putting Flumotion
into production.
The sample configuration also only allows localhost connections, to make
sure you change the configuration before moving it into production.
Remove the host entry from the sample planet.xml file to allow other hosts
to connect.
ABOVE AND BEYOND
----------------
You can subscribe to our development list. Information is at
http://lists.fluendo.com/mailman/listinfo/flumotion-devel
You can visit us on IRC: #fluendo on irc.freenode.org
You can visit our trac installation for the Wiki, source browsing and
ticket tracking:
https://core.fluendo.com/flumotion/trac
LICENSING
---------
This version of the Flumotion Streaming Server is licensed under the the
terms of the GNU Lesser General Public License version 2.1 as published
by the Free Software Foundation. See LICENSE.LGPL
If the conditions of this licensing strategy are not clear to you, please
contact Thomas Vander Stichele (thomas@fluendo.com).
TESTING
-------
For testing purposes of your streams, you can run some GStreamer pipelines
to verify if things work as they should.
- multipart/jpeg stream (video only):
gst-launch -v gnomevfssrc location=http://localhost:8802 ! multipartdemux ! jpegdec ! xvimagesink