YouTube Script: Probleme mit großen Dateien

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • YouTube Script: Probleme mit großen Dateien

    Ich hoffe das ist das richtige Forum hier...

    Ich habe ein Youtube Clone Script und ein Problem mit dem Upload von größeren Videos.
    Zuerst ist der Upload immer mittendrin abgebrochen. Jetzt habe ich in der Htaccess-Datei php_value upload_max_filesize 100M eingetragenund jetzt lädt er die Videos auch komplett hoch. Soweit so gut...
    Nur jetzt kommt das nächste Problem. Es wird ja zu den Videos ein "viewkey" erstellt. Und das scheint nicht richtig zu funktionieren.
    Das ist aber nur bei größeren Videos, bei kleinen klappt alles einwandfrei.
    Woran kann das liegen? Es muss ja irgendwas mit der Größe zu tun haben nur mir fällt nix ein. Ich hab auch nicht so viel Ahnung mit Programmierung...

    Danke schon mal im Vorraus
  • Hi,

    das Script hab ich mir interessehalber auch mal gegönnt (für 1 EUR in der bucht).
    Dieser viewkey hat einen simplen Aufbau.

    In die Tabelle 'video' werden die ganzen Daten (title, description, keyword, channel, space, addtime, adddate, vkey, type) gespeichert

    Der Schlüssel setzt sich wie folgt zusammen
    * Speichere den Eintrag
    * Lese die ID des Eintrags aus
    * verschlüssele mir die ID mit md5
    * schneide mir daraus das elfte bis zwanzigste zeichen aus
    * das ist der viewkey

    In Code sieht das so aus

    Quellcode

    1. $conn->execute($sql);
    2. $vid=mysql_insert_id();
    3. $key=substr(md5($vid),11,20);


    Ich sehe dabei aber kein Problem mit großen Dateien.

    "orbitz311" schrieb:

    Es wird ja zu den Videos ein "viewkey" erstellt. Und das scheint nicht richtig zu funktionieren.

    Was genau funktioniert denn nicht?
  • Also bei kleineren Dateien sieht der Key so aus :viewkey=e257e44aa9d5bade97ba
    Und wenn ich größere Dateien hochlade bekomme ich so einen Key der nur aus einigen Zahlen besteht.
    Das Programm lädt die Datei ja erst in einen Temporären Ordner und verschiebt sie ja dann. Kann das Problem vieleicht da liegen?
    Das ist jetzt auch schwer zu erklären. Die Dateien sind nach dem Hochladen alle da wo sie sein sollen. Ich bekomme auch die Meldung das der Upload geklappt hat.
    Dann soll man ja noch beschreibung machen für das Video und dann beim Abspeichern bekomme ich die Meldung Invalid Key.
  • Ok,
    dein Invalid Key habe ich auch ausgemacht.

    Quellcode

    1. $sql="select VID from video WHERE vkey='$_REQUEST[viewkey]'";
    2. $rs = $conn->Execute($sql);
    3. if($rs->recordcount()<=0)$err="Invalid key";


    Aber sehe leider keinen Fehler.
    Erst wird der Datenbankeintrag mit den Zusatzinfos gespeichert.
    Dann wird die ID ausgelesen.
    Dann wird das Video in den normalen php tmp ordner geladen.
    Dann von diesem Ordner in einen $config[vdodir] verschoben.
    Dann wird die Konvertierung ins FLV Format gestartet
    Dann wird weitergeleitet.

    Evtl. könnte es ein Problem sein, dass das Konvertierungsscript noch läuft, wenn man die Seite verlässt. Aber das würde in einem kaputten Video - nicht aber in einem falschen Datenbankeintrag enden.

    Dennoch ist es die Einzige Idee, die ich habe.
    Also kommentiert mal in der upload.php die Zeile 86 aus.

    Quellcode

    1. //exec("$config[ffmpeg] -i .....


    Das Video klappt dann natürlich nicht. Aber beobachte mal ob die Fehlermeldung weggeht.
  • Ok, dann versuch mal folgendes:

    Quellcode

    1. exec("$config[ffmpeg] -i ... $config[flvdodir]/".$vid.".flv >/dev/null 2>&1");


    Hier zum Hintergrundwissen:
    [phpdoc]exec[/phpdoc]
    Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.
  • Hallo,

    mir ist was aufgefallen... Der Key wird doch richtig erstellt! Wenn die Meldung Upload erfolgreich kommt, steht ja da auch der Link mit dem Key drin. Und da ist er in Ordnung. Ich bin immer nach dem gegangen was unter den Videos steht wenn man das Video anschauen will. Und da ist der Key dann nicht in Ordnung. Ich hab den Link mit dem normalen Key mal geöffnet und dann kam diese Fehlermeldung:

    Warning: stristr() [function.stristr]: Empty delimiter. in /home/web007/public_html/include/function.php on line 358

    Diese Meldung tritt aber auch nur bei größeren Videos auf. Bei den kleinen Videos ist das nicht. Vielleicht liegt der Fehler ja da.

    {
    $tarray=explode(" ",$rs->fields['keyword']);
    for($i=0;$i<count($tarray);$i++)
    * {

    if(stristr($list,$tarray[$i])===FALSE)

    Bei Line 358 habe ich mal ein Sternchen vorgemacht...
  • Eine Idee hätte ich noch, aber ob das möglich ist weis ich ja nicht. Könnte es sein das vielleicht in der Datenbank oder irgendwo anders eine maximale Videogröße angegeben ist? Den maximalen Upload musste ich ja auch mit der htaccess-Datei hochstellen und bei kleineren Dateien gibt es ja keine Fehlermeldung. Also muss es ja irgendwas mit der Größe der Dateien zu tun haben. Und in der Datenbank habe ich auch eine Tabelle gesehen ,die Space heißt. space bigint(20) steht da mitunter drin...
  • Ja ich habe die Dateien runtergeladen und sie sind alle in Ordnung.
    Also ich denke nicht das es am Program liegt. Kommt mir so vor als ob sich der Key nicht in der Datenbank speichern lässt. Die ganzen Informationen von dem Video sind ja mit dem Key verbunden. Und wenn der erstellte Key nicht in der Datenbank gefunden wird, kommt wohl Invalid Key...

    Ich habe mal die Keys verglichen...
    viewkey=27ad868d138f2b4fdd6f so sieht der Key aus den das Program erstellt hat.

    viewkey=1311160802 und so sieht der Key aus der in der Datenbank gespeichert wurde.

    Das ist das selbe Video. Woher jetzt der Unterschied kommt beim Abspeichern kann ich mir nicht erklären.