mirror of
				https://github.com/rofafor/vdr-plugin-iptv.git
				synced 2023-10-10 11:37:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			162 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
This is an IPTV 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 >
 | 
						|
 | 
						|
                             Antti Seppälä
 | 
						|
                             <a j h s e p p a @ n i k s u l a . h u t . f i >
 | 
						|
 | 
						|
Project's homepage:          http://www.saunalahti.fi/~rahrenbe/vdr/iptv/
 | 
						|
 | 
						|
Latest version available at: http://www.saunalahti.fi/~rahrenbe/vdr/iptv/
 | 
						|
 | 
						|
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:
 | 
						|
 | 
						|
An IPTV patched VDR-1.5.10 (or later) setup and DVB compatible MPEG1/2
 | 
						|
network video streams.
 | 
						|
 | 
						|
Description:
 | 
						|
 | 
						|
This plugin integrates multicast IPTV transport streams seamlessly into
 | 
						|
VDR. You can use any IPTV 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.
 | 
						|
 | 
						|
Currently the IPTV plugin has direct support for both multicast UDP/RTP
 | 
						|
and unicast HTTP MPEG1/2 transport streams. Also a file input method is
 | 
						|
supported, but a file delay must be selected individually to prevent
 | 
						|
VDR's transfer buffer over/underflow. Therefore the file input should be
 | 
						|
considered as a testing feature only.
 | 
						|
 | 
						|
IPTV plugin also features a support for external streaming applications.
 | 
						|
With proper helper applications and configuration IPTV plugin is able to
 | 
						|
display not only MPEG1/2 transport streams but also other formats like
 | 
						|
MP3 radio streams, mms video streams and so on.
 | 
						|
 | 
						|
Installation:
 | 
						|
 | 
						|
cd /put/your/path/here/VDR/PLUGINS/src
 | 
						|
tar -xzf /put/your/path/here/vdr-iptv-X.Y.Z.tgz
 | 
						|
ln -s iptv-X.Y.Z iptv
 | 
						|
cd /put/your/path/here/VDR
 | 
						|
patch -p1 < PLUGINS/src/iptv/patches/vdr-X.Y.Z-pluginparam.patch
 | 
						|
cp sources.conf /path/to/vdrconf/
 | 
						|
cp -R PLUGINS/src/iptv/iptv /path/to/vdrconf/plugins/
 | 
						|
make
 | 
						|
make plugins
 | 
						|
./vdr -P iptv
 | 
						|
 | 
						|
Setup menu:
 | 
						|
 | 
						|
- TS buffer size [MB] = 2          Defines ringbuffer size for transport
 | 
						|
                                   stream in MB.
 | 
						|
                                   Valid range: 1...4
 | 
						|
- TS buffer prefill ratio [%] = 0  Defines prefill ratio for transport
 | 
						|
                                   stream ringbuffer before data is
 | 
						|
                                   transferred to VDR.
 | 
						|
                                   Valid range: 0...40
 | 
						|
- EXT protocol base port = 4321    Defines base port used in EXT protocol.
 | 
						|
                                   The port range is defined by the number
 | 
						|
                                   of IPTV devices (max. 8).
 | 
						|
                                   Valid range: 0...65527
 | 
						|
- Use section filtering = 1        Defines whether section filtering shall
 | 
						|
                                   be used.
 | 
						|
                                   Valid range: 0...1
 | 
						|
- Scan Sid automatically = 1       Defines whether service id shall be
 | 
						|
                                   scanned automatically. Requires section
 | 
						|
                                   filtering.
 | 
						|
                                   Valid range: 0...1
 | 
						|
- Disable filters = 0              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: 0...7
 | 
						|
- [Red:Channels]                   Opens IPTV channel editor.
 | 
						|
- [Blue:Info]                      Opens IPTV information/statistics menu.
 | 
						|
 | 
						|
Channel editor menu:
 | 
						|
 | 
						|
- Because of the different nature and content the VDR channel editor is not
 | 
						|
  best suited for editing of IPTV channels. Therefore an alternative editor
 | 
						|
  is provided which allows more IPTV centric editing of channel information.
 | 
						|
  An IPTV channel editor is accessible via "Setup -> Plugins -> IPTV" and
 | 
						|
  pressing the Red button. The channel editor is functionally similar to
 | 
						|
  VDR's built-in channel editor.
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
Configuration:
 | 
						|
 | 
						|
- channels.conf
 | 
						|
 | 
						|
  TV4;IPTV:4:IPTV|EXT|iptvstream.sh|0:P:0:0:680:0:0:4:0:0:0
 | 
						|
  TV3;IPTV:3:IPTV|FILE|/video/stream.ts|5:P:0:514:670:2321:0:3:0:0:0
 | 
						|
  TV2;IPTV:2:IPTV|HTTP|127.0.0.1/TS/2|3000:P:0:513:660:2321:0:2:0:0:0
 | 
						|
  TV1;IPTV:1:IPTV|UDP|127.0.0.1|1234:P:0:512:650:2321:0:1:0:0:0
 | 
						|
           ^ ^    ^   ^         ^    ^
 | 
						|
           | |    |   |         |    Source type ("P")
 | 
						|
           | |    |   |         IP Port Number, File delay (ms), Script parameter
 | 
						|
           | |    |   IP Address, File location, Script location
 | 
						|
           | |    Protocol ("UDP", "HTTP", "FILE", "EXT")
 | 
						|
           | Plugin ID ("IPTV")
 | 
						|
           Unique enumeration
 | 
						|
 | 
						|
- UDP multicast rules for iptables firewall
 | 
						|
 | 
						|
  # Multicast UDP -packets
 | 
						|
  iptables -A INPUT -i eth0 -p udp -d 224.0.0.0/4 --dport 1234 -j ACCEPT
 | 
						|
 | 
						|
  # IGMP required by multicasts
 | 
						|
  iptables -A INPUT -i eth0 -p igmp -d 224.0.0.0/4 -j ACCEPT
 | 
						|
 | 
						|
External streaming:
 | 
						|
 | 
						|
- To watch an externally received channel add an EXT entry to channels.conf
 | 
						|
  and specify a script name and parameter. The specified script is executed
 | 
						|
  from plugin configuration directory when VDR tunes to the channel. The
 | 
						|
  specified script parameter is passed to the script and it can be used to
 | 
						|
  select for example between different URLs.
 | 
						|
 | 
						|
- When an EXT channel is opened the IPTV plugin opens an UDP listening port
 | 
						|
  on the localhost. The external script is responsible for supplying IPTV
 | 
						|
  plugin with MPEG2 TS data in UDP/RTP format to the listening port. The
 | 
						|
  data will be processed in VDR like a normal DVB broadcast. The listening
 | 
						|
  base port can be specified in the plugin configuration menu.
 | 
						|
 | 
						|
- Each IPTV device has different listen port. The port number is specified
 | 
						|
  as a base port number plus IPTV device index minus one. Maximum of 8 IPTV
 | 
						|
  devices can be used simultaneously.
 | 
						|
 | 
						|
- IPTV plugin includes an example script which uses VLC media player for
 | 
						|
  receiving streams, transcoding and handing the result to IPTV plugin. The
 | 
						|
  plugin was tested with VLC version 0.8.6c.
 | 
						|
 | 
						|
Notes:
 | 
						|
 | 
						|
- Working EIT requires correct Nid/Tid/Sid values as the NIT filter cannot
 | 
						|
  determine the type (satellite/cable/terrestrial) of the IPTV transport
 | 
						|
  stream.
 | 
						|
 | 
						|
- The following section filters are recommended to be disabled:
 | 
						|
  "NIT (0x40)", "SDT (0x42)", "TDT (0x70)"
 | 
						|
 | 
						|
Acknowledgements:
 | 
						|
 | 
						|
- The IPTV section filtering code is derived from Linux kernel.
 |