VdrTransXvid
(→Testen) |
|||
Zeile 163: | Zeile 163: | ||
VdrTransXvid -> als geschnitten markieren | VdrTransXvid -> als geschnitten markieren | ||
− | * ACHTUNG : Version vom 28.05. | + | * ACHTUNG : Version vom 28.05.2006 hat einen Bug : |
Bitte in der reccmds.conf prüfen, ob die Anweisung "VdrTransXvid -> als geschnitten markieren..." in einer neuen Zeile erscheint, ich hatte in diser Version vergessen, einen Zeilenumbruch vorher einzufügen, kann aber auch schnell per Hand geändert werden. | Bitte in der reccmds.conf prüfen, ob die Anweisung "VdrTransXvid -> als geschnitten markieren..." in einer neuen Zeile erscheint, ich hatte in diser Version vergessen, einen Zeilenumbruch vorher einzufügen, kann aber auch schnell per Hand geändert werden. | ||
− | |||
Version vom 10. Juni 2006, 11:48 Uhr
Inhaltsverzeichnis |
Beschreibung
Autor: Alexander Richter - last Version upload 31.05.2006
VdrTransXvid ist eine Sammlung von mehreren Perlscripten, um aus geschnittenen Vdr-Aufnahmen nahezu ohne Interaktion Xvid Videos zu erstellen.
Was tut's nun, was geht? Du kannst in einem Rutsch alle geschnittenen Aufnahmen in Mpeg-Dateien umsetzen, inklusive Zeitkorrektur ( Ton/Bildversatz ) und automatischer Auswahl der ersten Tonspur.
Du kannst in einem weiteren Rutsch alle diese MPEGs in Xvid umsetzen, ohne eine Interaktion. Die Defaultwerte ( mp3 Rate , Zielgröße etc. ) sind vorgegeben oder werden "on the fly" ermittelt.
Die Zielgrößen "on the fly" richten sich nach der Länge des Films, hier in Frames:
1400 MB ( Frames >= 160000 ) über ~ 106 Minuten 700 MB ( Frames >= 70000 ) bis zu ~ 106 Minuten 350 MB ( Frames >= 40000 ) bis zu ~ 46 Minuten 175 MB ( Frames >= 10000 ) bis zu ~ 26 Minuten 50 MB ( Frames >= 5000 ) bis zu ~ 7 Minuten 20 MB ( Frames < 5000 ) bis zu ~ 3 Minuten
25 Frames = 1 Sekunde 1500 Frames = 1 Minute 90000 Frames = 1 Stunde
Du kannst in einem letzten Rutsch von den neuen AVIs HTML-Übersichten mit technischen Daten, Screenshots etc. anlegen lassen, die alle in einem Frameset statisch und thematisch verlinkt sind.
Die Scripte richten sich an Anwender, die außerhalb vom VDR auf der Kommandozeile fast vollautomatisch ihre Aufnahmen in xvid archivieren wollen.
Softwareanforderungen
- Perl ich habe 5.8.6 , sollte jedes aktuellere Linux-System aber haben
- xvid ich habe Version xvidcore-1.1.0-r1 von xvid.org
- lame ich habe Version 3.96.1, funktioniert, andere bitte probieren
- divx OPTIONAL wer mag, benutze es nicht mehr, da quali gegenüber xvid zu schlecht ( 5.01)
- ffmpeg OPTIONAL wer mag, Unterstützung ja, ich benutze es aber nicht
- transcode ich habe Version 1.0.2, vor 1.01 gehen nicht, ( deinterlacer Problem )
Bitte an eigene Bedürfnisse anpassen, ich habe transcode übersetzt mit : $ ./configure --enable-a52 --enable-mjpegtools --enable-avifile --enable-libmpeg3 --enable-gtk --enable-imagemagick
- mjpegtools ich habe mjpegtools-1.8.0-r1, daraus wird mplex gebraucht
- VDR mind. 1.3.17
- avinfo für die HTML Seitenerstellung, wer das nicht will, kann avinfo auch weglassen, ich habe Version 1.0 alpha 15
Konfiguration und Installation
Mit der Version vom 28.05.2005 gibt es eigenes Installer-Script und eine Konfigurationsdatei. Ihr habt euch das aktuelle tgz Archiv runtergeladen ( Link Siehe unten ), entpackt wird es in einem Verzeichnis eurer Wahl mit :
$ tar xfvz ./vdrtransxvid_VERSION.tgz
Nun Wechsel ins neu angelegte Verzeichnis "vdrtransxvid" und öffnet die Datei vdrtransxvid.conf ebenda in einem geeigneten Editor und passt sie euren Gegebenheiten an :
# vdrtransxvid.conf # zentrale Konfigurationsdatei für das Scriptpaket VdrTransXvid # VOR ausführem von install.pl EDITIEREN !!! # Stand 28.05.2006 #----------------------------------------------------------------------------- ### Dein Heimatverzeichnis, muss existieren und beschreibbar sein Home = "/home/alex/"</br> #----------------------------------------------------------------------------- # wohin sollen die Scripte installiert werden ? ein guter Platz wäre z.B. /usr/local/bin/ Bin_Install_Dir = "/usr/local/bin/"</br> #----------------------------------------------------------------------------- # wo liegen die VDR Files , aka verzeichnis /video # kein abschliessenden backslash !!! InDir = "/video"</br> #----------------------------------------------------------------------------- # wo befindet sich die Datei reccmds.conf aus der VDR Konfiguration ? ( /etc/vdr oder /video o.ä.) Loc_reccmdsconf = "/video/"</br> #----------------------------------------------------------------------------- # wo sollen die fertigen mpg und avi files hin ? OutDir = "/home/alex/Video_Bearbeitung_mpg/"</br> #----------------------------------------------------------------------------- # mp3 rate ( 96, 112 , 128 , 192 ) Mp3 ="128"</br> #----------------------------------------------------------------------------- # 0,0 für schnell 5,5 für best Qualitätsfaktor für divxencoder QFact = "-Q 5,5"</br> #----------------------------------------------------------------------------- # Debug Ausgaben von transcode -q2 oder leer -> " " Debug_Level = " "</br> #----------------------------------------------------------------------------- ## Möchtest du die HTML - Statistik erfassung aktivieren ? "yes" oder "no" HMTL = "yes"</br> #----------------------------------------------------------------------------- ## wenn ja, wo soll die Datenbank , aka html Seiten Sammlung entstehen ? HMTL_DIR = "/mnt/hdc1/Filmdatenbank/"
wenn ihr alle Einstellungen erledigt habt, direkt speichern.
Nun Benutzer zu root werden und ./install.pl ausführen :
$ su ( Passwort ) $ ./install.pl
Folgender Dialog erwartet euch, hier mit Kommentaren :
alex vdrtransxvid # ./install.pl</br> ------------------------------------------------------------------------------ Welcome to the Installer of VdrTransXvid 0.1 , first we check the needet Binarys : ------------------------------------------------------------------------------ OK : Transcode Version v1.0.2 gefunden in /usr/bin/transcode .... OK : tcdemux gefunden in /usr/bin/tcdemux .... OK : tcprobe gefunden in /usr/bin/tcprobe .... OK : mjpegtools mplex-2 gefunden in /usr/bin/mplex ....</br> Frage : Du hast bereits die Datei 'vdrtransxvid.conf' hier im aktuellen Verzeichnis editiert und deinen Gegebenheiten angepasst ? [Enter] oder [Ctrl-c] für abbrechen</br> Frage : Kopiere nun die Scripte ins Verzeichnis /usr/local/bin/ ? [Enter] oder [Ctrl-c] für abbrechen</br> ( ich hatte bei diesem durchlauf des scripts bereits die scripte im Zielverzeichnis, daher die Sicherheitsabfragen ) Frage : /usr/local/bin/mpg_to_avi_V2.pl existiert bereits, LÖSCHEN ??? Eingabe [OK] für löschen oder [ENTER] für überspringen</br> Frage : /usr/local/bin/vdr2mpgV3.pl existiert bereits, LÖSCHEN ??? Eingabe [OK] für löschen oder [ENTER] für überspringen</br> Frage : /usr/local/bin/vdrtransxvid_touch_cuted_flag.pl existiert bereits, LÖSCHEN ??? Eingabe [OK] für löschen oder [ENTER] für überspringen</br> Frage : /usr/local/bin/update_filmarchiv.pl existiert bereits, LÖSCHEN ??? Eingabe [OK] für löschen oder [ENTER] für überspringen</br> OK : kopiere ./ffmpeg.cfg OK : kopiere ./xvid4.cfg</br> ( Wenn in der Konfigdatei, HTML auf yes gesetzt wurde, wird das Grundgerüst kopiert ) INFO : kopiere das Filmdatenbank - Grundgerüst NICHT nach /mnt/hdc1/Filmdatenbank/, da das Dir bereits besteht !</br> OK : avinfo gefunden in /usr/bin/avinfo .... OK : Konfigurationsdatei neu angelegt : /home/alex/.vdrtransxvid.conf</br> ------------------------------------------------------------------------------ INFO : Noch ein paar schnelle Tips zum beginnen : ------------------------------------------------------------------------------ 1. Schneiden der Files im VDR, kein Schneiden ausführen nötig, Schnittmarken im orig. File langen völlig 2. Markieren der geschnittenen Files innerhalb des VDR mit "befehle" im Aufnahmeverzeichnis --> VdrTransXvid -> als geschnitten markieren 3. außerhalb des VDR auf der Kommadozeile : "vdr2mpgV3.pl" ausführen 4. außerhalb des VDR auf der Kommadozeile : "mpg_to_avi_V2.pl --showbatch" zum Ansehen der anstehenden Files 5. außerhalb des VDR auf der Kommadozeile : "mpg_to_avi_V2.pl --dobatch" zum transcodieren der anstehenden Files</br> viel Spaß PS : wenn alles spielt, probier alles auf einmal : "vdr2mpgV3.pl && mpg_to_avi_V2.pl --dobatch" ------------------------------------------------------------------------------
Kurz erklärt, was beim Ausführen von install.pl passiert :</br>
- zuerst wird geprüft, ob das Script als User root ausgeführt wird
- es werden die benötigten externen ausführbaren Programme auf Ort und Ausführbarkeit geprüft, wenns hier klemmt, müßt ihr überprüfen, ob ihr alles benötigte installiert habt. ( siehe Softwareanforderungen )
- Kurze Abfrage, ob das Konfigurationsscript angepasst wurde
- die Scripte werden in's bin verzeichnis kopiert ( je nach Angabe in der vdrtransxvid.conf )
- die Scripte werden ebendort ausführbar gemacht
- es wird im Homeverzeichnis ein Verzeichnis "mpeg2avi" angelegt, dort landen später alle Infodateien der transcodierten Filme, sowie jetzt 2 config-Dateien für Transcode ( xvid4.cfg und ffmpeg.cfg )
- Wenn die HTML Erfassung aktiviert ist, wird das Grundgerüst hierfür kopiert
- aus der Konfigurationdatei vdrtransxvid.conf wird eine bereinigte im Homeverzeichnis generiert ( /YOUR_HOME/.vdrtransxvid ), die mit führendem Punt nicht sichtbar ist. Diese kann man später noch editieren, einfacher ist es wohl, die vdrtransxvid.conf im aktuellen entpackten verzeichnis zu nehmen und anschließend nochmal ./install.pl laufen zu lassen
- zum Schluß dann noch ein paar Tips für Eilige
Soweit so gut, werdet wieder normaler User ( Ctrl-D ). Um das Markierungsscript im VDR zu aktivieren, VDR neu starten ( das Install script schreibt eine neue Befehlszeile in die reccmds.conf von VDR ).
Damit ist die Installation beendet.
Testen
Zum testen, ob alles läuft, beginnst du am besten einen einzelnen File im VDR zu schneiden. Es reicht völlig aus , nur die Schnittmarken zu setzten, du mußt NICHT schneiden -> ausführen, einen neuen geschnittenen File erzeugen.
Nach dem Cut gehst du im VDR auf Aufnahme -> Befehle und markierst die Aufnahme für vdrtransxvid : VdrTransXvid -> als geschnitten markieren
- ACHTUNG : Version vom 28.05.2006 hat einen Bug :
Bitte in der reccmds.conf prüfen, ob die Anweisung "VdrTransXvid -> als geschnitten markieren..." in einer neuen Zeile erscheint, ich hatte in diser Version vergessen, einen Zeilenumbruch vorher einzufügen, kann aber auch schnell per Hand geändert werden.
Nach einer kurzen Weile taucht die Aufnahme mit dem Prefix [cut] im Aufnahmeverzeichnis auf, aka "[cut]Star-Trek-Episode-irgendwas" Anhand dieses Prefixes erkennt das Transcode Script, welche Aufnahmen transcodiert werden sollen.
Danach führst du in einer Kommandozeile vdr2mpgV3.pl aus.
$ vdr2mpgV3.pl
Das sollte nach und nach eine Ausgabe ähnlich dieser bringen :
------------------------------------------------------------------------------ ° Alle anstehenden Files nochmal zum abnicken, [Enter] für weiter [Ctrl-C] für abrechen : ------------------------------------------------------------------------------ ° Final_Call ° The_I_Inside-Im_Auge_des_Todes ( nutze ich, um mal zu schauen, was alles ansteht, ohne gleich alles in mpg umzusetzten )</br> ° und nun : Final_Call ° Ermittle Parameter für mpg_to_avi ... ---> 35.2%*quit...</br> ° und nun : The_I_Inside-Im_Auge_des_Todes ° Ermittle Parameter für mpg_to_avi ... ---> 5.2%*quit...</br> ° All done ...
Checked bitte danach, ob es in eurem /HOME/mpeg2avi/ Verzeichnis ein Unterverzeichnis mit Namen Info gibt, in dem für jede Aufnahme ein Subdir angelegt wurde :
/HOME/mpeg2avi/ /HOME/mpeg2avi/Info/ /HOME/mpeg2avi/Info/Der_Wixxer/
Darin sollte es fogende Dateien geben :
/HOME/mpeg2avi/Info/Der_Wixxer/epg.txt ---> Der zugehörige EPG Eintrag für später ( HTML Übersicht ) /HOME/mpeg2avi/Info/Der_Wixxer/mpg2avi.data ---> die Daten für Transcode , ruhig mal reinschauen /HOME/mpeg2avi/Info/Der_Wixxer/vdr2mpg_done ---> File ist bereits in mpg umcodiert Flag /HOME/mpeg2avi/Info/Der_Wixxer/frames.dat ---> Länge der Aufnahme in Frames
Gratulation, erster Teil läuft also, und in deinem Verarbeitungsverzeichnis tummeln sich die Mpg's.
Auf gehts zum XVID codieren : Du rufst in der Kommandozeile das Script mpg_to_avi_V2.pl auf. Zuerst schaust du mal nach, was alles zum Umsetzen von mpg in xvid ansteht mit :
$ mpg_to_avi_V2.pl --showbatch
Alles was ansteht, kann dann nacheinander in xvid-avis umgesetzt werden, durch :
$ mpg_to_avi_V2.pl --dobatch
Nach einer Weile, habt ihr die mpg und avi Files in eurem Zielverzeichnis, im VDR Aufnahmeverzeichnis ist der Prefix von [cut] auf [del] gändert, um die Übersicht zu behalten, was geschnitten ist und was schon transcodiert.
Täglicher Gebrauch
Ich gehe wie folgt vor :
- Schneiden der Aufnahme im VDR
- für vdrtransxvid markieren im VDR
- Checken ob viel Platz in meinem Zielverzeichnis ist
- in einem Rutsch alles, was geschnitten ist, transcodieren mit :
$ vdr2mpgV3.pl && mpg_to_avi_V2.pl --dobatch
- wenn alles durch ist, avi File anschauen, danach Löschen der VDR-Aufnahme und des Mpg-Files
- verschieben des Avi-Files in auf meine Archiv-Festplatte(n)
Html Übersicht erstellen
- update_Filmverzeichnis.pl
$ update_Filmverzeichnis.pl /mnt/usb-hd/Movie auf der Kommandozeile, erstellt eine HTML Datei für jeden neuen Avifile
funktioniert bei meiner Archivhirarchie :
/mnt/usb-hd/Movie/Filme/ /mnt/usb-hd/Movie/Filme/Genre1/ /mnt/usb-hd/Movie/Filme/Genre1/Film1.avi /mnt/usb-hd/Movie/Filme/Genre2/ /mnt/usb-hd/Movie/Filme/Genre2/Film2.avi /mnt/usb-hd/Movie/Filme/Genre2/Film3.avi /mnt/usb-hd/Movie/Serie/Star_Trek-TNG/ /mnt/usb-hd/Movie/Serie/Star_Trek-TNG/1.01-Folgesowieso.avi /mnt/usb-hd/Movie/Serie/Star_Trek-TNG/1.02-Folgesowieso.avi
Grob gesagt ensteht eine Struktur : Sorte ( Film/Serie ) --> Genre/Serientitel --> Film.
Das Script zieht hierzu die letzten beiden Verzeichnisebenen über dem eigentlichen Avi heran.
so siehts bei mir dann aus :
- [
Sreenshot 1 (115 Kbyte)]
- [
Sreenshot 2 (52 Kbyte)]
- [
Sreenshot 3 (178 Kbyte)]
Tipps
Sollten euch die voreingestellten Werte nicht passen, könnt ihr nach einem Lauf von vdr2mpgV3.pl ( wenn also das Mpg-File schon existiert ) mpg_to_avi_V2.pl im interaktiven Modus laufen lassen und mittels Menüpunkt 2 viele Werte für die Transcodierung neu setzen :
$ mpg_to_avi_V2.pl
################################################################### # # # mpg_to_avi.pl - Converter Version 0.2 Perl # # written by Alexander Richter alexanderrichter@gmx.net # # # # convert Stream-mpeg from DVB-Cards like Technotrend to Mpeg4 # # last edit 25.05.2006 # # # ################################################################### HAUPTMENÜ</br> (0) Zeige Stapelverarbeitung Files (1) Konvertiere einen gemuxten Mpg-File in mpeg4 (2) Setze neu oder ändere Files für Stapelverarbeitung ( nur für gemuxten Mpgfile )</br> (4) Führe Stapelverarbeitung aus</br> (5) Exit
Folgender Dialog setzt Werte neu :
################################################################### # # # mpg_to_avi.pl - Converter Version 0.2 Perl # # written by Alexander Richter alexanderrichter@gmx.net # # # # convert Stream-mpeg from DVB-Cards like Technotrend to Mpeg4 # # last edit 25.05.2006 # # # ###################################################################</br> *Ziel ist /home/alex/Video_Bearbeitung_mpg/Die_Olsenbande_sieht_rot.avi</br> *INFO : Movie ist im Original ca. 2340 MBytes groß *---> File hat : 150683 Frames</br> FRAGE : Frame Bereich eingeben [ 200-300 oder 500 / ENTER für 150683 ] :</br> ---> Codiere alle Frames</br> FRAGE : Standart Ausgabegrösse 700 Mbyte [ Enter / neuer wert (1400) ] :</br> ---> bleibt bei 700 Mbyte</br> FRAGE : Mpeg4 Codec auswählen [ ffmpeg=1 , Xvid4=2 , divx5=3 (default ist xvid) ] :</br> ---> Mpeg4 Codec ist : xvid4 ---> Orig Breite x Höhe : 720 x 576 ---> Mpeg4 Rate wird gesetzt auf : 842 Kbit/sec</br> ---> File hat Orig Bildverhältniss : 4:3</br> ---> 19.8%* ---> Crop und Deint : 72,8,72,0 , -I off</br> ---> InfoDir : /home/alex/mpeg2avi/Info/Die_Olsenbande_sieht_rot/</br> ---> Infos geschrieben
Kommandozeilen-Optionen
$ mpg_to_avi_V2.pl [-v][--auto][--showbatch][--dobatch]</br> Kommandozeilenparameter : ------------------------------------ -Anzeige der Hilfe / Version $ mpg_to_avi_V2.pl -v</br> -Erstellen einer der Infodatei für spätere Stapelverarbeitung $ mpg_to_avi_V2.pl --auto /FULLPATH/my_movie.mpg</br> - Zeige alle zur Stapelverarbeitung anstehenden Files : $ mpg_to_avi_V2.pl --showbatch</br> - Führe die Stapelverabeitung transcodieren durch : $ mpg_to_avi_V2.pl --dobatch</br> Interaktive Benutzung : ------------------------------ - Aufruf ohne Parameter $ mpg_to_avi_V2.pl
$ update_filmarchiv.pl /Verzeichnis $ update_filmarchiv.pl /foo/bar.avi</br> - updatet das Filmarchiv - Erwartet als ersten Parammeter einen Avi-File mit voller Pfadangabe oder für Stapelverabeitung ein Verzeichnis mit 2 untergeordneten Verzeichnisebenen für Film/Serie und Genre - erstellt aus dem Originalpfad : z.B: /cdrom/Movie/Filme/Mystic_Horror/Demonlover_uncut.avi</br> eine Verzeichnisstruktur ala : content/main/Filme content/main/Filme/Mystic_Horror/ content/main/Filme/Mystic_Horror/Demonlover_uncut</br> - erstellt 5 Previewbilder und ein Hauptpreviewbild - ermittlet mittels avinfo technische Daten des Avifiles - parst aus vorhanden epg.txt Dateien den Inhalt und fügt ihn in die Html's ein - überschreibt keine vorhandenen html und jpg Files - erstellt automatisch leftframe und topframe Linklisten mikt allen relevanten HTML Codes - erstellt eine Top 10 Liste der zuletzte eingetragenen Files in der EinstiegsSeite
Probleme / Behebung
- ACHTUNG : Version vom 28.05.2005 hat einen Bug :
Bitte in der reccmds.conf prüfen, ob die Anweisung "VdrTransXvid -> als geschnitten markieren..." in einer neuen Zeile erscheint, ich hatte in diser Version vergessen, einen Zeilenumbruch vorher einzufügen, kann aber auch schnell per Hand geändert werden.
Release wird alsbald gefixt.
- File sollte nicht unter 5 Minuten Länge sein
- 16:9 Aufnahmen werden manchmal als 4:3 erkannt und dann gibts Eierköpfe
Abhilfe : in der Datei im Verzeichnis /YOUR_HOME/mpeg2avi/Info/YOUR_MOVIE/mpg2avi.data die Einträge ändern :
alt
Show = 4:3 Stretch = 4,0,8
neu
Show = 16:9 Stretch = 21,0,8
- Zweite Tonspur statt erster Tonspur ( alles ausländisch )
- um den File nochmal zu transcodieren, folgende dateien aus /YOUR_HOME/mpeg2avi/Info/YOUR_MOVIE/ löschen :
vdr2mpg_done --> für wiederholen vdr nach mpg mpg2avi_done --> für wiederholen mpg nach avi
- Für vdr nach mpg, muß das Prefix der Aufnahme von [del] wieder zurück auf [cut] geändert werden.
Die Perlscripte geben so gut wie keine Fehlermeldungen aus, schade eigentlich, aber ein paar Tipps:
- Das Script geht gar nicht auszuführen -- Bad Interpreter ---> ausführen mit /usr/bin/perl meinscript.pl kann helfen.
- unmatched Operator while m// ---> meist fehlt eine ConfigDatei oder ist korrupt.
Traut euch, schaut in die Scripte rein, was die eigentlich machen, wenns Gemeckertes vom Perlinterpreter gibt, gibts meist auch die Zeilenzahl dazu.
Editiert in den Scripten nach Herzenslust, die laufen bei mir und haben sicherlich Hunderte von Bugs, aber sie laufen erstmal...
Es kommt immer wal wieder vor, das ein Vdr File partout nicht will, dann probier mal vdrsync.pl alleine.
Zur letzten Not nehme ich dann avidemux2, das Virtualdub für Linux.
Disclaimer
Ich habs geschrieben, aber ich bin nicht schuld.
Wenn ihr mit dem Scripten arbeiten wollt, müßt Ihr euch in die Scripte einarbeiten, ich gebe keinen richtigen Support.
Wenn ihr etwas ändern / hinzufügen wollt, tut es, ich kann mir keine Zeit nehmen, um ein Feature einzubauen, das ich nicht brauche, wohl aber jemand anders.
Es kann immer passieren, das was kaputt/verloren geht ( vdr-Files, mpegs etc.). Ich habe kein absichtliches rm -rf all reingeschrieben, aber es kann immer was schiefgehen, daher kann ich keine Garantie übernehmen.
So genug der bösen Worte, aber dies ich nicht mein erstes Soft-Projekt, welches ich for all stelle, ich habe schon viele UserMehls gelesen :-)
Wenn die Scripte jemanden das Leben leichter machen, würde es mich freuen.
Grüße an alle VDR-Freaks
Alexander Richter
Snapshot / Download
- Vdrtransxvid-2006-05-31.tgz Aktuellste Variante 450KByte - nicht immer zu erreichen, sorry, aber eben kostenlos und werbefrei