|
|
(45 dazwischenliegende Versionen von 18 Benutzern werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
− | == a) Analog-TV mit einer pvr 250/350 == | + | ==Allgemein== |
| + | Der VDR ist nur für den Empfang von digitalem TV ausgelegt, eine Nutzung von unkomprimiertem analogem Video ist in VDR nicht vorgesehen. Um trotzdem analoges Fernsehen über die VDR-[[Ausgabegeräte]] darzustellen und aufzunehmen, muss dieses (wie die DVB-Daten) im MPEG-Format vorliegen. Diese Aufgabe erledigen entweder das jeweilige Plugin oder spezielle TV-Karten. Die Umwandlung der analogen Video- und Audio-Daten übernimmt entweder ein Software-Encoder oder der Hardware-Encoder auf der analogen TV-Karte. |
| | | |
− | '''0) benoetigt:''' | + | Nutzbar ist nur die Variante '''mit Hardware-MPEG2-Encodierung''', wie sie von den [[HauppaugePVR|'''Hauppauge-Karten PVR x50''' und '''PVR USB2''']] bereitgestellt wird. Es ist prinzipiell auch möglich, andere analoge TV-Karte ohne Hardware Encoder zu benutzenen - jedoch gibt es kein lauffähiges Plugin dazu. |
− | pvr250(ohne video-out, FF Karte zus. nötig)/pvr350(mit video-out)
| + | Für die [[HauppaugePVR| Hauppauge PVR-Karten]] wurde hier eine eigene Seite zusammengestellt. |
− | compiler, perl, wget
| + | |
| | | |
− | ''Die Methode hier ist ganz sicher nicht fehlerlos!
| + | ==analoge Karten ohne Hardware-Decoder== |
− | Und auch nicht unbedingt für absolute linux-Anfänger geeignet.
| + | WinTV Go/Express und ähnliche analoge Karten auf BT848/878 Basis sind von den aktuell nutzbaren Plugins nicht unterstützt. |
| | | |
− | Was hier so glatt aussieht hat jede Menge Stolpersteine.
| + | ==Bilder== |
− | Aber vielleicht ist der eine oder andre nützliche Tip mit bei.''
| + | <gallery> |
| + | Pvr250.jpg|Hauppauge PVR250<br />(analoge TV-Karte mit Hardware MPEG) |
| + | Pvrusb2-gross.jpg|Hauppauge PVRUSB2<br />(externe USB analog TV-Box mit Hardware MPEG) |
| + | </gallery> |
| | | |
− | | + | ==Weiterführende Dokumente== |
− | '''1) download der sources'''
| + | * Hintergrundinformationen zu [[HauppaugePVR|'''Hauppauge PVR 150''', '''Hauppauge PVR 250''', '''PVR 350''', '''PVR 500''' und '''PVR USB2''']] |
− | | + | * Informationen zum [[Pvrinput-plugin|Pvrinput-Plugin]] |
− | mkdir ivtv_install && cd ivtv_install
| + | * Informationen zum [[pvr350-plugin|pvr350-Plugin]] |
− | | + | [[Kategorie:AnalogTV]] |
− | wget http://cesnet.dl.sourceforge.net/sourceforge/ivtv/ivtv-0.1.9.tar.gz
| + | |
− | | + | |
− | wget http://heanet.dl.sourceforge.net/sourceforge/ivtv/Video-Frequencies-0.03.tar.gz
| + | |
− | | + | |
− | wget http://search.cpan.org/CPAN/authors/id/W/WA/WADG/Config-IniFiles-2.38.tar.gz
| + | |
− | | + | |
− | wget http://search.cpan.org/CPAN/authors/id/N/NI/NI-S/Tk-804.027.tar.gz
| + | |
− | | + | |
− | '''2) den ivtv Treiber installieren'''
| + | |
− | | + | |
− | tar -xzf ivtv-0.1.9.tar.gz
| + | |
− | | + | |
− | cd ivtv/utils
| + | |
− | | + | |
− | # mounten des cdrom und extrahieren der Firmware von der Windows Treiber cd,
| + | |
− | # u.U. muss hier der komplette Pfad zur exe angeben werden
| + | |
− | | + | |
− | mount /dvd
| + | |
− | | + | |
− | ./ivtvfwextract.pl /dvd
| + | |
− | | + | |
− | cd ..
| + | |
− | | + | |
− | # den Patch aus dem vdr einspielen. vorher mit tar xfz vdr-1.3.11.tar.bz2 auspacken
| + | |
− | | + | |
− | patch -p2 < ../vdr-1.3.11/PLUGINS/src/analogtv/patches/ivtv-0.1.9.diff
| + | |
− | | + | |
− | cd driver
| + | |
− |
| + | |
− | cp ../utils/videodev2.h .
| + | |
− | | + | |
− | make
| + | |
− | | + | |
− | make install
| + | |
− | | + | |
− | cd ../utils
| + | |
− | | + | |
− | make
| + | |
− | | + | |
− | make install
| + | |
− | | + | |
− | cd..
| + | |
− | | + | |
− | # wir erstellen mit einem editor ein script namens "insmod.sh":
| + | |
− | # nach erstellen bitte unbedingt "chmod +x insmod.sh" ausführen
| + | |
− | | + | |
− | ===============================================================
| + | |
− | #/bin/bash
| + | |
− | #______link to ivtv-0.1.9______________________
| + | |
− | IVTV_DIR="/usr/src/ivtv_install/ivtv/driver"
| + | |
− | #______________________________________________
| + | |
− | I2C_DRIVERS="i2c-core i2c-algo-bit"
| + | |
− | IVTV_UNLOAD_DRIVERS="tveeprom ivtv saa7115 msp3400 tuner videodev \
| + | |
− | i2c-algo-bit i2c-core"
| + | |
− | case "$1" in
| + | |
− | ivtv_start)
| + | |
− | echo loading ivtv driver
| + | |
− | cd $IVTV_DIR
| + | |
− | for DRIVER in $I2C_DRIVERS ; do
| + | |
− | modprobe $DRIVER
| + | |
− | done
| + | |
− | modprobe videodev
| + | |
− | modprobe tuner type=29 pal=1
| + | |
− | insmod msp3400.o once=1 simple=1
| + | |
− | insmod saa7115.o
| + | |
− | insmod ivtv.o video_nr=0 mpg_buffers=100
| + | |
− | insmod tveeprom.o
| + | |
− | ;;
| + | |
− | ivtv_stop)
| + | |
− | echo unloading ivtv driver
| + | |
− | for DRIVER in $IVTV_UNLOAD_DRIVERS ; do
| + | |
− | rmmod $DRIVER
| + | |
− | done
| + | |
− | ;;
| + | |
− | *) | + | |
− | echo usage: $0 [ivtv_start/ivtv_stop]
| + | |
− | exit 1
| + | |
− | ;;
| + | |
− | esac
| + | |
− | ===============================================================
| + | |
− | | + | |
− | chmod +x insmod.sh
| + | |
− | # jetzt laden wir den Treiber doch mal und gucken was rauskommt:
| + | |
− | ./insmod.sh ivtv_start
| + | |
− | # und jetzt gucken wir mal was der kernel dazu sagt:
| + | |
− | dmesg
| + | |
− | ..
| + | |
− | tvee: tuner=LG TP18PSB11D (idx=48, type=29)
| + | |
− | ..
| + | |
− | # aha, wir müssen also den treiber tuner mit type=29 laden!
| + | |
− | # Dann entweder mit der 29 in die /etc/modules oder in das script da oben.
| + | |
− | # also:
| + | |
− | ./insmod.sh ivtv_stop
| + | |
− | # das script für den korrekten tuner modifizieren, dann
| + | |
− | ./insmod.sh ivtv_start
| + | |
− | # okay, der Treiber sollte jetzt korrekt geladen sein.
| + | |
− | cd ..
| + | |
− | | + | |
− | '''3) wir installieren etwas Zubehör:''' | + | |
− | tar -xzf Video-Frequencies-0.03
| + | |
− | cd Video-Frequencies-0.03
| + | |
− | perl Makefile.PL
| + | |
− | make
| + | |
− | make install
| + | |
− | cd ..
| + | |
− | | + | |
− | tar -xzf Video-ivtv-0.12.tar.gz
| + | |
− | cd Video-ivtv-0.12
| + | |
− | perl Makefile.PL
| + | |
− | make
| + | |
− | make install
| + | |
− | cd ..
| + | |
− | | + | |
− | tar -xzf Config-IniFiles-2.38.tar.gz
| + | |
− | cd Config-IniFiles-2.38
| + | |
− | perl Makefile.PL
| + | |
− | make
| + | |
− | make install
| + | |
− | cd ..
| + | |
− | | + | |
− | tar -xzf Tk-804.027.tar.gz
| + | |
− | cd Tk-804.027
| + | |
− | perl Makefile.PL
| + | |
− | make
| + | |
− | make install
| + | |
− | cd ..
| + | |
− | | + | |
− | # okay. wir haben alles und könnten ja mal testen.
| + | |
− | | + | |
− | '''4) der erste Test:''' | + | |
− | # wir stellen den Tuner auf PAL und stellen als Videosource den Tuner "Tuner0" ein:
| + | |
− | | + | |
− | test_ioctl -u 0xff -p4
| + | |
− | | + | |
− | # und gucken mal etwas fern. :o))
| + | |
− | # ( hierzu muß aber der dvb-treiber entladen sein. )
| + | |
− | | + | |
− | mplayer /dev/video0
| + | |
− | | + | |
− | # hier sollte ein Bildrauschen zu sehen sein.
| + | |
− | # aber wer will schon Rauschen? Also: Sender tunen!
| + | |
− | # in einer andren shell:
| + | |
− | | + | |
− | cd ivtv/utils
| + | |
− | | + | |
− | # falls du unter X arbeitest:
| + | |
− | | + | |
− | ./ptune-ui.pl
| + | |
− | | + | |
− | # oder auch ohne X:
| + | |
− | | + | |
− | ./ptune.pl --frequency=XXXXXX
| + | |
− | | + | |
− | # für die xx'se setzt man eine bekannte Frequenz ein, z.B. 133250
| + | |
− | | + | |
− | # okay, der Treiber geht, also eintragen:
| + | |
− | # in die /etc/modules.conf:
| + | |
− | | + | |
− | # WinTV PVR 250/350
| + | |
− | alias char-major-81 videodev
| + | |
− | alias char-major-81-0 ivtv
| + | |
− | options ivtv ivtv_debug=1 mpg_buffers=90
| + | |
− | options tuner type=29
| + | |
− | options msp3400 once=1 simple=1
| + | |
− | add below ivtv msp3400 saa7115 tuner
| + | |
− | | + | |
− | '''5) der vdr mit analogtv''' | + | |
− | # hier am Beispiel für einen vdr-1.3.11 und vdr-analogtv-0.9.33
| + | |
− | # downloaden:
| + | |
− | # vdr-1.3.11.tar.bz2
| + | |
− | # vdr-analogtv-0.9.33.tar.bz2
| + | |
− | # und auspacken:
| + | |
− | | + | |
− | tar xfj vdr-1.3.11.tar.bz2
| + | |
− | tar xfj vdr-analogtv-0.9.33.tar.bz2
| + | |
− | mv analogtv-0.9.33 vdr-1.3.11/PLUGINS/src
| + | |
− | cd vdr-1.3.11
| + | |
− | patch -p1 < PLUGINS/src/analogtv/patches/vdr-1.3.0.patch
| + | |
− | | + | |
− | # hier noch falls nötig libdvb-0.5.4 installieren,
| + | |
− | # siehe README im analogtv-Plugin
| + | |
− | | + | |
− | make REMOTE=LIRC
| + | |
− | cd PLUGINS/src
| + | |
− | ln -s analogtv-0.9.33 analogtv
| + | |
− | cd ../..
| + | |
− | make plugins
| + | |
− | | + | |
− | # okay, der erste Start mit analogtv
| + | |
− | # aber erst mal erweitern wir die channels.conf um einen neuen Eintrag:
| + | |
− | | + | |
− | wirbels_test:133250:C0D45B6:C:0:1:2:0:A0:0:0:0:0
| + | |
− | | + | |
− | # und jetzt!
| + | |
− | | + | |
− | ./vdr -c /etc/vdr -v /video0 -Panalogtv
| + | |
− | | + | |
− | # logisch, beim zappen auf diesen Kanal gibt nur Rauschen. War ja auch ne
| + | |
− | # x-beliebige Frequenz! also: wir suchen Kanäle.
| + | |
− | | + | |
− | '''6) Kanalsuche nach Dumpfbackenart. Einfach alles stur absuchen.''' | + | |
− | # Wir erstellen mal wieder ein script. (jaaa, ich weiß!)
| + | |
− | # nennen wir es einfach tune.sh
| + | |
− | | + | |
− | ============================================================
| + | |
− | #/bin/bash
| + | |
− | # tune.sh
| + | |
− | TUNE=/usr/src/Treiber/ivtv/utils/ptune.pl
| + | |
− | | + | |
− | let "F=48"
| + | |
− | while [ $F -lt 84 ] ; do
| + | |
− | let "FREQ=$F*1000 + 250"
| + | |
− | $TUNE "--frequency=$FREQ"
| + | |
− | echo "Channel name or return for skipping. Your input?"
| + | |
− | read S
| + | |
− | if [ "$S" != "" ] ; then
| + | |
− | echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
| + | |
− | fi
| + | |
− | let "F=$F+7"
| + | |
− | done
| + | |
− | | + | |
− | let "F=105"
| + | |
− | while [ $F -lt 169 ] ; do
| + | |
− | let "FREQ=$F*1000 + 250"
| + | |
− | $TUNE "--frequency=$FREQ"
| + | |
− | echo "Channel name or return for skipping. Your input?"
| + | |
− | read S
| + | |
− | if [ "$S" != "" ] ; then
| + | |
− | echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
| + | |
− | fi
| + | |
− | let "F=$F+7"
| + | |
− | done
| + | |
− | | + | |
− | let "F=175"
| + | |
− | while [ $F -lt 295 ] ; do
| + | |
− | let "FREQ=$F*1000 + 250"
| + | |
− | $TUNE "--frequency=$FREQ"
| + | |
− | echo "Channel name or return for skipping. Your input?"
| + | |
− | read S
| + | |
− | if [ "$S" != "" ] ; then
| + | |
− | echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
| + | |
− | fi
| + | |
− | let "F=$F+7"
| + | |
− | done
| + | |
− | let "F=303"
| + | |
− | while [ $F -lt 860 ] ; do
| + | |
− | let "FREQ=$F*1000 + 250"
| + | |
− | $TUNE "--frequency=$FREQ"
| + | |
− | echo "Channel name or return for skipping. Your input?"
| + | |
− | read S
| + | |
− | if [ "$S" != "" ] ; then
| + | |
− | echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
| + | |
− | fi
| + | |
− | let "F=$F+8"
| + | |
− | done
| + | |
− | ============================================================
| + | |
− | | + | |
− | # Das Prinzip ist ebenso stumpf wie simpel.
| + | |
− | # Den vdr auf eden Kanal "wirbels_test" stellen
| + | |
− | # (siehe oben!) und dann das script ./tune.sh n einer zweiten shell starten.
| + | |
− | # Das script tunt auf eine neue Frequenz, fragt dann nach dem Tunen
| + | |
− | # "Channel name or return for skipping. Your input?"
| + | |
− | # <Enter>, wenn kein Kanal gefunden wurde, ansonsten KANALNAME<Enter> tippen.
| + | |
− | # Das ganze dann rund 80 mal..
| + | |
− | # uffz. Eben die Holzfällermethode.
| + | |
− | # Zum Schluß muß zu jedem Kanal noch die passende ID aus der Channelmap.h gesucht werden.
| + | |
− | # Wie, verrät die README von analogtv.
| + | |
− | # Und zum Schluß: alles an deine channels.conf anfügen
| + | |
− | | + | |
− | # Das sieht dann etwa so aus:
| + | |
− | | + | |
− | eine Beispiel channels.conf
| + | |
− | :analog TV
| + | |
− | ard:210250:C0D45B6:C:0:1:2:0:A0:28106:0:0:0
| + | |
− | zdf:196250:C0D45B6:C:0:1:2:0:A0:28006:0:0:0
| + | |
− | sat1:203250:C0D45B6:C:0:1:2:0:A0:46:0:0:0
| + | |
− | | + | |
− | # Anm.: Die Zahlen 46, 28006, 28106 stammen aus der channelmap.h
| + | |
− | # des analogtv-Plugins und müssen per Hand eingetragen werden!
| + | |
− | | + | |
− | '''7) optional: epg für die analogen Kanäle'''
| + | |
− | 7.0 benötigt
| + | |
− | # tvmovie2vdr-0.1.3.tar.bz2, perl
| + | |
− | | + | |
− | 7.1) ein paar perl-Module nach der README des tvmovie2vdr installieren:
| + | |
− | | + | |
− | tar xfj tvmovie2vdr-0.1.3.tar.bz2
| + | |
− | cd tvmovie2vdr-0.1.3
| + | |
− | perl -MCPAN -e shell;
| + | |
− | # (evtl. muss beim ersten Aufruf einiges konfiguriert werden,
| + | |
− | # irgendwann hat man dan den cpan-prompt)
| + | |
− | # anschließend:
| + | |
− | | + | |
− | install Date::Manip
| + | |
− | install HTML::Entities
| + | |
− | install LWP::UserAgent
| + | |
− | install Compress::Zlib
| + | |
− | quit
| + | |
− | | + | |
− | # die Datei config.pl entsprechend '''deinen'''
| + | |
− | # Pfaden editieren:
| + | |
− | $channelsfile = "/etc/vdr/channels.conf";
| + | |
− | $epgfile = "/video0/epg.data";
| + | |
− | | + | |
− | 7.2) die channels.pl editieren. Der schwierigste Teil.
| + | |
− | | + | |
− | # Hier hilft und das script printchannels.pl aus dem Ordner contrib.
| + | |
− | cd contrib
| + | |
− | | + | |
− | # Allerdings gibt das script für analogtv falsche Frequenzen an,
| + | |
− | # deswegen editieren wir es vorher:
| + | |
− | | + | |
− | if ( $source eq 'T' ) {
| + | |
− | $frequency=substr($frequency, 0, 3);
| + | |
− | }
| + | |
− | if ( $source eq 'C' ) {
| + | |
− | $frequency=substr($frequency, 0, 3);
| + | |
− | }
| + | |
− | $data = $nid>0 ? $tid : $frequency;
| + | |
− | | + | |
− | # Auf diese Art und Weise gibt das script nur die ersten drei Stellen der
| + | |
− | # Frequenz bei Kabel und analog aus. Nun rufen wir das script auf:
| + | |
− | | + | |
− | ./printchannels.pl -c /etc/vdr/channels.conf
| + | |
− | # Das script gibt folgendes aus:
| + | |
− | | + | |
− | ard C-0-210-28106
| + | |
− | zdf C-0-196-28006
| + | |
− | sat1 C-0-203-46
| + | |
− | | + | |
− | # Diese Angaben brauchen wir für die channels.pl:
| + | |
− | @chan{"ard.de"} = ["C-0-210-28106" ,"3" ,"001" ,"37" ,"ARD" ,"71"];
| + | |
− | @chan{"zdf.de"} = ["C-0-196-28006" ,"3" ,"002" ,"36" ,"ZDF" ,"37"];
| + | |
− | @chan{"sat1.de"} = ["C-0-203-46" ,"3" ,"005" ,"38" ,"Sat1" ,"39"];
| + | |
− | | + | |
− | 3) das script muß gestartet werden.
| + | |
− | | + | |
− | # zuerst mal von Hand.
| + | |
− | ./tvm2vdr.pl -v
| + | |
− | | + | |
− | # Nachdem das script durchgelaufen ist, haben wir im vdr den epg.
| + | |
− | # (der vdr muß laufen während das script läuft!)
| + | |
− | | + | |
− | 4) das script muß regelmäßig gestartet werden.
| + | |
− | | + | |
− | # Da bietet sich nun eure Phantasie an, ein cronjob wäre hier ideal.
| + | |
− | # Google hilft euch dabei weiter.
| + | |
− | | + | |
− | ''wer's bis hierher geschafft hat, hat auf jeden Fall viel Arbeit und Nerven investiert. Hoffentlich mit Erfolg!''
| + | |
− | | + | |
− | | + | |
− | == b) Analog-TV mit einer analogen Fernsehkarte ohne Hardware-Encoder ==
| + | |
− | | + | |
− | '''0) noch zu vervollständigen'''
| + | |
Der VDR ist nur für den Empfang von digitalem TV ausgelegt, eine Nutzung von unkomprimiertem analogem Video ist in VDR nicht vorgesehen. Um trotzdem analoges Fernsehen über die VDR-Ausgabegeräte darzustellen und aufzunehmen, muss dieses (wie die DVB-Daten) im MPEG-Format vorliegen. Diese Aufgabe erledigen entweder das jeweilige Plugin oder spezielle TV-Karten. Die Umwandlung der analogen Video- und Audio-Daten übernimmt entweder ein Software-Encoder oder der Hardware-Encoder auf der analogen TV-Karte.
WinTV Go/Express und ähnliche analoge Karten auf BT848/878 Basis sind von den aktuell nutzbaren Plugins nicht unterstützt.