Analog-TV

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
 
(Allgemein)
 
(47 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.
+
Aber vielleicht ist der eine oder andre nützliche Tip mit bei.''
+
  
 +
==Bilder==
 +
<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>
  
'''1) download der sources'''
+
==Weiterführende Dokumente==
mkdir ivtv_install && cd ivtv_install
+
* Hintergrundinformationen zu [[HauppaugePVR|'''Hauppauge PVR 150''', '''Hauppauge PVR 250''', '''PVR 350''', '''PVR 500''' und '''PVR USB2''']]
wget http://cesnet.dl.sourceforge.net/sourceforge/ivtv/ivtv-0.1.9.tar.gz
+
* Informationen zum [[Pvrinput-plugin|Pvrinput-Plugin]]
wget http://heanet.dl.sourceforge.net/sourceforge/ivtv/Video-Frequencies-0.03.tar.gz
+
* Informationen zum [[pvr350-plugin|pvr350-Plugin]]
wget http://search.cpan.org/CPAN/authors/id/W/WA/WADG/Config-IniFiles-2.38.tar.gz
+
[[Kategorie:AnalogTV]]
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'''
+

Aktuelle Version vom 7. September 2013, 08:31 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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.

Nutzbar ist nur die Variante mit Hardware-MPEG2-Encodierung, wie sie von den 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. Für die Hauppauge PVR-Karten wurde hier eine eigene Seite zusammengestellt.

[Bearbeiten] analoge Karten ohne Hardware-Decoder

WinTV Go/Express und ähnliche analoge Karten auf BT848/878 Basis sind von den aktuell nutzbaren Plugins nicht unterstützt.

[Bearbeiten] Bilder

[Bearbeiten] Weiterführende Dokumente