mirror of
https://github.com/rofafor/vdr-plugin-satip.git
synced 2023-10-10 13:37:42 +02:00
212 lines
9.5 KiB
Plaintext
212 lines
9.5 KiB
Plaintext
This is an SAT>IP plugin for the Video Disk Recorder (VDR).
|
|
|
|
Written by: Rolf Ahrenberg
|
|
< R o l f . A h r e n b e r g @ s c i . f i >
|
|
|
|
Project's homepage: https://github.com/rofafor/vdr-plugin-satip
|
|
|
|
Latest version available at: https://github.com/rofafor/vdr-plugin-satip/releases
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License version 2 as
|
|
published by the Free Software Foundation.
|
|
See the file COPYING for more information.
|
|
|
|
Requirements:
|
|
|
|
- Libcurl >= 7.36.0 - the multiprotocol file transfer library with RTSP support
|
|
http://curl.haxx.se/libcurl/
|
|
|
|
- PugiXML - Light-weight, simple and fast XML parser for C++
|
|
http://pugixml.org/
|
|
or
|
|
TinyXML - a simple, small, C++ XML parser
|
|
http://www.grinninglizard.com/tinyxml/
|
|
|
|
- Glibc >= 2.12 - the GNU C library (recvmmsg)
|
|
http://www.gnu.org/software/libc/
|
|
|
|
Description:
|
|
|
|
This plugin integrates SAT>IP network devices seamlessly into VDR.
|
|
You can use any SAT>IP channel like any other normal DVB channel for
|
|
live viewing, recording, etc. The plugin also features full section
|
|
filtering capabilities which allow for example EIT information to be
|
|
extracted from the incoming stream.
|
|
|
|
Installation:
|
|
|
|
tar -xzf /put/your/path/here/vdr-satip-X.Y.Z.tgz
|
|
make -C satip-X.Y.Z install
|
|
|
|
Configuration:
|
|
|
|
The plugin accepts a "--devices" (-d) command-line parameter defaulting
|
|
to two. This parameter defines how many simultaneous transponders can
|
|
be received, if there are available SAT>IP tuners.
|
|
|
|
The plugin accepts also a "--server" (-s) command-line parameter, that
|
|
can be used to manually configure static SAT>IP servers if autodetection
|
|
via UPnP somehow can't be used. Multiple service entries can be given
|
|
separated by a semicolon:
|
|
|
|
[<srcaddress>@]<ipaddress>[:<port>]|<model>[:<filter>]|<description>[:<quirk>];...
|
|
|
|
- srcaddress (Optional) Source address can be used to define used
|
|
networking interface on a host, e.g. 127.0.0.1.
|
|
- ipaddress IP address of SAT>IP server, e.g. 127.0.0.1.
|
|
- port (Optional) IP port number of SAT>IP server, e.g 443.
|
|
- model Model defines DVB modulation system (DVBS2,
|
|
DVBT2, DVBT, DVBC) and number of available
|
|
frontends separated by a hyphen, e.g. DVBT2-4.
|
|
- filter (Optional) Filter can be used to limit satellite frontends
|
|
to certain satellite position, e.g. S19.2E.
|
|
- description Friendly name of SAT>IP server. This is used
|
|
for autodetection of quirks.
|
|
- quirk (Optional) Quirks are non-standard compliant features and
|
|
bug fixes of SAT>IP server defined by a
|
|
hexadecimal number. Multiple quirks can be
|
|
defined by combining values by addition:
|
|
|
|
0x01: Fix session id bug
|
|
0x02: Fix play parameter (addpids/delpids) bug
|
|
0x04: Fix frontend locking bug
|
|
0x08: Support for RTP over TCP
|
|
0x10: Support the X_PMT protocol extension
|
|
0x20: Support the CI TNR protocol extension
|
|
0x40: Fix auto-detection of pilot tones bug
|
|
0x80: Fix re-tuning bug by teardowning a session
|
|
|
|
Examples:
|
|
|
|
vdr -P 'satip -s 192.168.0.1|DVBS2-2,DVBT2-2|OctopusNet'
|
|
vdr -P 'satip -s 192.168.0.1|DVBS2-4|OctopusNet;192.168.0.2|DVBT2-4|minisatip:0x18'
|
|
vdr -P 'satip -s 192.168.0.1:554|DVBS2-2:S19.2E|OctopusNet;192.168.0.2:8554|DVBS2-4:S19.2E,S1W|minisatip'
|
|
|
|
The plugin accepts a "--portrange" (-p) command-line parameter, that can
|
|
be used to manually specify the RTP & RTCP port range and therefore
|
|
enables using the plugin through a NAT (e.g. Docker bridged network).
|
|
A minimum of 2 ports per device is required.
|
|
|
|
SAT>IP satellite positions (aka. signal sources) shall be defined via
|
|
sources.conf. If the source description begins with a number, it's used
|
|
as SAT>IP signal source selection parameter. A special number zero can
|
|
be used to disable the source. Otherwise, the default parameter is one:
|
|
|
|
S19.2E Astra 1KR/1L/1M/2C
|
|
=> Signal source = 1
|
|
|
|
S19.2E 2
|
|
=> Signal source = 2
|
|
|
|
S19.2E 3 Astra 1KR/1L/1M/2C
|
|
=> Signal source = 3
|
|
|
|
S19.2E 0 Astra 1KR/1L/1M/2C
|
|
=> Source is disabled
|
|
|
|
A channel can be assigned into a specific SAT>IP frontend by giving the
|
|
identifier number in RID field of a channels.conf entry:
|
|
FE = RID % 100
|
|
Valid range: 1 ... 99
|
|
|
|
Setup menu:
|
|
|
|
- Operating mode = off If you want exclude all SAT>IP devices
|
|
low from VDR's device handling, set this
|
|
normal option to "off". Otherwise, if you want
|
|
high to keep SAT>IP at a low priority when
|
|
selecting available devices, set this
|
|
option to "low". Similarly, the "high"
|
|
value prefers the SAT>IP over the local
|
|
DVB cards when selecting available devices.
|
|
- Use CI extension = no If you want to use the CI extension found
|
|
in some SAT>IP hardware (e.g. Digital
|
|
Devices OctopusNet), set this option to
|
|
"yes".
|
|
- CICAM #<slot> = <system> If you want to assign a CA system into
|
|
a specific CI slot, set this option to
|
|
a named one. Use "---" for autoselection.
|
|
- Enable EPG scanning = yes If you want exclude all SAT>IP devices
|
|
from VDR's EIT background scanning, set
|
|
this option to "no".
|
|
- Disabled sources = none If your SAT>IP servers don't have certain
|
|
satellite positions available you can
|
|
disable them via this option.
|
|
- Disabled filters = none Certain section filters might cause some
|
|
unwanted behaviour to VDR such as time
|
|
being falsely synchronized etc. This option
|
|
allows creation of blacklists of ill-behaving
|
|
filters. If this option is set to a non-zero
|
|
value, the menu page will contain that many
|
|
"Disable filter" options which allow you
|
|
to disable the individual section filters.
|
|
Valid range: "none" = 0 ... 7
|
|
- Transport mode = unicast If you want to use the non-standard
|
|
multicast RTP-over-TCP transport mode, set this option
|
|
rtp-o-tcp accordingly. Otherwise, the transport
|
|
mode will be RTP-over-UDP via unicast or
|
|
multicast.
|
|
- Enable frontend reuse = yes Certain devices might have artifacts if
|
|
multiple channels are assigned to the same
|
|
frontend. If you want to avoid such a
|
|
frontend assignment, set this option to "no".
|
|
- [Red:Scan] Forces network scanning of SAT>IP hardware.
|
|
- [Yellow:Devices] Opens SAT>IP device status menu.
|
|
- [Blue:Info] Opens SAT>IP information/statistics menu.
|
|
- [Ok] Opens information menu of selected SAT>IP
|
|
device.
|
|
|
|
Information menu:
|
|
|
|
- [Red:General] Opens the general information page.
|
|
- [Green:Pids] Opens the pid statistics page.
|
|
- [Yellow:Filters] Opens the section filter statistics page.
|
|
- [Blue:Bits/bytes] Toggles between bits and bytes mode.
|
|
|
|
Notes:
|
|
|
|
- If you are having problems receiving DVB-S2 channels, make sure your
|
|
channels.conf entry contains correct pilot tone setting.
|
|
|
|
- The stream id "-1" states about unsuccessful tuning. This might be a
|
|
result of invalid channel parameters or lack of free SAT>IP tuners.
|
|
|
|
- If the plugin doesn't detect your SAT>IP network device, make sure
|
|
your setup doesn't have firewalled the UDP port 1900.
|
|
|
|
- Stream decryption requires a separate CAM plugin that works without
|
|
direct access to any DVB card devices. Also the integrated CAM slots
|
|
in Octopus Net devices are supported.
|
|
|
|
- Tracing can be set on/off dynamically via command-line switch or
|
|
SVDRP command.
|
|
|
|
- OctopusNet firmware 1.0.40 or greater recommended.
|
|
|
|
- Inverto OEM firmware 1.17.0.120 or greater recommended.
|
|
The firmware 1.16.0.120 can be downloaded and installed
|
|
from their webpage: http://www.inverto.tv/support/
|
|
An update to a newer firmware should be offered afterwards.
|
|
|
|
- FRITZ!OS 7.00 or greater recommended for FRITZ!Box Cable devices.
|
|
Older firmware versions require both PlayPids and ForceLock quirks.
|
|
|
|
- If you are experiencing glitches in the video stream, one possible
|
|
reason can be buffer overflows in RTP receive sockets. You can verify
|
|
this by checking "receive buffer errors" counter by running "netstat -s"
|
|
command. If the counter increases every time a video glitch happens,
|
|
you should try to tweak the RTP receive buffer size with the "--rcvbuf"
|
|
(-r) plugin parameter.
|
|
A good starting point for the buffer size is to double the operating
|
|
system default value until errors disappear or the maximum value is
|
|
reached. You can check these values in Linux by checking the kernel
|
|
parameters:
|
|
$ cat /proc/sys/net/core/rmem_default
|
|
$ cat /proc/sys/net/core/rmem_max
|
|
|
|
Acknowledgements:
|
|
|
|
- Big thanks to Digital Devices GmbH for providing the Octopus Net
|
|
hardware for development!
|