From d048447e6bee06400acd3854f999e4c264172ac0 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 2 Oct 2014 23:25:28 +0200 Subject: renamed the sydra utility to sydra-rtp --- doc/sydra-rtp.8.txt | 272 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 doc/sydra-rtp.8.txt (limited to 'doc/sydra-rtp.8.txt') diff --git a/doc/sydra-rtp.8.txt b/doc/sydra-rtp.8.txt new file mode 100644 index 0000000..4fd87b0 --- /dev/null +++ b/doc/sydra-rtp.8.txt @@ -0,0 +1,272 @@ +sydra-rtp(8) +============ + +NAME +---- + +sydra-rtp - tool for RTP based streams + + +SYNOPSIS +-------- + +.... +sydra-rtp + [ -h|--help ] + [ -D|--nodaemonize ] + [ -u|--username ] + [ -g|--groupname ] + [ -C|--chroot ] + [ -P|--write-pid ] + [ -L|--log :[,[,[..]]] ] + [ -U|--debug ] + [ -n|--appname ] + [ -m|--mode (sender|reciever) ] + [ --source ] + [ --video-encoder ] + [ --video-payloader ] + [ --previewsink ] + [ --audio-encoder ] + [ --audio-payloader ] + [ --video-caps ] + [ --video-depayloader ] + [ --video-decoder ] + [ --audio-caps ] + [ --audio-depayloader ] + [ --audio-decoder ] + [ --sink ] + [ -a|--rtp-host ] + [ -o|--rtp-port-base ] + [ -A|--rtp-addr-local
] + [ -O|--rtp-port-base-local ] + [ -c|--no-auto-client ] + [ -t|--timeout ] + [ -k|--keepalive-interval ] + [ --rec-video-encoder ] + [ --rec-audio-encoder ] + [ --rec-mux ] + [ --rec-name-format ] +.... + + +DESCRIPTION +----------- + +*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. +This manpage describes *sydra-rtp* the basic utility for the task which is +based on GStreamer and is written in C. +The *sydra-rtp* 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). + +OPTIONS +------- + +The following options can be passed to the *sydra-rtp* daemon: + +*global options* + +*-D, --nodaemonize*:: + This option instructs *sydra-rtp* to run in foreground + instead of becoming a daemon which is the default. + +*-u, --username *:: + run as this user. If no group is specified (*-g*) the default group of + the user is used. The default is to not drop privileges. + +*-g, --groupname *:: + run as this group. If no username is specified (*-u*) this gets ignored. + The default is to not drop privileges. + +*-C, --chroot *:: + Instruct *sydra-rtp* to run in a chroot jail. The default is + to not run in chroot. + +*-P, --write-pid *:: + Instruct *sydra-rtp* to write it's pid to this file. The default is + to not create a pid file. + +*-L, --log :[,[,[..]]]*:: + add log target to logging system. This can be invoked several times + in order to log to different targets at the same time. Every target + has its own log level which is a number between 0 and 5. Where 0 means + disabling log and 5 means debug messages are enabled. + + The file target can be used more than once with different levels. + If no target is provided at the command line a single target with the + config *syslog:3,sydra-rtp,daemon* is added. + + The following targets are supported: + + *syslog*;; log to syslog daemon, parameters [,[,]] + *file*;; log to file, parameters [,] + *stdout*;; log to standard output, parameters + *stderr*;; log to standard error, parameters + +*-U, --debug*:: + This option instructs *sydra-rtp* to run in debug mode. It implicits *-D* + (don't daemonize) and adds a log target with the configuration + *stdout:5* (logging with maximum level). In future releases there might + be additional output when this option is supplied. + +*-n, --appname *:: + This set the application name using 'g_set_prgname()'. It will be used for example + by xvimagesink for window title. + +*-m, --mode (sender|reciever)*:: + This sets the main mode of *sydra-rtp*. The sender will read raw video and audio + from the source bin and send it via RTP to one or more receivers. + + +*sender-mode only options* + +*--source *:: + A gst-launch-style description for the raw video and audio bin. This bin must contain + an element called 'videosrc' and an element called 'audiosrc' which should each + contain a pad called 'src'. Theses pads will get connected to the encoder bins. + Example: + 'v4l2src ! videoconvert ! videoscale ! video/x-raw,format=I420,width=864,height=480 ! identity name="videosrc" + autoaudiosrc ! audio/x-raw,format=S16LE,channels=1,rate=48000 ! identity name="audiosrc"' + +*--video-encoder *:: + Bin description for the video encoder. Example: 'videoconvert ! vp8enc' + +*--video-payloader *:: + A RTP payloader element for the video codec in use. Example: 'rtpvp8pay' + +*--previewsink *:: + A video sink element for local preview. Example: 'videoconvert ! textoverlay test="preview" ! xvimagesink' + +*--audio-encoder *:: + Bin description for the audio encoder. Example: 'audioconveert ! opusenc' + +*--audio-payloader *:: + A RTP payloader element for the audio codec in use. Example: 'rtpopuspay' + + +*receiver-mode only options* + +*--video-caps *:: + These caps will get assigned to incoming RTP packets for video. Example: + 'application/x-rtp,media=video,clock-rate=90000,encoding-name=VP8-DRAFT-IETF-01,caps="video/x-vp8"' + +*--video-depayloader *:: + A RTP depayloader element for the video codec in use. Example: 'rtpvp8depay' + +*--video-decoder *:: + Bin description for the video decoder. Example: 'vp8dec' + +*--audio-caps *:: + These caps will get assigned to incoming RTP packets for audio. Example: + 'application/x-rtp,media=audio,clock-rate=48000,payload=96,encoding-name=X-GST-OPUS-DRAFT-SPITTKA-00,caps="audio/x-opus"' + +*--audio-depayloader *:: + A RTP depayloader element for the audio codec in use. Example: 'rtpopusdepay' + +*--audio-decoder *:: + Bin description for the audio decoder. Example: 'opusdec' + +*--sink *:: + A gst-launch-style description for the raw video and audio bin. This bin must contain + an element called 'videosink' and an element called 'audiosink' which should each + contain a pad called 'sink'. Theses pads will get connected to the decoder bins. + Example: + 'videoconvert name="videosink" ! videoscale add-borders=true ! xvimagesink + audioconvert name="audiosink" ! autoaudiosink' + +*options for RTP* + +*-a, --rtp-host *:: + In 'sender' mode this sets the address or hostname of the remote RTP receiver. Please + mind that the remote RTP host is always added as a receiver and it shouldn't be + configured to send keepalives. This would re-add the receiver to the list of clients + and as a result duplicate packages will be sent. + Also the remote RTP host is excluded from client timeout handling and remove requests + from it will get ignored. + When you omit this in sender mode the automatic client detection will be used to add + receivers. + In 'receiver' mode keepalive messages will be sent to this host. Leave empty to disable + keepalive messages. + +*-o, --rtp-port-base *:: + The base number for remote ports. *sydra-rtp* will send the RTP/RTCP packets using the following + mapping: + * rtp-port-base + 0: RTP Video + * rtp-port-base + 1: RTCP Video + * rtp-port-base + 2: RTP Audio + * rtp-port-base + 3: RTCP Audio + +*-A, --rtp-addr-local
*:: + The local address to wait for incoming UDP messages. Leave empty to listen on any address. + +*-O, --rtp-port-base-local *:: + The base number for local ports to bind to. The same mapping as for the remote port-base is + used to map incoming RTP packets to the RTP bin. + +*-c, --no-auto-client*:: + This disables auto-detection for clients in 'sender' mode. Mind that if you disable the + automatic client detection and also omit the rtp-host option *sydra-rtp* won't send any RTP + messages. If configured recording will work but this is most probably not what you want. + +*-t, --timeout *:: + This sets the client timeout in seconds in 'sender' mode. A value of 0 disables client + timeouts. This is not recommended. + +*-k, --keepalive-interval *:: + This sets the interval in seconds for sending out keepalive messages in 'receiver' mode. + A value of 0 disables keepalive messages and therefor the client auto detection won't + work for this client. + +*options for recording* + +*--rec-video-encoder *:: + A bin description for the video encoder used for recording. If you leave this empty the + output from the RTP video encoder is used. Example: 'videoconvert ! jpegenc' + +*--rec-audio-encoder *:: + A bin description for the audio encoder used for recording. If you leave this empty the + output from the RTP audio encoder is used. Example: 'audioconvert ! vorbisenc' + +*--rec-mux *:: + A gstreamer muxer element used for recording. If you leave this empty recording will be + disabled. Example: 'matroskamux' + +*--rec-name-format *:: + A 'strftime' based format string which will be used to create the name for the + recorded file. Example: ./recordings/%Y-%m-%d_%H-%M-%S.mkv + + +BUGS +---- +Most likely there are some bugs in *sydra-rtp*. If you find a bug, please let +the developers know at equinox@spreadspace.org. Of course, patches are preferred. + + +SEE ALSO +-------- + +*strftime*(3), *gst-launch*(1) + +AUTHORS +------- + +Christian Pointner + + +COPYING +------- + +Copyright \(C) 2014 Christian Pointner. This program is free +software: you can redistribute it and/or modify it under the terms +of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or any later version. -- cgit v1.2.3