diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/sydra.8 | 254 | ||||
-rw-r--r-- | doc/sydra.8.txt | 154 |
2 files changed, 408 insertions, 0 deletions
diff --git a/doc/sydra.8 b/doc/sydra.8 index d8b3337..6e875d4 100644 --- a/doc/sydra.8 +++ b/doc/sydra.8 @@ -41,6 +41,32 @@ sydra \- toolbox for RTP based streams [ \fB\-P|\-\-write\-pid\fR <filename> ] [ \fB\-L|\-\-log\fR <target>:<level>[,<param1>[,<param2>[\&.\&.]]] ] [ \fB\-U|\-\-debug\fR ] + [ \fB\-n|\-\-appname\fR <name> ] + [ \fB\-m|\-\-mode\fR (sender|reciever) ] + [ \fB\-\-source\fR <bin description> ] + [ \fB\-\-video\-encoder\fR <bin description> ] + [ \fB\-\-video\-payloader\fR <element> ] + [ \fB\-\-previewsink\fR <bin description> ] + [ \fB\-\-audio\-encoder\fR <bin description> ] + [ \fB\-\-audio\-payloader\fR <element> ] + [ \fB\-\-video\-caps\fR <caps> ] + [ \fB\-\-video\-depayloader\fR <element> ] + [ \fB\-\-video\-decoder\fR <bin description> ] + [ \fB\-\-audio\-caps\fR <caps> ] + [ \fB\-\-audio\-depayloader\fR <element> ] + [ \fB\-\-audio\-decoder\fR <bin description> ] + [ \fB\-\-sink\fR <bin description> ] + [ \fB\-a|\-\-rtp\-host\fR <host> ] + [ \fB\-o|\-\-rtp\-port\-base\fR <port> ] + [ \fB\-A|\-\-rtp\-addr\-local\fR <address> ] + [ \fB\-O|\-\-rtp\-port\-base\-local\fR <port> ] + [ \fB\-c|\-\-no\-auto\-client\fR ] + [ \fB\-t|\-\-timeout\fR <timeout> ] + [ \fB\-k|\-\-keepalive\-interval\fR <interval> ] + [ \fB\-\-rec\-video\-encoder\fR <bin description> ] + [ \fB\-\-rec\-audio\-encoder\fR <bin description> ] + [ \fB\-\-rec\-mux\fR <element> ] + [ \fB\-\-rec\-name\-format\fR <formatstring> ] .fi .SH "DESCRIPTION" .sp @@ -48,6 +74,8 @@ sydra \- toolbox for RTP based streams .SH "OPTIONS" .sp The following options can be passed to the \fBsydra\fR daemon: +.sp +\fBglobal options\fR .PP \fB\-D, \-\-nodaemonize\fR .RS 4 @@ -121,6 +149,232 @@ to run in debug mode\&. It implicits \fBstdout:5\fR (logging with maximum level)\&. In future releases there might be additional output when this option is supplied\&. .RE +.PP +\fB\-n, \-\-appname <name>\fR +.RS 4 +This set the application name using +\fIg_set_prgname()\fR\&. It will be used for example by xvimagesink for window title\&. +.RE +.PP +\fB\-m, \-\-mode (sender|reciever)\fR +.RS 4 +This sets the main mode of +\fBsydra\fR\&. The sender will read raw video and audio from the source bin and send it via RTP to one or more receivers\&. +.RE +.sp +\fBsender\-mode only options\fR +.PP +\fB\-\-source <bin description>\fR +.RS 4 +A gst\-launch\-style description for the raw video and audio bin\&. This bin must contain an element called +\fIvideosrc\fR +and an element called +\fIaudiosrc\fR +which should each contain a pad called +\fIsrc\fR\&. Theses pads will get connected to the encoder bins\&. Example: +\fIv4l2src ! 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"\fR +.RE +.PP +\fB\-\-video\-encoder <bin description>\fR +.RS 4 +Bin description for the video encoder\&. Example: +\fIvideoconvert ! vp8enc\fR +.RE +.PP +\fB\-\-video\-payloader <element>\fR +.RS 4 +A RTP payloader element for the video codec in use\&. Example: +\fIrtpvp8pay\fR +.RE +.PP +\fB\-\-previewsink <bin description>\fR +.RS 4 +A video sink element for local preview\&. Example: +\fIvideoconvert ! textoverlay test="preview" ! xvimagesink\fR +.RE +.PP +\fB\-\-audio\-encoder <bin description>\fR +.RS 4 +Bin description for the audio encoder\&. Example: +\fIaudioconveert ! opusenc\fR +.RE +.PP +\fB\-\-audio\-payloader <element>\fR +.RS 4 +A RTP payloader element for the audio codec in use\&. Example: +\fIrtpopuspay\fR +.RE +.sp +\fBreceiver\-mode only options\fR +.PP +\fB\-\-video\-caps <caps>\fR +.RS 4 +These caps will get assigned to incoming RTP packets for video\&. Example: +\fIapplication/x\-rtp,media=video,clock\-rate=90000,encoding\-name=VP8\-DRAFT\-IETF\-01,caps="video/x\-vp8"\fR +.RE +.PP +\fB\-\-video\-depayloader <element>\fR +.RS 4 +A RTP depayloader element for the video codec in use\&. Example: +\fIrtpvp8depay\fR +.RE +.PP +\fB\-\-video\-decoder <bin description>\fR +.RS 4 +Bin description for the video decoder\&. Example: +\fIvp8dec\fR +.RE +.PP +\fB\-\-audio\-caps <caps>\fR +.RS 4 +These caps will get assigned to incoming RTP packets for audio\&. Example: +\fIapplication/x\-rtp,media=audio,clock\-rate=48000,payload=96,encoding\-name=X\-GST\-OPUS\-DRAFT\-SPITTKA\-00,caps="audio/x\-opus"\fR +.RE +.PP +\fB\-\-audio\-depayloader <element>\fR +.RS 4 +A RTP depayloader element for the audio codec in use\&. Example: +\fIrtpopusdepay\fR +.RE +.PP +\fB\-\-audio\-decoder <bin description>\fR +.RS 4 +Bin description for the audio decoder\&. Example: +\fIopusdec\fR +.RE +.PP +\fB\-\-sink <bin description>\fR +.RS 4 +A gst\-launch\-style description for the raw video and audio bin\&. This bin must contain an element called +\fIvideosink\fR +and an element called +\fIaudiosink\fR +which should each contain a pad called +\fIsink\fR\&. Theses pads will get connected to the decoder bins\&. Example: +\fIvideoconvert name="videosink" ! videoscale add\-borders=true ! xvimagesink audioconvert name="audiosink" ! autoaudiosink\fR +.RE +.sp +\fBoptions for RTP\fR +.PP +\fB\-a, \-\-rtp\-host <host>\fR +.RS 4 +In +\fIsender\fR +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\(cqt 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 +\fIreceiver\fR +mode keepalive messages will be sent to this host\&. Leave empty to disable keepalive messages\&. +.RE +.PP +\fB\-o, \-\-rtp\-port\-base <port>\fR +.RS 4 +The base number for remote ports\&. +\fBsydra\fR +will send the RTP/RTCP packets using the following mapping: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +rtp\-port\-base + 0: RTP Video +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +rtp\-port\-base + 1: RTCP Video +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +rtp\-port\-base + 2: RTP Audio +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +rtp\-port\-base + 3: RTCP Audio +.RE +.RE +.PP +\fB\-A, \-\-rtp\-addr\-local <address>\fR +.RS 4 +The local address to wait for incoming UDP messages\&. Leave empty to listen on any address\&. +.RE +.PP +\fB\-O, \-\-rtp\-port\-base\-local <port>\fR +.RS 4 +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\&. +.RE +.PP +\fB\-c, \-\-no\-auto\-client\fR +.RS 4 +This disables auto\-detection for clients in +\fIsender\fR +mode\&. Mind that if you disable the automatic client detection and also omit the rtp\-host option +\fBsydra\fR +won\(cqt send any RTP messages\&. If configured recording will work but this is most probably not what you want\&. +.RE +.PP +\fB\-t, \-\-timeout <timeout>\fR +.RS 4 +This sets the client timeout in seconds in +\fIsender\fR +mode\&. A value of 0 disables client timeouts\&. This is not recommended\&. +.RE +.PP +\fB\-k, \-\-keepalive\-interval <interval>\fR +.RS 4 +This sets the interval in seconds for sending out keepalive messages in +\fIreceiver\fR +mode\&. A value of 0 disables keepalive messages and therefor the client auto detection won\(cqt work for this client\&. +.RE +.sp +\fBoptions for recording\fR +.PP +\fB\-\-rec\-video\-encoder <bin description>\fR +.RS 4 +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: +\fIvideoconvert ! jpegenc\fR +.RE +.PP +\fB\-\-rec\-audio\-encoder <bin description>\fR +.RS 4 +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: +\fIaudioconvert ! vorbisenc\fR +.RE +.PP +\fB\-\-rec\-mux <element>\fR +.RS 4 +A gstreamer muxer element used for recording\&. If you leave this empty recording will be disabled\&. Example: +\fImatroskamux\fR +.RE +.PP +\fB\-\-rec\-name\-format <formatstring>\fR +.RS 4 +A +\fIstrftime\fR +based format string which will be used to create the name for the recorded file\&. Example: \&./recordings/%Y\-%m\-%d_%H\-%M\-%S\&.mkv +.RE .SH "BUGS" .sp Most likely there are some bugs in \fBsydra\fR\&. If you find a bug, please let the developers know at equinox@spreadspace\&.org\&. Of course, patches are preferred\&. diff --git a/doc/sydra.8.txt b/doc/sydra.8.txt index 6330b71..532f6de 100644 --- a/doc/sydra.8.txt +++ b/doc/sydra.8.txt @@ -20,6 +20,32 @@ sydra [ -P|--write-pid <filename> ] [ -L|--log <target>:<level>[,<param1>[,<param2>[..]]] ] [ -U|--debug ] + [ -n|--appname <name> ] + [ -m|--mode (sender|reciever) ] + [ --source <bin description> ] + [ --video-encoder <bin description> ] + [ --video-payloader <element> ] + [ --previewsink <bin description> ] + [ --audio-encoder <bin description> ] + [ --audio-payloader <element> ] + [ --video-caps <caps> ] + [ --video-depayloader <element> ] + [ --video-decoder <bin description> ] + [ --audio-caps <caps> ] + [ --audio-depayloader <element> ] + [ --audio-decoder <bin description> ] + [ --sink <bin description> ] + [ -a|--rtp-host <host> ] + [ -o|--rtp-port-base <port> ] + [ -A|--rtp-addr-local <address> ] + [ -O|--rtp-port-base-local <port> ] + [ -c|--no-auto-client ] + [ -t|--timeout <timeout> ] + [ -k|--keepalive-interval <interval> ] + [ --rec-video-encoder <bin description> ] + [ --rec-audio-encoder <bin description> ] + [ --rec-mux <element> ] + [ --rec-name-format <formatstring> ] .... @@ -38,6 +64,8 @@ OPTIONS The following options can be passed to the *sydra* daemon: +*global options* + *-D, --nodaemonize*:: This option instructs *sydra* to run in foreground instead of becoming a daemon which is the default. @@ -79,6 +107,132 @@ The following options can be passed to the *sydra* daemon: *stdout:5* (logging with maximum level). In future releases there might be additional output when this option is supplied. +*-n, --appname <name>*:: + 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*. 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 <bin description>*:: + 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>*:: + Bin description for the video encoder. Example: 'videoconvert ! vp8enc' + +*--video-payloader <element>*:: + A RTP payloader element for the video codec in use. Example: 'rtpvp8pay' + +*--previewsink <bin description>*:: + A video sink element for local preview. Example: 'videoconvert ! textoverlay test="preview" ! xvimagesink' + +*--audio-encoder <bin description>*:: + Bin description for the audio encoder. Example: 'audioconveert ! opusenc' + +*--audio-payloader <element>*:: + A RTP payloader element for the audio codec in use. Example: 'rtpopuspay' + + +*receiver-mode only options* + +*--video-caps <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 <element>*:: + A RTP depayloader element for the video codec in use. Example: 'rtpvp8depay' + +*--video-decoder <bin description>*:: + Bin description for the video decoder. Example: 'vp8dec' + +*--audio-caps <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 <element>*:: + A RTP depayloader element for the audio codec in use. Example: 'rtpopusdepay' + +*--audio-decoder <bin description>*:: + Bin description for the audio decoder. Example: 'opusdec' + +*--sink <bin description>*:: + 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 <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 <port>*:: + The base number for remote ports. *sydra* 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 <address>*:: + The local address to wait for incoming UDP messages. Leave empty to listen on any address. + +*-O, --rtp-port-base-local <port>*:: + 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* won't send any RTP + messages. If configured recording will work but this is most probably not what you want. + +*-t, --timeout <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 <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 <bin description>*:: + 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 <bin description>*:: + 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 <element>*:: + A gstreamer muxer element used for recording. If you leave this empty recording will be + disabled. Example: 'matroskamux' + +*--rec-name-format <formatstring>*:: + 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 ---- |