Zur Navigation

FLv MetaDaten per PHP auslesen

1 Andreas (Gast)

Hallo zusammen,
ich habe mehrere FLV-Dateien auf dem Webserver und möchte - sofern vorhanden - deren Breite und Höhe herrausfinden. Leider finde ich keine Beschreibung wie in einer FLV-Datei die MetaDaten vorliegen. Mein Versuch um zunächst ungefähr die Stelle der MetaDaten zu extrahieren sieht wie folgt aus:

<?php
$video_string = file_get_contents("video.flv");
echo substr($video_string,0,500);
?>

AUSGABE:

FLV??? ?????&???????? onMetaData??? ?duration?@w[…¸Qì? starttime?????????? totalduration?@w[…¸Qì?width?@t???????height?@n??????? videodatarate?@lâÌ,Þܹ? audiodatarate?@Pâå‡ññ? totaldatarate?@rï½Wã7? framerate?@8ÿP£†;Ê? bytelength?Ajÿ|€???? canseekontime? sourcedata? B4A7D6347 ?? ??1 ?&#?????????„’ ?Φ¢Ø ÛVÀ0L›¥àÁ~ƒ ûñi€0 · Bð`$÷ø@ϨKÁ‚ü/÷âÕE%àÁ}—ƒ ûñj£Ö¿õSmþ%¸1ÿˆë †?€Á>ƒ ú¬Z²ËÁ‚ü/õXµuL­t‰lÿüM—j±,/²ða?~-bÁ‚ûƒ ø¬oåð bÿ‹ì*KÁ‚ûƒ ø¬ZÏòñø

D.h. ich könnte mir zwar jetzt den Teil nach "width" sowie nach "height" bis zum nächsten Leerzeichen ausgeben lassen, aber da stehen ja nicht wirklich lesbare Zahlen drin. Muss ich den String noch irgendwie konvertieren?

Im Netz wird geflüstert, dass es da wohl noch eine Lösung per ffmpeg geben soll, aber ich kann dafür keine Beschreibung finden.

22.07.2009 13:15

3 Andreas (Gast)

Hallo Jörg,

Die MetaDaten sind optional. Es gibt aber diverse Tools um sie reinschrieben zu können. Z.B. http://www.buraks.com/flvmdi/

Mit ffmpeg habe ich das Problem, dass offenbar Dateien nur über den URL übergeben werden können (ffmpeg_image.php?file=video.flv) und das finde ich absolut ungut. :(

Letzendlich macht dieses Script ja mehr oder weniger das was ich auch vorhabe. Mein Problem ist lediglich dass ich den String offenbar im für mich unbrauchbaren Format vorliegen habe.

Gruß Andreas

PS: Komisch... ich dachte, dass ich diesen Post vorhin schon gesendet hatte. Wann ist WE? :-|

23.07.2009 10:45

4 Jörg Kruse

Mit ffmpeg habe ich das Problem, dass offenbar Dateien nur über den URL übergeben werden können (ffmpeg_image.php?file=video.flv)

Schließt du das aus dem von mir verlinkten PHP-Script?

Wenn kein Parameter übergeben wird, lädt ffmpeg_image.php hier die Datei video.flv im selben Verzeichnis:

$videofile = (isset($_GET['file'])) ? strval($_GET['file']) : 'video.flv';

Du könntest stattdessen aber auch noch ein anderes lokales Verzeichnis angeben, z.B.:

$videofile = '/irgendein-pfad/flv-files/video.flv';

23.07.2009 11:16 | geändert: 23.07.2009 11:16

5 Andreas (Gast)

Okay, da hast du recht.
Sehe ich das richtig, dass ffmpeg erst auf dem Webserver installiert werden muss? Ich sitze hier nämlich gerade vor einem Managed Server mit lediglich FTP-Zugang. Kein SSH, etc.

23.07.2009 11:49

6 Jörg Kruse

Ja, ffmpeg muss installiert sein - gegebenfalls müsstest du deinen Hoster fragen, ob er dies nachinstallieren kann

Auf einem Linuxserver muss in dem PHP-Script der Programmname "ffmpeg-10141.exe" wohl auch noch entsprechend angepasst werden:

passthru("ffmpeg-10141.exe -i \"". $videofile . "\" 2>&1");

23.07.2009 11:54

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]