traco - transcode mit handbrake

  • Kann sein bei manchen Aufnahmen, aber sollte doch nicht um Abbruch führen, oder?


    moin



    doch an der stelle schon ... in meiner aktuellen devel version wir vorher abgefragt ob marks existiert ansonsten startet er das cutfiles gar nicht erst.


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • moin


    da weihnachten ist ... ;)


    es gibt was neues an der front , die von mir verwendete version von traco .


    download links siehe 1 sten post unter DevelVersion


    als deb und als tgz variante .
    inhaltlich beide gleich.


    documantation siehe wiki


    was hat sich getan
    optiomierungen , bug fixing vereinfachungungen


    es sind eingentlich nur noch 2 schritte im traco zu machen :


    prepare vdrtranscode.ts file
    start transcode.


    kleine anmerkung noch ,dass start stop script ist nicht gross getestet und ich weiss nicht wie es sich auf den verschiedenen debian basierenden linuxen verhaelt.

    die beiden config datei werden als .sample installiert , sprich sie muessen ! nachbearbeitet und umbenannt werden.

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

    The post was edited 2 times, last by mark05 ().

  • Hi,


    habe die aktuelle Version nach Wiki Anleitung installiert, aber irgend etwas scheint da noch schief zu gehen - leider ist die Fehlermeldung auch im debug mode eher spärlich. Gibt es Probleme beim Parsen oder stimmt etwas nicht mit der Installation / Konfiguration?



    Janola


    /edit/ Ok, war zu spät gestern die /etc/vdr/vdrtranscode.conf fehlt ganz einfach.. Wer sollte die mitbringen, nicht das traco deb als vdrtranscode Nachfolger?


    Da sollte evlt. die (private) Wiki angepasst werden, vdrtranscode.conf ist wohl nicht mehr, steht aber noch drin.
    cp /etc/vdr/traco.conf.sample /etc/vdr/traco.conf
    vi
    /etc/vdr/traco.conf

  • Nö, verstehe ich nicht WIE das Ganze WAS macht, da fehlt evlt. noch etwas Doku - oder ich stehe furchtbar auf dem Schlauch.
    Den Fehler 'missing path ' des Kollegen habe ich umgangen indem ich "Indir" in der conf gesetzt habe - scheinbar reicht es nicht den Eingabepfad als Parameter mitzugeben? Warum eigentlich nicht?


    Aber wie genau die Syntax des Aufrufs aussehen muss erklärt mir auch die --help option nicht. Die folgenden Aufrufe bringen alle nix, keine Fehlermeldung, kein Ergebnis, nada. Der server Prozess im Hintergrund zuckt auch nur leise vor sich hin.


    tracoadm.pl cutfiles /mnt/VDR_HD_2_MKV/Sportschau_live/2012-01-07.12.00.19-0.rec
    tracoadm.pl /mnt/VDR_HD_2_MKV/Sportschau_live/2012-01-07.12.00.19-0.rec
    tracoadm.pl status /mnt/VDR_HD_2_MKV/Sportschau_live/2012-01-07.12.00.19-0.rec


    Vielleicht gibt es ja doch noch mal ne Kurzeinweisung vom Meister, solange schaue ich nach einer anderen Lösung..
    Janola

  • Moin,


    welcher User muss in der traco.conf angegeben werden bei Yavdr 0.4 ?


    Ich erhalte immer ein:

    Code
    1. can't open /srv/vdr/video.00/Das_Geheimnis_der_Villa_Sabrini/2012-03-04.20.10.2-0.rec/vdrtranscode.xml for writefile Keine Berechtigung at /usr/lib/perl5/Traco/Tracoxml.pm line 187

    VDR: E-Q5I Gehäuse, Zotac Ion, mit YaUsbIR Einschalter, Easyvdr 3.0, TBS5990
    VDR2: Asrock Q1900-ITX, DD-Octopus, DD-Duoflex S2, Easyvdr 3.5

  • moin


    traco braucht den user unter dem der vdr proccess auch laeuft ( wegen file permissions )


    tracoadm benoetigt dem path deswegen weil der syntax so ist wie reccmds ihn aufruft ,


    sprich reccmds (vdr ) haengt immer den path der aufnahme mit an von daher ist ist der tracoadm entsprechen aufgebaut.


    ansonsten gibt es eine leicht aktuallisierte version .


    siehe post 1.


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • ansonsten gibt es eine leicht aktuallisierte version .


    siehe post 1.

    Holla die Waldfee!
    Erstmal vielen Dank für deine Traco-Entwicklung, die auch ich nun unter yavdr4 ausprobieren wollte. Dafür hab ich nach Wiki installiert und konfiguriert.
    Die aktuelle Devl hat einen ganzen Haufen leichter Bugs!


    Was ich so bisher gefunden habe:
    reccmds.traco.conf.sample:


    suche nach "adam", ersetze durch "adm"
    suche nach "vdtranscode", ersetze nach "vdrtranscode"


    Die Container-Config ist in Großschreibweise, muss aber wohl kleingeschrieben werden, deswegen
    container MP4: tracoadm.pl container mp4
    container MKV: tracoadm.pl container mkv
    container M4V: tracoadm.pl container m4v



    Das "missing path"-Problem hatte bei mir folgende Macke:
    /data/video.00 ist die Aufnamepartition und bind-mounted nach /srv/vdr/video.00
    Ich hatte zuerst /data/video.00 als "Indir" in die traco,conf eingetragen, das funktionierte nicht. Es musste der Pfad genommen werden, den das Syslog ausgibt, wenn ein Traco-Befehl aufgerufen wird.


    Dann hatte ich beim Löschen einen Fehler in Zeile 143 von tracoadm.pl, habs erstmal so gefixed, bin aber kein Perl-Fuchs :-)

    Code
    1. if ( $admenv->{'delete'} ) {
    2. if (unlink "$workdir/$admenv->{'delete'}"){
    3. print {*STDOUT} "delete_$workdir\/$admenv->{'delete'}\n";
    4. } else {
    5. croak $ERRNO;
    6. }
    7. leave('_done');
    8. }


    Der Fehler kam durch die falsche reccmds.traco.conf:

    Code
    1. tracoadm.pl delete vdtranscode.ts "/srv/vdr/video.00/Test/2008-03-02.22.58.50.99.rec"
    2. Can't use string ("0") as a SCALAR ref while "strict refs" in use at /usr/bin/tracoadm.pl line 143.


    Ich hab jetzt diesen Beitrag solange geschrieben, bis ich jetzt nach ca. 3 Std ein erstes fehlerfreies Handling mit dem Tool hatte :-)


    HTH


    Thorsten

    yavdr 0.4: CineS2-V6, GeForce GT 240, Pentium Dual-Core E6600@3.06, 2GB, ASRock P43ME, Harmony 600, Onkyo 508, Phillips 40PFL7664H
    vdr-1.7.22-8yavdr1, xbmc-2:11.0-pvr+pipelka-eden

  • moin


    ohje ohje


    ich versuche heute oder morgen eine korregierte version online zustellen.
    im speziellen die
    reccmds.traco.conf.sample
    schnebeck was meinst du mit bind.mounted ? so wie du das schreibst interpretier ich das du einen symlink verwendest ?


    tracoadm schau ich mir an ....... delete verwende ich selber so gut wie nie ...... weil er eingentlich ueberhaupt nicht mehr gebraucht wird .


    ich kann dir gerne zugriff aufs wiki geben ;) wenn du magst :D


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • hi


    devel version angepasst und online gestellt.


    kurz noch zum indir .
    indir wird im traco.- srv und .-adm verwendet .


    im tracoadm wir dann geprueft ob der uebergebene path auch $indir enthaelt


    das habe ich deswegen so gemacht um sicher zustellen das tracoadm , wenn er via OSD verwendet wird auch im gleichen path arbeitet wie
    der in der config angegebene indir path.


    der vdr uebergibt automatisch den kompletten path an tracoadm.pl an letzter stelle .


    throretisch kann diese abfrage / ueberruefung eigentlich in der form komplett raus ,
    ich denke da mal drueber nach.


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • schnebeck was meinst du mit bind.mounted ? so wie du das schreibst interpretier ich das du einen symlink verwendest ?

    Aloha,


    Ein bind-mount sieht in der /etc/fstab so aus

    Code
    1. /data/video.00 /srv/vdr/video.00 none bind,nobootwait 0 0


    Der Vorteil gegenüber einem Symlink ist, dass Bind-Mount eine Änderung der Rechte zulässt. So kann man z.B. einen Ordner "/backup" haben, in dem root ein System-Backup erstellt und bind-mounted einen ordner /sicherung der read-only und mit noexec einen sicheren Zugriff für den User erlaubt. Dieses Ändern der Rechte geht mit Symlinks nicht.


    Ich hab gesehen, dass der tracoserv den Pfad auf symlink testet, meinen mount-bind kann ein solcher Test nicht erkennen.

    Quote

    throretisch kann diese abfrage / ueberruefung eigentlich in der form komplett raus ,


    ich denke da mal drueber nach.

    Ich denke auch, da vdr immer den ganzen Pfad übergibt, ist eine solche Option eigentlich nur zum Debuggen sinnvoll.
    Evtl könnte man auch folgenden Pseudocode verwenden

    Code
    1. myfullpath = $1
    2. mypath := dirname($myfullpath)
    3. myname := basename($myfullpath)
    4. if $mypath == "" then mypath:=$Indir


    So kommt der Fullpath von vdr evtl direkten Konsolenanwendungen nicht ins Gehege.


    Ich muss noch zwei Bugs unter yavdr prüfen:
    Nach Restart des Servers hatte ich auf einmal zwei Serverinstanzen laufen, da werde ich mal schauen, ob ich evtl ein upstart-File erstelle.
    Und nach dem Encoden hatte ich bis zuletzt mein mkv-File im rec-Ordner. Und wenn es dann nur noch in den Outdir-Folder verschoben werden müsste, ist das File verschwunden :-) Das vdrtranscode.ts-File bleibt dagegen erhalten. Evtl wäre es prima, vor dem Encoden zu prüfen, ob der Zielort beschreibbar ist?


    Mir kam noch in den Sinn, ob man den handbrake-Prozess besser monitoren könnte, z.B. per Prozentzahl, gegenüber der Aussage "processing". Ich hab mir mal die Dateihandles unter /proc/$PID/fd angeschaut, aber so richtig was Praktisches hab ich nicht gesehen.


    Bye


    Thorsten



    P.S.
    Bist du sicher, dass du das richtige Paket aktualisiert hast, beim Prüfen der Sample-Config-Datei im tgz aus Post1 waren alle Fehler noch enthalten?! :-/

    yavdr 0.4: CineS2-V6, GeForce GT 240, Pentium Dual-Core E6600@3.06, 2GB, ASRock P43ME, Harmony 600, Onkyo 508, Phillips 40PFL7664H
    vdr-1.7.22-8yavdr1, xbmc-2:11.0-pvr+pipelka-eden

    The post was edited 1 time, last by schnebeck ().

  • Hi


    Ggf immer die version vom wiki nehmen das hier im forum das editiern von posts etwas kommisch ist bei urls.
    Was das renamen bzw moven der fertigen files betrifft so solten die im outdir , siehe config, auftauchen.
    Bei funkioniert das egentlich recht zuverlaessig ,ggf hat das was mit diesen binddir thema zutun , ich muss mal schauen,
    Wie perl damit u geht.


    Kannst du das mal mit einem normale verz. Testen?


    Holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • hi
    also kakadoo ist mein 2ter account .


    ich habe die packete nochmal gebaut und hochgeladen ich hoffe das nun alle files mit anpassungen vorhanden sind.


    tracoadm braucht kein indir mehr seitens der config , der server ( tracosrv.pl ) benoetigt diese option weiterhin und ist auch zwingend.



    was bind mounts betrifft so muesste ich sehr aufwendig die ausgabe von mount parsen um die entsprechenden verzeichnisse zu verarbeiten.


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • Ich bin noch am Testen. Mein HandbrakeCli scheint nicht immer fps-Daten zu generieren. (Ich vermute, dass Handbrake die Fileanalyse macht.) Du hast dump-Befehle im Server auskommentiert. Die aktiviert erhalte ich dann manchmal die Ausgabe fps =>undef, was später zur einem Div/0-Fehler führt und anscheinend die Server-Instanz crashen lässt. Ich werde am WoE weiter testen.


    Bye


    Thorsten

    yavdr 0.4: CineS2-V6, GeForce GT 240, Pentium Dual-Core E6600@3.06, 2GB, ASRock P43ME, Harmony 600, Onkyo 508, Phillips 40PFL7664H
    vdr-1.7.22-8yavdr1, xbmc-2:11.0-pvr+pipelka-eden

  • Hi
    Schau mal im contrib nach da muesste ein beispiel script bei sein welches die andbrake analyse routine
    Verwendet und das ergebniss dann ausgibt.
    Fps kann durch 2 moeglichkeiten ermittelt werde


    A.
    Uber die info datei die vom vdr geschrieben wird , das sollte default sein
    B.
    Ueber die analyse von handbrakecli


    Dafuer gibt es eine option in der config


    Holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • Ahh! Man sollte aktuelle vdr-Aufnahme-Daten zum Testen verwenden :-)
    Ich hab hier noch ein einige alte Aufnahmen aus der Vor-Transport-Stream-Zeit auf der Platte und die kann Traco nicht verarbeiten.
    Bei allen "neueren" Daten scheint es gut zu funktionieren. Two-Pass scheint mir etwas aufwändig zu sein, wenn ich die guten Single-Pass Ergebnisse mit Handbrake-GUI sehe.


    Oh, die Test-Programme haben sehr geholfen. Die Use-Zeilen sind wohl veraltet, musste Traco gegen Traco::Traco tauschen.


    Gibt es sowas wie Lokalisierung (l10n)?


    Bye


    Thorsten

    yavdr 0.4: CineS2-V6, GeForce GT 240, Pentium Dual-Core E6600@3.06, 2GB, ASRock P43ME, Harmony 600, Onkyo 508, Phillips 40PFL7664H
    vdr-1.7.22-8yavdr1, xbmc-2:11.0-pvr+pipelka-eden


  • hi


    veraltert wuerde ich vieleicht nicht sagen , die test dinger liegen bei mir direkt im gleichen verzeichniss wie die lib deswegen nur use.


    bei Traco::Traco erwartet das scprit das die lib in einem verzeichniss namens Traco liegen im perl lib path.


    ob du 2 pass oder nur single pass machen moechtest kannst via config steuern.


    use_classic_profile = true


    die alten aufnahmen , soweit sie den mit .ts enden kann traco verarbeiten jedoch muss in der config das umgestellt werden wie die fps ermittelt werden .


    fpstype=handbrake


    localisierung gibt es noch nicht , wenn wuerde ich das aber in richtung utf8 mache nso wie der vdr auch das macht.
    habe ich mir aber bis jetzt noch keine gedanken drueber gemacht.


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • In der aktuellen Traco version ist ein Bug in der package Traco::Tracoio (version 0.18 ).


    Und zwar in der Funktion _joinfiles:
    Dort wird der $opentype auf >>:raw gesetzt wenn das destinationfile schon existiert. Dies passiert allerdings außerhalb der for-Schleife, so dass traco mehrere *.ts Dateien nicht zu einem vdrtranscode.ts zusammenfügt sondern immer wieder mit dem letzten überschreibt.


    Der richtige Code muss so aussehen:


    BTW: das Linux Kommando "cat" wäre eh schneller als diese Schleife ...


    Viele Grüße,
    Tomix

  • hi


    es gibt eine neue git version , die einge probleme bhandelt die aufgetreten sind.


    desweiteren ist traco nun unabhaengig davon das vdr installiert ist oder nicht , zb. man hat einen zu schwachen vdr rechner zum transcodieren und kann sich das
    record verzeichnis mounten.


    desweiteren gibt es nun
    *ein fallback wenn bei prepare_traco_ts im ziel verzeichniss keine marks datei existiert das wird joinfiles genutzt.
    *man kann traco im verzeichniss starten woring er aus gecheckt wurde ( lib/)
    *Tracovdr.pm ( ich werde hier noch weitere module generieren um Traco.pm uebersichtlicher zu machen


    holger

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit

  • hi


    es gibt ein kleines update.


    details siehe git


    https://github.com/kakadoo/traco



    holger


    p.s. falls jemand das mal als deb paket bauen will welches ich veroeffentlichen soll bitte melden

    VDR1 : core2duo 3.2 Ghz , 1GB Ram , 2x TT 1501 DVB-C 1 GB HD , Asus EN 210 Silent , Debian Squeeze 64bit + e-tobi Pakete
    VDR2 : 1.2 Ghz P3 , Digitainer 768 MB Ram , yavdr 0.3a 32 bit