blob: 2586f0340e1a3b48ec9fa924ed9507aa5cb52522 (
plain) (
blame)
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
|
Introduction
============
sydra is a toolbox which allows you to set up multiple bidirectional
Video/Audio streams from external locations.
sydra has been written to be used for the Elevate Festival in Graz
Austria in order to involve external locations to present themselves
at the festival.
Sydra consists of several components:
sydra-rtp:
This is the basic utility for the task which is based on GStreamer and is
written in C.
The utility creates a gstreamer pipeline to send or receive RTP-based
Audio/Video streams. For a bidirectional connection 2 instances of sydra-rtp
are required on both sides of the communication. sydra-rtp has automatic
client detection capabilities in the form of keep alive messages.
These message are sent out by receivers to request RTP packets from a sender.
The sender will send RTP packets to one or more receivers which request
the stream. It also uses the keep alive messages to remove stale client
'connections'. A receiver can also request to be removed from the list of
receivers. This ensures a fast and clean shutdown.
The keepalive messages are also a simple way to work around NAT and
firewalls (UDP hole punching).
sydra-launch:
This utility is basically a gst-launch equivalent.
It creates and runs a gstreamer pipeline which is configured through command-line
arguments. The syntax for the pipeline description is the same as for gst-launch.
The sole purpose of this program is that it allows to set the app-name which will
get used for example by xvimagesink to set the window title. This is needed for
sydra to tell a tiling window manager where a window should be shown.
Dependencies
============
Linux
-----
core:
build-essential
libglib2.0-dev
libgstreamer1.0-dev (>= 1.4)
pkg-config
if you want to use clang as compiler
clang
if you want to rebuild the manpage:
asciidoc
Installation
============
Getting the source via GIT:
---------------------------
git clone git://git.spreadspace.org/sydra.git
cd sydra
Building from source
--------------------
# cd src
# ./configure
# make
Installing
----------
# sudo make install
This will install sydra under the --prefix defined with configure.
Uninstalling
------------
# sudo make remove
|