-
TV -> VCD/SVCD/DVD/AVI/OGM (Video HowTo)
NEU (22.11.2004)
- LogoAway Filter
- Zeitgesteuerte Aufnahme mit at
- Lösung zu Soundproblemen bei capture
Einleitung:
In dieser HowTo soll es darum gehen TV Signale mit dem Computer über eine TV-Karte zu empfangen, mit Linux zu speichern und zu encoden (Software). Als Endziele werden VCD, SVCD, DVD, AVI und OGM behandelt. Da das TV Signal weit mehr enthält als das was man haben will, muß man das Video anschließend schneiden. Erst dann kann es fertig gestellt und gebrannt werden.
Wichtige Vorbemerkung:
Es geht in dieser HowTo darum wie man die TV Karte benutzen kann. Ich gehe nicht darauf ein wie man sie einrichtet. Dazu liegt eurer Distribution eventuell ein Tool bei. Oder ihr haltet euch an eine dieser HowTos:
http://www.linuxforen.de/forums/show...ighlight=tv%2A
http://www.linuxforen.de/forums/show...ighlight=tv%2A
http://www.linuxforen.de/forums/show...ighlight=tv%2A
http://sdb.suse.de/de/sdb/html/findeisen_bttv.html
Anmerkung:
Aufgrund der Länge dieser HowTo können Fehler drin sein. Wenn also etwas nicht funktioniert oder unklar ist, dann fragt im Forum (Fernsehn) nach oder schickt mir ggf. eine PN.
Geändert von hunter (22.11.04 um 12:00 Uhr)
-
Hard- und Software
Hardware:
CPU: 1 GHz, besser mehr
RAM: 256 MB, besser mehr
Festplattenspeicher: für 2 Stunden Film mindestens 9 GB + mind. 5 GB zum encoden und schneiden
TV Karte:
- Markenqualität um gute Aufnahme möglich zu machen
- TV Karte sollte unbedingt einen Composite oder S-Video Eingang haben
- TV Karte sollte unbedingt einen Audio Eingang haben
spezielles Kabel: Scart -> Klinkenstecker+Chichstecker oder S-Video
Anmerkung: Das Kabel muss geeignet sein um von einem Fernsehgerät zu einem Computer zu übertragen. NICHT das Kabel um vom TV Out auf den Fernseher zu übertragen, das funktioniert nicht. (Richtungen sind unterschiedlich beschaltet !) Ihr könnt euch auch Baupläne für Scart Kabel im Internet ansehen und euch so ein Kabel selbst löten. Im Prinzip braucht ihr nur: Audio Links, Audio Rechts und Audio Masse sowie Video und Video Masse (zwei verschiedene Massen also !)
Soundkarte: LineIn wird benötigt
Brenner:
- CD/RW Brenner (für VCD, SVCD, AVI, OGM)
- DVD Brenner (für VCD, SVCD, AVI, OGM, DVD)
Software:
- XawTV -> http://freshmeat.net/projects/xawtv
- Streamer (gehört zu XawTV)
- MPlayer -> http://freshmeat.net/projects/mplayer
- MJpeg-Tools -> http://freshmeat.net/projects/mjpeg
- Transcode -> http://freshmeat.net/projects/transcode
- Avidemux -> http://freshmeat.net/projects/avidemux
- cdrtools/cdrecord [+ GUI] (für AVI u. OGM) -> http://freshmeat.net/projects/cdrecord
- OGM-Tools -> http://freshmeat.net/projects/ogmtools
- Ogg Vorbis -> http://freshmeat.net/projects/libogg
- VcdImager (für VCD, SVCD) -> http://freshmeat.net/projects/vcdimager
- cdrdao (für VCD, SVCD) -> http://freshmeat.net/projects/cdrdao
- dvdauthor (für DVD) -> http://sourceforge.net/projects/dvdauthor
- mkisofs [gehört zu cdrtools] (für DVD)
- cdrecord-prodvd (für DVD) -> ftp://ftp.berlios.de/pub/cdrecord/ProDVD
Installation:
XawTV: Es liegt eigentlich jeder Distribution bei. Eine Paket Installation sollte vollkommen ausreichen. Ansonsten kann natürlich auch aus den Quellen compiliert werden.
Streamer (gehört zu XawTV): Meist liegt Streamer in einem Extra Paket und kann so installiert werden. Ansonsten kann man es auch zusammen mit XawTV compilieren.
Mjpeg-Tools: Versucht es aus den Quellen zu übersetzen. Sollte das nicht funktionieren, dann benutzt lieber ein Paket von der Homepage. Eventuell sogar 1.6.0 (falls 1.6.1 später Probleme machen sollte).
cdrtools: Im Grunde sollte jede Version von cdrtools funktionieren. Habt ihr cdrtools 1.11 schon drauf, dann sollte mkisofs DVD Video können, bzw. cdrecord OGM brennen können. Ein Update schadet aber nicht.
Ogg Vorbis: Compiliert euch Ogg, Vorbis und Tools. Siehe dazu: http://www.linuxforen.de/forums/show...threadid=60301
OGM-Tools: Compiliert euch das aus den Quellen. Siehe auch: http://www.linuxforen.de/forums/show...threadid=68216
MPlayer: MPlayer sollte auf jeden Fall aus den Quellen selbst compiliert werden. Siehe dazu: http://www.linuxforen.de/forums/show...threadid=54882
Transcode: Transcode sollte auf jeden Fall selbst compiliert werden. Siehe dazu: http://www.linuxforen.de/forums/show...threadid=50974
Avidemux: Avidemux sollte sich relativ einfach aus den Quellen compilieren lassen. Am besten Avidemux 2 (GTK 2) benutzen.
VcdImager: Ihr solltet euch eine Unstable 0.7.x Version compilieren. Notfalls geht aber auch ein Paket.
DVDauthor: Da gibt’s vermutlich kein Paket von. Compilieren aus den Quellen sollte aber nicht schwer sein.
cdrdao: Compiliert euch einfach die aktuelle Version aus den Quellen. Dabei solltet ihr auch gleich das daoburn Skript einrichten. Siehe dazu: http://www.linuxforen.de/forums/show...995#post258995
cdrecord-prodvd: ProDVD gibt es nur als Binary. Beachtet auch bitte das ihr einen Key anlegen müßt: ftp://ftp.berlios.de/pub/cdrecord/ProDVD/README
Am einfachsten ist es, ihr tragt ihn in der ~/.bash_profile ein, damit er immer sofort funktioniert.
Anmerkung: cdrecord-ProDVD kann man auch mit XCdRoast benutzen: http://www.xcdroast.org/xcdr098/README.ProDVD.txt
Hardware Konfiguration:
Ich setze voraus das ihr eure TV-Karte bereits eingerichtet habt. In dem Fall habt ihr einen solchen Eintrag in eurer /etc/modules.conf (Beispiel):
options bttv card=53 radio=1 autoload=1
Fügt dann folgenden Parameter an: gbuffers=16
Also: options bttv card=53 radio=1 autoload=1 gbuffers=16
Damit habt ihr nun den Buffer für die TV Karte erhöht. Das ist notwendig, damit eine möglichst fehlerfreie Aufnahme des Rohfilms möglich ist.
Geändert von hunter (21.07.03 um 14:51 Uhr)
-
Grundsätzliche Vorgehensweise (Theorie)
- verbinde Scart Ausgang des Video Recorders mit dem Composite bzw. dem Audioeingang der TV-Karte (bzw. S-Video)
- aktiviere Bild und Ton (einschalten des Videorecorders [Abspiel oder Tunerbetrieb])
- stelle sicher das LineIn auf Capture steht (Mixer, Lautstärkenregler)
- prüfe Bild und Ton mit XawTV
- capture Bild und Ton mit Streamer (Rohdaten, über 4 GB/h -> beste Qualität)
- Encode Video neu (zu Mpeg 1/2 bzw. Xvid oder DivX)
- Encode Audio neu (zu Mp 2 bzw. Ogg oder Mp3)
- Multiplexe Video und Audio
- Schneide den Film
- Remultiplexe ihn
- erstelle Verzeichnisstruktur für VCD, SVCD oder DVD und daraus dann ein Image
- brenne das Image dann auf eine CDR bzw. auf eine DVD-R bzw. DVD+R
- OGM und Avi läßt man auf der Platte oder brennt sie direkt auf eine CD (z.B. über XcdRoast)
* Es wird also eine bessere Verbindung als das normale TV Kabel gebraucht, um Störungen zu minimieren
* Es wird möglichst wenig Qualität verschwendet und erst mal alles nahezu verlustfrei auf Platte gespeichert
* Erst dann encodet man zu seinem Endzielformat (Mpeg1/2,Mp2 bzw. Xvid,Ogg bzw. DivX,Mp3)
* Während des encodens können Filter die Qualität verbessern und Störungen beseitigen
* Danach schneidet man den Film und Remultiplext ihn noch einmal
* Zum Schluss kann man den fertigen, digitalisierten, Film brennen
Geändert von hunter (21.07.03 um 14:55 Uhr)
-
Capturen (Rohmaterial)
Zunächst wird nun das Programm Streamer dazu verwendet um über den Composite oder S-Video Eingang den Film in Rohform aufzuzeichnen. Dazu schreibt man sich am besten ein kleines Script: /usr/bin/capture
Inhalt:
#!/bin/sh
#
#Benutzung: capture NAME ZEIT AUFLÖSUNG
#
#NAME: ohne Dateiendung (z.B. film)
#ZEIT: hh:mm:ss (z.B. 1:00:00)
#AUFLÖSUNG: bbbxhhh (z.B. 480x576)
#
streamer -i composite1 -t $2 -b 64 -s $3 -n pal -f mjpeg -j 85 -r 25 -F stereo -o $1.avi
(für s-video oder tv, muss der Eingang (-i) angepaßt werden)
Ausführbar machen: chmod 755 /usr/bin/capture
-i composite -> Als Eingang wird composite1 verwendet (bzw. tv oder s-video)
-t $2 -> Angabe der Aufzeichnungszeit
-b 64 -> Buffer 64 um zu verhindern das Buffer Underruns auftreten
-s $3 -> Auflösung: 480x576 falls SVCD bzw. DVD als Endziel; oder 576:432 falls ein OGM oder Avi geplant ist
-n pal -> Videonorm PAL
-f mjpeg -> Videocodec MJpeg (unkompremierender Codec mit sehr hoher Bitrate)
-j 85 -> Qualitätseinstellung (mehr dazu weiter unten !)
-r 25 -> 25 Bilder pro Sekunde (Standard für PAL Fernseher)
-F stereo -> Sound soll in Stereo Modus aufgezeichnet werden
-o $1.avi -> Mjpeg erlaubt als Container Format nur Avi, also Ausgang.avi
Anmerkungen:
-j ist die Einstellung die die Aufnahme Qualität regelt. 100 ist die beste und 1 die schlechteste. Die Werte sollten zwischen 75 und 100 liegen um eine akzeptable Qualität zu bekommen. Grundsätzlich sollte man versuchen diesen Wert so hoch wie möglich zu setzen. Aber da sprechen zwei Probleme dagegen:
1. Hohe Qualität = Hohe Bitrate -> größerer Speicherbedarf, der anscheinend exponentiell steigt
Wer also 100 einstellt bräuchte für einen Film wohl 60 GB freien Platz für einen Film. Mit einer Einstellung von 90 würden unter 30 reichen und mit den angegebenen 85 genügen unter 10 GB.
2. Hohe Qualität = mehr Daten die verarbeitet und gespeichert werden müssen -> Gefahr auf Bufferunderruns
Im Gegensatz zum encoden von irgendwelchen Videos ist beim aufzeichnen eines Signals keine Möglichkeit vorhanden die letzten Daten noch mal neu abzurufen. Ist der Buffer voll, dann können die ankommenden Signale nirgendwo mehr hin und werden ignoriert (verworfen). Im Film macht sich das später durch deutliches ruckeln bemerkbar, weil Bilder fehlen.
==> Spielt am besten mal ein wenig mit dieser Einstellung rum was euer Rechner verträgt. Ich habe mit 85 gute Ergebnisse erziehlt.
Capturen unter Benutzung des Skripts:
Als erstes muss auf jeden Fall der LineIn Eingang eurer Soundkarte auf capture geschaltet werden !!! Dies könnt ihr über fast jeden Mixer machen. Die Lautstärke darf auf 0 % stehen. Streamer sollte das dann trotzdem richtig aufzeichnen können da er die Signale über den LineIn zwar nicht hörbar macht, das Signal aber trotzdem empfängt.
Dann:
> capture NAME ZEIT AUFLÖSUNG
ZEIT muß in einem solchen Format angegeben werden:
60 = 60 Sekunden
59:00 = 59 Minuten und 0 Sekunden
1:00:00 = 1 Stunde, 0 Minuten und 0 Sekunden
Beispiel für eine Stunde (SVCD): capture ausgang 1:00:00 480x576
Beispiel für 30 Minuten (OGM): capture ausgang 0:30:00 576:432
Geändert von hunter (21.07.03 um 14:59 Uhr)
-
Weiterverarbeitung des Rohmaterials (decoden und encoden)
Vorbemerkung: Bitte vor dem ersten encoden auch den Abschnitt "Schnitt" lesen, da ihr eventuell lieber zu Mpeg 2 encoden wollt. Die Skripte ändern sich dadurch aber nur geringfügig.
Die Mjpeg Datei ist nun mehrere GB groß. Mplayer und Xine können das zwar abspielen, doch werden sie am Anfang 5 Minuten und mehr brauchen um einen Index davon zu erstellen. Und selbst dann wird die Wiedergabe nur sehr schlecht funktionieren. Also muß das Rohmaterial nun neu encodet werden.
Dabei muß zunächst etwas sehr wichtiges beachtet werden. Der File kann 5 GB und größer sein. Als Codec werden MJpeg (Video) und RAW (Audio) verwendet. Das ganze dann in einem AVI Container. Dieser hat aber von Haus aus eine 2 GB Grenze. Im Header steht daher auch kein höherer Wert drin. Als Folge davon decoden viele Decoder nur die 2 GB und der Rest wird ignoriert. Ein Decoder der das nicht tut ist MPlayer, weshalb wir ihn hier (ausnahmsweise) zusammen mit Transcode einsetzen.
Anmerkung: Wichtig dabei ist das hier das Projekt MPlayer und dessen Decoder gemeint sind. MPlayer ist nämlich KEIN Video Player sondern ein Projekt das aus Decodern, Encodern, Filtern und einem Player besteht. Den Player benötigen wir nicht. Uns reichen die Decoder und die Filter (sowie eventuell die Encoder).
Mögliche Endziele: OGM, Avi, (S)VCD oder DVD
Nun müssen wir uns entscheiden was wir mit dem Film machen wollen. Wir können uns da für folgendes entscheiden:
- OGM mit Xvid und Ogg Codec
- Avi mit Xvid/DivX und Mp3 Codec
- VCD
- SVCD
- DVD-SVCD
- DVD
Bevor ich erkläre wie man das encodet, muss ich zunächst erklären was diese Formate sind und was man beachten muss:
1. OGM: Das ist ein spezieller Container der als Audio Spur Ogg Vorbis kann.
2. Avi: Ein älterer (aber sehr viel weiter verbreiteter) Container der Mp3 als Audio Spur hat.
3. VCD: Eine VideoCD die man in vielen DVD Playern abspielen kann.
4. SVCD: Wie VCD, jedoch höhere Auflösung und höhere Bitrate (weniger Film auf einem Rohling als VCD, dafür bessere Qualität)
5. DVD-SVCD: Eine SVCD die auf eine DVD gebrannt wird (Vorsicht, kein wirklich genormtes Format !!)
6. DVD: mit noch höherer Auflösung und hoher Bitrate als SVCD
Die Spezifikationen:
Anmerkung: In () schreibe ich was man sinnvollerweise benutzt.
OGM
Video Codec: Xvid oder DivX
Audio Codec: Ogg Vorbis
Video Bitrate: 500 - 2000 (700 - 1200)
Audio Bitrate: 64 - 224 (64 - 128)
Samplerate: 44100 / 48000 (48000)
Framerate: beliebig (25)
Auflösung: beliebig (576:432 oder 640x480)
AVI
Video Codec: DivX oder Xvid
Audio Codec: Mp3
Video Bitrate: 500 - 2000 (700 - 1200)
Audio Bitrate: 64 - 224 (96 - 128)
Samplerate: 44100 / 48000 (48000)
Framerate: beliebig (25)
Auflösung: beliebig (576:432 oder 640x480)
VCD
Video Codec: Mpeg 1
Audio Codec: Mp2
Video Bitrate: 1150
Audio Bitrate: 224
Samplerate: 44100
Framerate: 25
Auflösung: 352x288
SVCD
Video Codec: Mpeg 2
Audio Codec: Mp2
Video Bitrate: 2000 - 2500 (2500)
Audio Bitrate: 192 - 224 (192)
Samplerate: 44100
Framerate: 25
Auflösung: 480x576
DVD-SVCD
Video Codec: VOB [Mpeg 2]
Audio Codec: Mp2
Video Bitrate: 2500 - 10000
Audio Bitrate: 224
Samplerate: 48000
Framerate: 25
Auflösung: 480x576
DVD
Video Codec: VOB [Mpeg 2]
Audio Codec: Mp2 oder AC3 (hier: Mp2)
Video Bitrate: 5000 - 10000
Audio Bitrate: 224
Samplerate: 48000
Framerate: 25
Auflösung: 720x576
Anmerkung: DVD-SVCD ist ein Benutzerdefinierter Standard der sich aus dem SVCD und dem DVD Standard ableitet. Player die diese beiden Formate können, sollten auch DVD-SVCD abspielen können. Da es jedoch kein Standard ist, kann es auf verschiedenen Playern Probleme geben. Aber ältere DVD Player, die kein VCD können, spielen dieses Format zum Teil ab, weil sie eine DVD erkennen.
Nun zum eigentlichen encoden:
1. OGM
/usr/bin/capture2ogm
#!/bin/sh
#
#Benutzung: capture2ogm eingang.avi ausgang bitrate
#
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=1 -vop pp=tn/lb/hb/vb -nosound -o /dev/null
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=2 -vop pp=tn/lb/hb/vb -nosound -o zwischenfile.avi
rm -f divx2pass.log
transcode -i $1 -x null,mp3 -m zwischenfile.ogg -V -y null,ogg -E 48000 -b 64
ogmmerge -o $2.ogm zwischenfile.avi zwischenfile.ogg
rm -f zwischenfile.avi
rm -f zwischenfile.ogg
Benutzung: capture2ogm eingang.avi ausgang bitrate (bitrate: z.B. 1000)
Anmerkung: Das einzige was dieses Skript vom avi2ogmhq Skript unterscheidet, ist die Option "-vop pp=tn/lb/hb/vb". Das ist ein Filter der zu MPlayer gehört. Seine Aufgabe ist es das TV Bild beim neu encoden noch etwas zu verbessern. Dafür gäbe es zwar bessere Filter, aber pp ist schnell und sollte eigentlich genügend Verbesserung mit sich bringen.
2. AVI
/usr/bin/capture2avi
#!/bin/sh
#
#Benutzung: capture2avi eingang.avi ausgang bitrate
#
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=1 -vop pp=tn/lb/hb/vb -nosound -o /dev/null
mencoder $1 -ovc xvid -xvidencopts bitrate=$3:pass=2 -vop pp=tn/lb/hb/vb -oac mp3lame -lameopts cbr:br=96 -o $2.avi
Benutzung: capture2avi eingang.avi ausgang bitrate (bitrate: z.B. 1000)
3. VCD (setzt VCD Auflösung beim capturen voraus)
/usr/bin/capture2vcd
#/bin/sh
#
#Benutzung: capture2vcd eingang
#
transcode -x mplayer,null -i $1.avi -V -y mpeg2enc,null -f 25.000 -F 1,"-S 792 –q 2 –a 2 –h -V 230" -J pp=tn/lb/hb/vb -o $1
transcode -x null,mplayer -i $1.avi -V -y null,mp2enc -f 25.000 -E 44100 -b 224 -J normalize -o $1
mplex -f 1 -o $1.mpg $1.m1v $1.mpa
Benutzung: capture2vcd eingang
Anmerkung: Hier wird Transcode als "Brücke" zwischen MPlayer (Decoder) und MJpeg-Tools (Encoder) verwendet. Zeitgleich wird dazwischen auch noch gefiltert. Und zwar mit pp beim Video und normalize beim Audio. Zum Schluß muß man es nur noch multiplexen und hat dann ein VCD compatibles Mpeg, das nun mit vcdimager und cdrdao gebrannt werden kann (siehe andere HowTos).
4. SVCD (setzt SVCD Auflösung beim capturen voraus)
/usr/bin/capture2svcd
#!/bin/sh
#
#Benutzung: capture2svcd eingang
#
transcode -x mplayer,null -i $1.avi -V -y mpeg2enc,null -f 25.000 -F 4,"-S 792 –q 2 –a 2 –h -V 230" -J pp=tn/lb/hb/vb -o $1
transcode -x null,mplayer -i $1.avi -V -y null,mp2enc -f 25.000 -E 44100 -J normalize -b 192 -o $1
mplex -f 4 -o $1.mpg $1.m2v $1.mpa
Benutzung: capture2svcd eingang
5. DVD-SVCD (setzt SVCD Auflösung beim capturen voraus)
/usr/bin/capture2dvdsvcd
#!/bin/sh
#
#Benutzung: capture2dvdsvcd eingang
#
transcode -x mplayer,null -i $1.avi -V -y mpeg2enc,null -f 25.000 -F 3,"-b 3200 -q 2 -a 2 -h -V 230" -J pp=tn/lb/hb/vb -o $1
transcode -x null,mplayer -i $1.avi -V -y null,mp2enc -f 25.000 -E 48000,,2 -J normalize -b 224 -o $1
mplex -f 8 -o $1.mpg $1.m2v $1.mpa
Benutzung: capture2dvdsvcd eingang
6. DVD (setzt SVCD Auflösung beim capturen voraus)
/usr/bin/capture2dvd
#!/bin/sh
#
#Benutzung: capture2dvd eingang
#
transcode -x mplayer,null -i $1.avi -V -y mpeg2enc,null -f 25.000 -F 3,"-b 5000 -q 2 -a 2 -h -N -V 230" -J pp=tn/lb/hb/vb -X 0,15,16 -C 2 -I 2 -o $1
transcode -x null,mplayer -i $1.avi -V -y null,mp2enc -f 25.000 -E 48000,,2 -J normalize -b 224 -o $1
mplex -f 8 -o $1.mpg $1.m2v $1.mpa
Benutzung: capture2dvd eingang
Geändert von hunter (07.09.03 um 21:08 Uhr)
-
Schnitt und Endfilmerstellung
Das capturen über TV Karte ist eine etwas "schwammige" Sache. Ihr habt mit hoher Wahrscheinlichkeit die Aufzeichnung zu früh gestartet und zu spät gestoppt. Zudem ist vielleicht auch noch Werbung in dem Film enthalten. All das könnt und solltet ihr im nächsten Schritt raus schneiden.
In der Einleitung habe ich schon mal welche genannt:
Cinelerra: Ein Profi Werkzeug. Man kann damit schneiden und die Ergebnisse in einer Log Datei speichern. Erst später rendert man dann den neuen Film. Es kann aber noch sehr viel mehr. Für unsere Zwecke ist es zwar grundsätzlich geeignet, jedoch viel zu kompliziert.
Broadcast 2000: Der Vorgänger von Cinelerra. Weniger umfangreich als Cinelerra, aber ähnlich kompliziert.
Main Actor: Soll ein sehr gutes Programm sein. Einfach zu handhaben und umfangreich in den Funktionen. Der Haken: Main Actor ist kommerziell und kostet Geld.
Avidemux (2): Wie der Name schon sagt, war das Programm ursprünglich nur auf AVIs ausgerichtet. Mittlerweile funktioniert aber auch die Schnittfunktion für Mpegs. Hinzu kommt noch das es sehr einfach zu bedienen ist. Darum werde ich im folgenden auch nur den Schnitt mit Avidemux beschreiben.
Vorbemerkung:
Avidemux 2 ist noch in der Entwicklung. Daher kommt es eventuell zu Problemen mit den verschiedenen Mpeg Headern. Daher solltet ihr zunächst als einfaches Mpeg 2 encoden und multiplexen, dann schneiden und erst danach als VCD, SVCD, DVD-SVCD oder DVD multiplexen.
OGMs lassen sich noch nicht vernünftig schneiden. Das wird aber noch weiter entwickelt. AVIs sollten sich direkt mit Avidemux 2 schneiden lassen.
-F 3 und -f 3 steht für ein standard Mpeg 2. Avidemux 2 kann dies ohne Probleme schneiden. Danach kann man dann entsprechend zu den richtigen Formaten multiplexen und diese dann wie anfangs geplant verwenden. Der Rest der Scripte ändert sich nicht. Nur die Zahlen die Mpeg 2 bedeuten.
transcode ... –F 3 ...
mplex –f 3 ...
avidemux
mplex –f 1 (VCD)
mplex –f 4 (SVCD)
mplex –f 8 (DVD-SVCD)
mplex –f 8 (DVD)
Schnitt mit Avidemux (Mpeg):
- Avidemux starten
- Menü: File -> Open Video -> eingang.mpg
- Index it: Yes
- Audio: C0 (Mp2)
- Errormeldung (Problem opening that File) bestätigen (nur Avidemux 1)
- Menü: File -> Open Video -> eingang.mpg.idx (nur Avidemux 1)
Jetzt habt ihr drei Möglichkeiten euch im Film vor oder zurück zu bewegen:
- Mausklick vor oder hinter den Zeiger für die aktuelle Position (große Schritte)
- Pfeiltaste rauf, bzw. runter (Sekunden Schritte)
- Pfeiltaste rechts, bzw. links (Frame Schritte)
Damit könnt ihr nun einfach die Positionen finden von wo bis wo ihr etwas aus dem Film raus schneiden wollt. Dabei solltet ihr beachten das das Startframe (Marke A) mit gelöscht wird und das Endframe (Marke B) das erste ist was nicht gelöscht wird. Entsprechend könnt ihr nun mit den Buttons >A und B< oder über das Menü Markers das Start und Endframe setzen. Zum löschen wählt ihr: Menü: Markers -> Delete (AD1) bzw. Edit -> Delete (AD2).
Anmerkung: Das ganze geschieht nur temporär. Es wird also nichts in eurem Mpeg gelöscht !
- Nun müßt ihr Audio und Video extrahieren:
Menü: File -> Save Audio [als Dateiendung .mpa setzen !]
Menü: File -> Save raw Video (mpeg/stream) [als Dateiendung .m2v setzen bzw. m1v bei VCD !)
Anmerkung: Es kann sein das Avidemux den Anschein erweckt es sei abgestürzt. Das ist aber nicht der Fall. Er arbeitet daran den Videostream vernünftig zu extrahieren. Laßt ihn einfach weiter machen.
- Anschließend könnt ihr Avidemux beenden
Jetzt müßt ihr den Film nur noch wieder multiplexen:
DVD und DVD-SVCD: mplex -f 8 -o film.mpg video.m2v audio.mpa
SVCD: mplex -f 4 -o film.mpg video.m2v audio.mpa
VCD: mplex -f 1 -o film.mpg video.m1v audio.mpa
Nun habt ihr den fertig geschnittenen Film auf Festplatte und solltet ihn mit einem Player wie Xine oder MPlayer überprüfen. Alle unerwünschten Teile sollten entfernt sein und Bild und Ton sollten in Ordnung sein.
Geändert von hunter (11.08.04 um 08:54 Uhr)
-
Brennen
Nun könnt ihr den Film auf eine DVD oder auf eine CDR brennen.
VCD:
vcdimager film.mpg -c film.cue -b film.bin
cdrdao write --eject --device 1,2,0 --driver generic-mmc --buffers 64 -n --overburn film.cue (Driver und Device anpassen !)
Oder: daoburn film.cue (vgl. andere Video HowTo)
SVCD:
vcdimager -t svcd film.mpg -c film.cue -b film.bin
cdrdao write --eject --device 1,2,0 --driver generic-mmc --buffers 64 -n --overburn film.cue (Driver und Device anpassen !)
Oder: daoburn film.cue (vgl. andere Video HowTo)
DVD-SVCD:
dvddirgen -o film (kann ab dvdauthor 0.5.3 eventuell entfallen !)
dvdauthor -o film -v 704x576+pal+4:3 -a mp2+de film.mpg
dvdauthor -o film -T
mkisofs -dvd-video -o film.iso film
cdrecord-prodvd -v dev=1,3,0 speed=1 -eject film.iso (dev anpassen !)
DVD:
dvddirgen -o film (kann ab dvdauthor 0.5.3 eventuell entfallen !)
dvdauthor -o film -v 720x576+pal+4:3 -a mp2+de film.mpg
dvdauthor -o film -T
mkisofs -dvd-video -o film.iso film
cdrecord-prodvd -v dev=1,3,0 speed=1 -eject film.iso (dev anpassen !)
Testet nun eueren digitalisierten Videofilm in eurem DVD Player. Es sollte in guter Qualität und ohne Werbung abgespielt werden.
Geändert von hunter (05.08.03 um 20:45 Uhr)
-
Schlussbemerkungen
Filter:
Transcode beherrscht noch sehr viel mehr Filter als pp (Video) oder normalize (Audio). Z.B. der Logoaway Filter könnte interessant sein um das eventuell vorhandene Fernseh Logo raus zu filtern. Die Transcode Dokumentation sollte euch dazu weiterhelfen.
Auch ist der angegebene pp Filter nicht immer die Lösung um ein gutes Bild zu bekommen. Bei s/w Filmen soll es angeblich besser sein auf sie zu verzichten. Dies solltet ihr durch eigene Erfahrung aber rausbekommen können.
DVD Menü:
Man könnte auch ein DVD Menü einrichten. DVD Author kann das, aber es ist (noch) alles andere als einfach (siehe Homepage -> Forum).
-
Stapelverarbeitungs Script
Das aufzeichnen eines Films darf möglichst nicht gestört werden. Also sollte man den Rechner während dieser Zeit nicht benutzen. Das encoden dauert dann noch mal das 3 bis 5 fache an Zeit. Daher ist es sinnvoll diese Aktion Nachts laufen zu lassen.
Dazu braucht man folgendes Script: /usr/bin/aufnahme
Inhalt (Bsp.):
#!/bin/sh
capture $1 $2 $3
capture2dvd $1
init 0
Benutzung:
- Shell starten (Strg + Alt + F1)
- anmelden (eventuell als Root)
- Videorecorder und Script starten (z.B.): aufnahme film 1:00:00 480x576
Das Script kann und muss natürlich dem angepasst werden was ihr haben wollt. Das ist aber leicht mit einem Editor zu erledigen. Es wird den Film capturen und dann mit dem encoden beginnen. Danach wird es den Rechner runterfahren und ausschalten. Am nächsten Tag müsst ihr dann nur noch den Film schneiden und brennen. Von der Aufnahme und dem encoden seid ihr dann relativ losgelöst, weil das nahezu von allein "über Nacht" geht.
Anmerkung: Solltet ihr nicht wollen das der Rechner runtergefahren wird, dann setzt einfach eine Raute (#) vor das init 0.
Geändert von hunter (24.07.03 um 13:54 Uhr)
-
Logoaway Filter
Aktuelle Transcode Versionen bringen einen sogenannten Logoaway Filter mit. Damit kann man z.B. Logos von Fernsehstationen rausfiltern.
Funktionsweise:
Dabei versucht der Filter aus den Pixeln rund um das Logo zu berechnen welche Pixel unter dem Logo sein müssten. Hat man einfarbige Flächen, dann ist es sehr wahrscheinlich das unter dem Logo genau das gleiche liegt wie drum herum. Wird es komplexer, dann bekommt man einen etwas verschwommenen Bereich. So oder so ist das störende Logo nicht mehr zu sehen und der Film kann etwas angenehmer angeschaut werden.
Vorgehen:
Zunächst muss man Position und Größe des Logos ermitteln. Am einfachsten geht das mit Gimp, was eigentlich jeder auf seinem Rechner installiert haben sollte. Zusätzlich sollte man noch Xine haben.
1. Testaufnahme
Zunächst nimmt man 10 Sekunden Film auf. Natürlich 10 Sekunden in denen man das Logo sehen kann.
2. Screenshot
Nun spielt man diese 10 Sekunden mit Xine ab und macht an geeigneter Stelle einen Screenshot, der im Homeverzeichnis angelegt wird.
3. Position und Größe des Logos
Jetzt öffnet man den Screenshot mit Gimp und markiert das Logo, so das es gerade vom Kasten umschlossen wird. Haltet die Maustaste dann fest und ihr könnt unten links die Position und rechts daneben die Größe ablesen.
Beispiel (Vox): 44x42 und 86x32
4. Filter aktivieren
Somit sieht die Option so aus:
-J logoaway=pos=44x42:size:86x32:mode=2:xweight=50
mode=2 steht für xy Filterung, das heißt er versucht die richtigen Pixel zu errechnen
xweight=50 bedeutet er Interpoliert gleichermaßen in X und Y Richtung, was empfohlen wird
Jetzt könnt ihr die Zeile einfach für eure Werte anpassen und den Filter verwenden. Vorzugsweise erst mal auf den 10 Sekunden Test den ihr gemacht habt. Dann könnt ihr die .m2v Datei abspielen und euch das Ergebnis ansehen.
5. Sonstiges
Der Filter bietet noch weitere Möglichkeiten. Z.B. kann man das Logo auch durch ein anderes Bild ersetzen oder mit einem farbigen Balken überdecken.
Mehr dazu:
/usr/local/share/doc/transcode/filter_logoaway.txt (selbst kompiliert)
/usr/share/doc/transcode/filter_logoaway.txt (als Paket installiert)
-
Zeitgesteuerte Aufnahme
Will man das Ganze nun als Videorecorder benutzen, dann kann man das einfach mit dem Programm "at" realisieren.
at Job festlegen
Befehl: at 'Zeit' 'Datum' (Beispiel: at 9:00 22.11.2004)
Ihr kommt dann in die at Befehlszeile und müsst damit nun ein Script schreiben. Dort gebt ihr einfach die Befehle zum aufnehmen und transcodieren ein. Am einfachsten natürlich die vorbereiteten Scripte.
Beispiel:
> at 9:00 22.11.2004
at> capture test 0:10:00 720x576 [Enter]
at> capture2dvd test [Enter]
at> [Strg] + [d]
Damit wird am 22.11.2004 um 9:00 Uhr die Aufnahme gestartet. Es werden dann 10 Minuten aufgezeichnet. Anschließend wird der Film dann ins Endformat encodet.
Anmerkung:
Wenn ihr bei streamer den Befehl "nice" verwendet, dann müsst ihr das als Root ausführen. Damit das auch mit at klappt, müsst ihr den Job einfach nur als Root festlegen. Dann startet nämlich Root den Job und nicht der User.
Anzeige
Das ganze hat eine unschöne Nebenwirkung. Jobs die at ausführt werden nirgendwo ausgegeben. So könnt ihr weder sehen ob streamer noch läuft, noch ob Transcode schon arbeitet. Doch das kann man mit einer Modifikation der Scripte beheben.
Schreibt hinter jeden Befehl in euren Scripten (die ihr ausgeben wollt) noch "> /dev/tty1". Damit werden alle Ausgaben an die erste Shell umgeleitet. Dabei ist es ganz wichtig das ihr euch dort anmeldet, da der Befehl sonst scheitern wird.
Beispiel: transcode -i blabla -x ... -y ... -o blub > /dev/tty1
Benutzt diese Option nicht hinter dem Aufruf von Scripten, da das nicht funktioniert. "capture2dvd test > /dev/tty1" wird nicht das gewünschte anzeigen.
Es ist empfehlenswert das ihr die normalen Scripte und die so modifizierten unterscheidlich benennt. Also z.B. capture2dvd und capture2dvd_at. Sonst könntet ihr die Scripte nur noch so ausführen das die Ausgabe nach tty1 umgeleitet wird und das ist natürlich nicht immer erwünscht.
at Jobs auflisten
at Jobs kann man mit dem Befehl "atq" auflisten lassen. Vorne steht dann die ID des Jobs.
at Jobs löschen
Wenn ihr die ID eines Jobs habt, könnt ihr ihn mit "atrm ID" wieder aus der Liste löschen.
Geändert von hunter (23.11.04 um 18:25 Uhr)
-
Kein Sound bei Capture
Einige Leute haben das Problem das sie den Ton über LineIn anschließen und auch hören können. Und obwohl der LineIn Eingang auf Aufnahme gestellt wird, wird kein Ton aufgezeichnet.
In dem Fall müsst ihr es mal über den Regler IGain versuchen. Also LineIn auf Aufnahme stellen und IGain aufdrehen. Bei ALSA geht das so (per Script):
amixer set Master,0 100%,100% unmute
amixer set Line,0 100%,100% mute captur
amixer set Capture,0 75%,75% mute captur
Wenn ihr jetzt auch noch mit aumix euren normalen Reglerstand einstellt und speichert, könnt ihr das capture Script folgendermaßen ändern:
#!/bin/sh
amixer set Master,0 100%,100% unmute
amixer set Line,0 100%,100% mute captur
amixer set Capture,0 75%,75% mute captur
streamer ....
aumix -L
Damit wird erst der Sound aktiviert, dann alles aufgezeichnet und am Schluss alles zurück gesetzt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen