Home > getstream

getstream

Getstream is a project mainly written in C, it's free.

fork of git://pax.zz.de/getstream.git

Building:

  • Install libevent and glib
  • Probably adapt paths in Makefile
  • type "make"

Configuration:

Adapter:

  As getstream is supposed to support multiple adapters with the same
  program instance the configuration starts with an adapter clause:

      adapter 1 {
        budget-mode 1;
        packet-buffer   50;
        stat-interval   120;
        stuck-interval  200;
      };

  - budget-mode
    Set to "0" disabled the budget mode where getstream
    request a seperate PID filter from the kernels filter. As
    the filters are limited on the full featured cards
    this is only a workaround and may work for 2-3 TV
    Channels. Streaming a full transponder on a full featured
    card is most certainly not possible.
    Getstream automatically disables budget mode when setting
    the filter for bit 0x2000 (Illegal value - tells kernel to
    stream full transponder aka "budget-mode") and setting
    the filter returns an error.

  - packet-buffer
    Set the amount of packets getstream trys to get from the
    kernels dvr interface. I see typically ~44 Packets/s per
    round read from the kernel. Setting this too high just
    wastes memory (a packet is 188 Bytes) setting it to low
    creates more context-switches and will reduce performance.

  - dvr-buffer
    Sets the kernel DVR ring buffer size in bytes (should be
    multiple of PAGE_SIZE e.g. 4096 on 32bit x86) via
    DMX_SET_BUFFER_SIZE. 

  - stat-interval
    The interval in seconds you will see the statistics on in the log e.g.

    2007-10-25 08:27:02.323 dvr: inputstats: 149 pids 23259 pkt/s 4372702 byte/s

  - stuck-interval
    Interval to fire the stuck check timer for e.g. FlexCop cards.
    Default 5 seconds, 0 disables.

Tuning or Card type:

As getstream supports DVB-C, DVB-T and DVB-S and all need different parameters for tuning in on the right transponder here is a short introduction on how to enter the right parameters.

DVB-T:

There are 6 possible options to list for a DVB-T transponder:

  frequency     - Frequency of transponder in Hz
  bandwidth     - auto, 6 (6Mhz), 7 (7Mhz), 8 (8Mhz)
  transmission-mode - auto, 2 (2Khz), 8 (8Khz)
  guard-interval    - auto, 4 (1/4), 8 (1/8), 16 (1/16), 32 (1/32)
  hierarchy     - none, auto, 1, 2, 4
  modulation    - auto, 16, 32, 64, 128, 256

Example:

    dvb-t {
      frequency 570000000;
      bandwidth 8;
      transmission-mode auto;
      guard-interval auto;
      hierarchy none;
      modulation auto;
    };

DVB-S / DVB-S2:

DVB-S consists of 2 parts - the LNB and the Transponder config:

lnb-sharing - Boolean When set getstream trys to not send
          an 22Khz Pilot tone or set high voltage for
          High/Low band or Polarisation but instead
          trusts a different card to do all necessary
          things. Some cards can not disable their power
          voltage completely so look out for problems.

lnb
    The config needs to match your LNB (Low Block converter)
    on your Dish - If you have a Ku Band LNB (Normal for
    most of the World) you need these informations:

    lof1    - Local osscilator frequency 1 (Low Band)
    lof2    - Local osscilator frequency 2 (High Band)
    slof    - Local osscilator frequency cut off

    If the transponder frequency is above the slof getstream
    enables the 22Khz Pilot tone to switch the LNB to
    High Band.

    If you have a C Band LNB you dont have a slof so dont
    configure it.  If you have a multipoint C Band LNB
    you have lof1 and lof2 in case you dont just configure
    the lof1.

Transponder:
    frequency   - Frequency of the Transponder in hz.
    polarisation    - Either H or V for Horizontal or Vertical
    symbol-rate - Symbol Rate - Most European transponders use 27500000
    diseqc      - LNB Diseq code

dvb-s {
    lnb-sharing yes;
    lnb {
        lof1 9750000;
        lof2 10600000;
        slof 11700000;
    };

    transponder {
        frequency 12266000;
        polarisation h;
        symbol-rate 27500000;
        diseqc 4;
    };
};

For "DVB-S2" the type obviously has to be changed to "dvb-s2". Also getstream
need to be compiled against the multiproto header files and you need to be using
multiproto enabled cards.

Input:

The input section in every stream defines which parts of the
Transponder needs to be forwarded into this stream. Currently
there are 3 options.

pid - A static pid to forward. Sometimes people want to 
      have the encryption stuff forwarded e.g. pid 10 and 11

pnr - Program number e.g. a full Programm including all pids.

full    - A full transponder e.g. the same as pid 0x2000.

Example:
--------

input {
    full;
};

SAP:

Can be used in the output-rtp and output-udp sections to send SAP announcements.

scope       - Multicast group which is used for the SAP announcemens.
          Possible values:
            global  - Global SAP address (224.2.127.254:9875) (default)
            org     - Organization-local SAP address (239.195.255.255:9875)
            local   - Local SAP address (239.255.255.255:9875)
            link    - Link-local SAP address (224.0.0.255:9875)

sap-group   - Multicast group address which is used for the SAP announcemens (overrides scope).
sap-port    - Port which is used for the SAP announcemens (overrides scope).
announce-host   - unused
announce-port   - unused
ttl     - TTL for the SAP announcemens.
          By default the output stream's TTL is used.
interval    - Announcement interval (in seconds) (default=1).
playgroup   - SAP/SDP group name.
uri     - An URI with additional information.
description - Stream description.
email       - EMail contact information (can be used multiple times).
phone       - Phone contact information (can be used multiple times).
attribute   - Additional SDP attribute, see RFC2327 for details (can be used multiple times).

Example:
--------
sap {
    scope global;
    interval 5;
    playgroup "TV";
    description "Example TV stream";
    uri "http://example.com";
    email "<Bob Smith> [email protected]";
    phone "+49 555 555-555";
    attribute "tool:getstream";
    attribute "recvonly";
};
Previous:NoBagSalamat.com