Alles anzeigenHallo decembersoul,
Du hast nichts falsch gemacht, allerdings wird ein anderer Flash-Player (nach meinen bisherigen Erkenntnissen) kein anderes Ergebnis liefern.
Um die FLVs zu indizieren und beliebiges Springen ohne vollstaendigen Download zu ermoeglichen braeuchte es "schwerere Geschuetze" (Indexer, Webserver mit dynamischem Content (PHP z.B.)
Das schiesst aber genau am Ziel von vdrTube vorbei eben statischen Content zu produzieren der notfalls komplett ohne Webserver abspielbar ist.
cu
gonz
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:
...
so.addParam("allowfullscreen","true");
so.addVariable("file","##COUNT##.flv");
so.addVariable("enablejs","true");
so.addVariable("javascriptid","mpl");
...
nachher:
...
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:
sondern mit "Anhang" der vom mod_flv_streaming interpretiert wird
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.
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:
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
.
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