[Announce] vdrTUBE 0.2.3b

  • hi,


    ich hab mich mal mit dem Thema "springen im FLV" beschäftigt...
    durchgetestet hab ichs erfolgreich mit vdrtube-0.2.0b (das hatte ich noch rumliegen). Aktuell teste ich grade auf 0.2.3b.


    Das Stichwort heißt "FLV pseudo streaming".


    Es bedarf einer speziellen Anpassung am Webserver und einer aktuelleren Version vom jwplayer.


    Im Detail:
    Ich habe lighttpd im Einsatz. Hier muss mod_flv_streaming und optional mod_secdownload aktiviert werden.
    mehr siehe: http://blog.lighttpd.net/artic…v-streaming-with-lighttpd


    Dann braucht man noch einen neueren jw-player.
    Hierfür unter http://www.longtailvideo.com/players/jw-flv-player/ die aktuelle Version runter laden.
    Dann aus dem Archiv die player.swf kopieren und die webtree/flvplayer.swf überschreiben.


    Zum Schluss müssen dem Flash-Player-Objekt noch zwei Variablen übergeben werden:
    - provider='http' und
    - http.startparam='start'
    Diese Änderungen müssen im Template gemacht werden, damit sie im html-file des Videos landen.
    für das Default-Template ist themes/default/template.html anzupassen. Nutzt man andere Templates, muss die Änderung auch dort durchgeführt werden.
    Dann gibt es auch noch themes/default/template-window.html, hier sieht es so ähnlich aus. Einfach die 2 Zeilen unter der "File"-Variable einfügen.
    vorher:

    Code
    ...
                so.addParam("allowfullscreen","true");
                so.addVariable("file","##COUNT##.flv");
                so.addVariable("enablejs","true");
                so.addVariable("javascriptid","mpl");
    ...


    nachher:

    Code
    ...
                 so.addParam("allowfullscreen","true");
                 so.addVariable("file","##COUNT##.flv");
                so.addVariable("provider","http");
                so.addVariable("http.startparam","start");
                 so.addVariable("enablejs","true");
                 so.addVariable("javascriptid","mpl");
     ...


    Wenn man schon Videos hat müssen die html-Files dafür natürlich auch aktualisiert werden.


    Infos zu JW Player und FLV Pseudo Streaming unter: http://www.longtailvideo.com/s…ery-http-pseudo-streaming


    Springt man jetzt im Video wird das Video neu angefordert. Jedoch nicht in dem eigentlichen Schema:

    Code
    http://fqdn/vdrtube/10001.flv


    sondern mit "Anhang" der vom mod_flv_streaming interpretiert wird

    Code
    http://fqdn/vdrtube/10001.flv?start=12345


    Jetzt wird nämlich nur der Teil des FLVs ausgegeben, den wir auch brauchen. Das FLV wird also "virtuell" vom Webserver "kleingehackt".
    Zur Erläuterung: hat man ein FLV, dass 100MB groß ist, lädt der Browser beim ersten Mal das FLV und hat dann 100MB bis zum Film-Ende zu laden. Springt man in die Mitte des Films, wird das File neu geladen und die Datei-Größe ist nurnoch 50MB. Es werden also nurnoch 50MB bis zum Film-Ende nachgeladen. Man kann auch Springen, bevor der ganze Film im Browser-/Flash-Player-Cache liegt.


    Eigentlich sollte es das jetzt schon gewesen sein.
    ABER: Für das Seeken (Springen im Video) sind Meta-Daten nötig, die ffmpeg leider ans Datei-Ende schreibt. Sprich die für das Seeken wichtigen Informationen liegen uns erst vor, wenn das File komplett geladen wurde.
    Dieser Umstand lässt sich korriegieren. Dafür gibt es Metadata Injector Tools.


    Ich habe das Tool yamdi (http://sourceforge.net/projects/yamdi/ ) gewählt, weil es unter Debian Squeeze aus den Repos installierbar ist.

    Code
    apt-get install yamdi


    Nachdem ffmpeg das flv fertig umgewandet hat müssen wir es noch einmal durch yamdi jagen und danach das originale flv ersetzen...
    Hier ein Beispiel-Code-Schnipsel:

    Code
    yamdi -i webtree/10001.flv -o webtree/10001.flv.new && mv webtree/10001.flv.new webtree/10001.flv


    Das yamdi-Command muss natürlich auch noch in die vdrtube.pl mit integriert werden. Es muss irgendwo ans Ende. Vermutlich kurz hinter

    Code
    my $exitcode = system($command);

    .
    Ich bin aber nicht der große Perl-Programmierer. Vielleicht kann da mal jemand mit drüber schauen.


    Zum Abschluss natürlich auch noch was alles nicht geht...
    - die Sprung-Buttons +/- x Sekunden gehen nicht mehr. Stört mich aber nicht, weil man ja bequem auf dem Video-Verlauf springen kann.
    - Springen an bestimmte Marken über andere Funktionen wird denke ich auch nicht gehen. Da muss man den Player sicher anders ansprechen.


    LG
    MAX

  • Hi,


    die neuste Version scheint leider auch noch nicht mit .ts files umgehen zu können:

    Zitat

    ~/vdrtube-0.2.3b $ perl vdrtube.pl /mnt/media/Video/VDR/Doku/%20000_Kabel_unter_dem_Meer/2012-01-27.06.30.39-0.rec
    INFO: 10001: Get_latest_ID: got id 10001.
    INFO: : Check_if_fine_title_exists_in_index: recordings.csv yet to be created.


    ERROR: cannot detect aspect ratio - is recording ok and helpers/aspect.pl available? at subs/Get_Aspect_and_Final_Resolution.sub line 34.

    Hat das jemand mit VDR 1.7 im Einsatz?


    bye,
    Karl

  • ich sehe gerade, dass ich da was gepatched hab...



    ob das dann reicht musst du mal probieren...
    ist schon ne weile her, dass ich da dran war.

  • Danke für Deine Mühe!!


    Der Schritt geht auf jeden Fall in die richtige Richtung.
    Leider will ffmpeg da nicht mehr gehen :(




  • der Fehler ist hier:

    Code
    '/home/patrick/public_html/vdr/vdrtube-0.2.0b/webtree'/10002.flv


    muss heißen:

    Code
    '/home/patrick/public_html/vdr/vdrtube-0.2.0b/webtree/10002.flv'


    Ich glaube den Fehler hast du dir selbst eingebaut. Den gabs bei mir nicht.


    ich hab grad mal noch meinen post 1050208 bearbeitet....jetzt hast du diffs aller modifizierter files...
    Vielleicht ist da ja was drin, dass ich vergessen habe zu erwähnen.

  • Hallo


    Leider habe ich immer noch das selbe Problem.
    Ich glaube einfach das ffmpeg da Probleme macht.


    Hier mal die Zeile per Hand aufgerufen:


    Ich war mal so frei und habe den Patch in ein anderes Format gebracht.
    Zu beachten ist das man vdrtube.pl ein mal vorher starten muss damit das webtree Verzeichnis angelegt wird.
    Zum schluss dann noch
    chmod +x ./helpers/aspect.sh


  • So nach einem kurzen Test mit einer aktuellen ffmpeg Version scheint es zu gehen.

  • Ja nun läuft alles.


    Nun wünsche ich mir noch das man auf HTML5 Video umsteigen kann ;D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!