VdrtranscodeV2
aus Wiki , by Holger Glaess
Inhaltsverzeichnis
Beschreibung
- das ganze ist aus dem code von Alexander Richter entstanden vdrtranscode
- hierbei geht es um die idee Handbrake so zu
- verwenden das man aufnahmen vom vdr direkt via OSD transcodieren kann.
- fuer mich kam noch hinzu das ich einige zusaetliche idee hatte die
- leider nicht wirklich zu realisieren waren , da der aufwand extremst hoch
- gewesen waehren diese in den code von alexander einzubauen.
- von daher habe ich einiges aus seinem code verwendet ,
- gerade den umrechnungscode ,
- crop etc sind noch zum grossen teil von ihm.
- ich selber habe dann das ganze mit OO versehen ,
- einem steuersystem so das man :die einzelnen schritte steuern kann ,
- schnittfunktion cpu kontrolle.
- fuer vielen infos und hilfe von alexander moechte ich mich hiermit nochmal bedanken.
Funktionsweise / Ablauf
- ein transcodier proccess kann nur gestartet werden wenn eine datei
- vdrtranscode.ts im jeweiligen aufnahme verzeichniss existiert.
- vdrtranscode.ts wird mit prepare_traco_ts erstellt. im OSD prepare trancode file
- diese datei dann auch alternativ durch joinfiles oder , besser,cutfiles erzeugt werden .siehe tracoadm.pl
- aktuell muess die zieldatei endung sowie die zielqualitaet angegeben werden.
- siehe reccmd.vdrtranscode.conf oder falls eingebunden im OSD.
Status
- aktuell Beta-19
- d.h. da das ganze noch via tgz zum download angeboten wird,
- umso schneller korregieren und verbessern zu koennen.
- es kommen keine neue funktionen aktuell hinzu.
:*die ersten schritte hin zu einem deb packet sind gemacht
- ab beta-17 sollte die installation libreadonly-perl nicht mehr noetig sein
- ab beta-19 profile support , run external prg after transcode and renaming
- use most name traco ( just creating xml , ts and lck files with vdrtranscode )
- devel version ist schon einen ganzen satz weiter und ich biete sie hier auch als deb packet zum download an.
Installation
- ab beta-19 ggf alle alten dateien von vdrtranscode versionen
- von mir loeschen ( gerade die im /usr/local/lib/site_perl
- den aktuellen Proc::Daemon via cpan -i Proc::Daemon installieren
- die dateien im tgz an die entsprechende stelle kopieren
- ggf /etc/vdr/vdrtranscode.conf anpassen
- handbrake installieren handbrake
- ein erster test /usr/local/bin/tracosrv.pl -vvv -f
- die deb version mit dpkg -i traco-xxxxxxx.deb installieren.
- die sample config umbennen und entsprechend seiner umgebung bearbeiten
- die reccmds.traco.conf.sample umbenennen und ggf an die richtige stelle
- kopieren damit sie eingebunden wird , siehe auch entsprechende documentation
- von der verwendeten , VDR , linux distribution.
Optionen Server
- -v verbose mehrfach verwendet erhoeht die ausgabe
- -f run in forground force to run as froground proccess
- -d debug mode sollte nicht mehr noetig sein
- --help oder -h help
- --config oder -c angabe der configdatei default /etc/vdr/vdrtranscode.conf
Optionen tracoadm.pl (ehmalig vdrtranscodeadm.pl)
- zum schluss immer das jeweilige aufnahmeverzeichnis angeben
- z.b. /opt/video.00/Die_Queen/2011-04-21.22.13.2-0.rec
- status setzen oder holen des status
- status holen z.b. vdrtranscodeadm.pl status status verz.
- ready vdrtranscode proccess starten.vdrtranscodeadm.pl status ready verz.
- cutfiles Aufnahme anhand der marks datei schneiden
- joinfiles Einzelne Aufnahme Dateien zusammenfuegen
- prepare_traco_ts eine mischung aus cutfiles und joinfiles automatisiert
- audiotrack first oder all
- profile SD smallHD HD default SD siehe auch config
- container mp4 m4v mkv
- quality UVHQ VHQ HQ MQ LQ VLQ
- show
- man beachte das man nun mit den optionen audiotrack,container,quality,
- das jeweils eingestelle profile veraendert!
- wird ein neues profile gesetzt so wird eine komplett neue vdrtrsncode.xml
- im jeweiligen verzeichniss erstellt , vorhandene ,ggf veraenderte , :vdrtranscode.xml wird geloescht.
Die configdatei traco.conf
- es gibt hier eineige optionen neu und einiges was nicht mehr
- verwendet wird aber noch enthalten um aeltere versionen weiter
- zu verwenden.
neue optionen in der config
- defaultprofile zz. PAL,SD,smallHD,HD
- facility syslog facility default syslog
- priority sylog priority default info
- fpstype welche fps angabe soll verwendet werden default vdr alternativ handbrake
- wenn handbake verwendet wird vor dem eigentlichen tracscodieren 2x
- die vdrtranscode.ts gescan't
- 1x zum fps ermitteln
- 1x rest der benoetigten werte ermitteln um.
- recalculate_bitrate bitrate anhand der aufloesung bereichen default = no
- setcpu wer bestimmt wieviel cpu kerne zum umrechenen verwendet werden
- wenn option = undef ( blank ) handbrake bestimmt selber wieviele cpu verwendet werden
- manual hier kann man mit der weiteren option maxcpu bestimmen wieviele cpu verwendet werden sollen
- auto hier wird nach der formel max cpu kerne -1 die verwendetet cpus festgelegt.
- filenameformat bestimmt wie der dateiname aussehen soll fuer den fertigen
- umgerechneten film.
- es kommen hier bei conf-macros zum einsatz , siehe sample config file
- writelog die ausgabe von handbrake wird in ein log geschrieben.
Aussichten / Ideen
*externes script ansteuern nach beendigung des transcodier proccess
:um den fertig transcodierten film weiterzu verarbeiten z.b. mit anderen
:plugins soll ein shell script , welches frei gestalltbar ist , aufgerufen
:werden , hier werden dann der fertige filmname samt path und der orginal :aufnahme path uebergeben.
*profiles
:um fuer bestimmte endgeraete optimierte filme zu transcodieren soll
:ein einfach profile system , im xml stil , entstehen.
:als alternative zum jetzigen qualitaetswerte setzen.
- einbinden von naludump fuer HD filme
- status bar anzeige im osd
- gestartet , aktuelle dev version scheibt den output von handbrake in ein logfile
- diese wird dann von tracoadm dann ausgewertet und zeigt dann im osd eine
- fortschrittsanzeige an.
- auto modus (z.b. fuer vdr headless betrieb)
- traco startet automatisch nachdem die aufnahme fertig ist.
Download
API Documentation
-
- Basisklasse fuer Tracoio.pm , Tracoxml.pm und Tracoprofile.pm