Videos einbetten ...

Hallo zusammen, ich tue mich leider schwer damit irgendwie Videos einzubetten. Ich hab jetzt ein PlugIn gefunden (iZAP Videos), bekomme das aber nicht konfiguriert, bzw. es crasht mir die Installation. 

Was ich nicht auf die Kette bekomme ist, dass die Pfade zu PHP und ffmpeg benörgelt werden. Mit whereis finde ich beide unter /usr/bin und so ist es auch in der Konfiguration eingetragen.

Ferner wird exec() benörgelt, wo ich leider keine Idee habe, was ich denn da tun soll.

Das PlugIn ist in seiner letzten Version für Elgg 2.3 ... ist das für meine aktuelle 3.3.7 einsetzbar ?

  • hab jetzt die hochgeladenen Video-Files gefunden ... unter /var/[data-dir]/1/56/tmp liegen alle Viedeos aus allen Versuchen -> die werden beim Löschen also nicht gelöscht. Vielleicht daher die Meldung "Seite nicht gefunden" (siehe oben). Die Videofiles haben das Format "[domainname]_izap_videos_1594378585_[VideoFileName]"

    Das Vorschaubild lag unter /var/[data-dir]/1/56/izap_videos/uploaded und wurde ordnungsgemäß gelöscht.

    Kann es sein, dass etwas mit den Pfaden für die Videofiles nicht in Ordnung ist ?

  • this is what my apache-error.log does look like ... this is the only entry during the whole process ... looks to me, that the files are in correct location ... the thumnail is correctly processed ... but simply the process for transforming the video is not started

    ffmpeg version 4.2.2-1ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
      built with gcc 9 (Ubuntu 9.3.0-3ubuntu1)
      configuration: --prefix=/usr --extra-version=1ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
      libavutil      56. 31.100 / 56. 31.100
      libavcodec     58. 54.100 / 58. 54.100
      libavformat    58. 29.100 / 58. 29.100
      libavdevice    58.  8.100 / 58.  8.100
      libavfilter     7. 57.100 /  7. 57.100
      libavresample   4.  0.  0 /  4.  0.  0
      libswscale      5.  5.100 /  5.  5.100
      libswresample   3.  5.100 /  3.  5.100
      libpostproc    55.  5.100 / 55.  5.100
    Input #0, avi, from '/var/[data-dir]/1/56/tmp/[domain-name]_izap_videos_1594407227_Project_3.avi':
      Metadata:
        encoder         : Axara Ltd.
      Duration: 00:00:47.13, start: 0.000000, bitrate: 608 kb/s
        Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x576 [SAR 1:1 DAR 5:4], 369 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc
        Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 224 kb/s
    Stream mapping:
      Stream #0:0 -> #0:0 (mpeg4 (native) -> png (native))
    Press [q] to stop, [?] for help
    [mpeg4 @ 0x558931fa22c0] Video uses a non-standard and wasteful way to store B-frames ('packed B-frames'). Consider using the mpeg4_unpack_bframes bitstream filter without encoding but stream copy to fix it.
    Output #0, rawvideo, to '/var/[data-dir]/1/56/tmp/[domain-name]_izap_videos_1594407227_Project_3_i.png':
      Metadata:
        encoder         : Lavf58.29.100
        Stream #0:0: Video: png, rgb24, 320x240 [SAR 15:16 DAR 5:4], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc
        Metadata:
          encoder         : Lavc58.54.100 png
    frame=    1 fps=0.0 q=-0.0 Lsize=      37kB time=00:00:00.03 bitrate=9074.5kbits/s speed=0.0412x
    video:37kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
  • Beim Hochladen eines VIdeos wird ein Eintrag für das Video angelegt (sofort) und das Vorschaubild with erzeugt (sofort). Der Logeintrag in deinem Posting ist wohl der Aufruf von ffmpeg zur Erzeugung des Vorschaubildes. Für die Konvertierung des Videos müßte ein ähnlicher Logeintrag drin sein, wenn der Konvertierungsprozess irgendwann getriggert werden würde.

    Schritt 1: das iZAP-Videos-Plugin hat auf seiner Plugineinstellungen-Seite einen Server-Analysis-Tab. Ist da alles grün oder wird irgendein Test mit einem Fehler in rot angezeigt? Größere Videos benötigen zur Konvertierung eventuell größere Werte der PHP-Variablen, die auf dieser Seite angezeigt werden. Als ersten Test würde ich empfehlen, ein kleines Video hochzuladen, bei dem es unwahrscheinlich ist, dass durch einen zu kleinen Wert einer der PHP-Variablen ein Limit überschritten wird (das iZAP Videos-Plugin enthält sogar ein kleines Videofile, das es selbst zum Testen verwendet).

    Schrit 2: bist Du definitiv sicher, dass der Cronjob von Elgg - im speziellen das Intervall, das bei den iZAP Videos-Einstellungen auf dem Einstellungen-Tab für das Triggern der Konvertierung verwendet wird - auch funktioniert? Im Adminbereich Deiner Seite gibt es im Abschnitt "Informationen" - "Cron" eine Tabelle, die auflistet, wann die Cronjobs jeweils zuletzt gelaufen sind. Passt das? Wenn nicht, wird die Konvertierung schlchtweg nicht getriggert.

    Wenn die Server Analysis-Seite alles in grün anzeigt und die Cronjobs wie zu erwarten regelmäßig laufen, könntest Du testhalber auf dem Server auf der Kommandozeile das Konvertierungskommando von ffmpeg mit einen Testvideo ausprobieren (sofern Du ssh-Zugang hast). ffmpeg hat bei all seiner Versionen teilweise unterschiedliche Parameter, die zu verwenden sind, um ein Video zu konvertieren. Nicht das einer der Parameter mit der ffmpeg-Version auf Deinem Server nicht funktioniert.

    Wenn das alles nichts hilft, weiss ich gerade auch nicht weiter. Wie schon erwähnt, hatte ich die für Elgg 3 aktualisierte Version bisher selbst aus zeitgründen nie testen können. Vielleicht ist es schlichtweg ein Bug (oder Bugs) und sie funktioniert nicht vollständig. Vielleicht hab ich am Wochenende mal Zeit um es zumindest kurz selbst zu testen.

  • > Ist da alles grün oder wird irgendein Test mit einem Fehler in rot angezeigt?
    ja, alles grün. Mein testvideo ist 3,5 MB

    >bist Du definitiv sicher, dass der Cronjob von Elgg - im speziellen das Intervall, das bei den iZAP Videos-Einstellungen auf dem Einstellungen-Tab für das Triggern der Konvertierung verwendet wird - auch funktioniert?
    ja, bin mir sicher. Sowohl sowohl im syslog, als auch auf der Admin-Seite kann ich sehen, dass der cronjob jede Minute ausgeführt wird

    Ich probiere jetzt mal auf der Kommandozeile Konvertierungen anzustoßen ... kannst du mir sagen, wo / in welchem Verzeichnis das PlugIn die fertige Konvertierung erwarten würde ? Wenn ich das viedo konvertiert bekomme, könnte ich das ja da mal reinkopieren und gucken was passiert

     

  • Die Analysis-Seite zeigt ja auch das Ergebnis einer Videokonvertierung an. Wenn es dort grün ist, funktioniert die Konvertierung mit ffmpeg grundsätzlich mal.

    Es gibt ja auch einen Tab, der die Konvertierungswarteschlange anzeigt. Ist dort das Video gelistet?

    Im Datenverzeichnis von Elgg gibt es für jeden User ein Unterverzeichnis (wenn er zumindest 1 Datei hochgeladen hat). Darin würde es nach erfolgreicher Konvertierung von mindestens einem hochgeladenen Video das Unterverzeichnis  <userdir>/izap_videos/uploaded/ geben. Darin wäre das Video. Allerdings muss auch der Dateinamen passen, damit das Video auf der Seite angezeigt wird. Das Namensschema krieg ich grad aber auswendig nicht zusammen. Du könnest allerdings im Adminbereich den Entity-Explorer verwenden (Developers-Plugin muss aktiviert sein). Die GUID des Videoeintrags eingeben (findest Du in der URL wenn Du diesen Videoeintrag auf Deiner Seite aufrufst). Dann müßten alle Datenbankeinträge aufgelistet werden, die zu diesem Video gehören (u.a. auch der Metadata-Eintrag "filename"). Einfach das Videofile reinkopieren, reicht aber vielleicht auch noch nicht, da es auch noch den "converted"-Metadata-Eintrag gibt und er erst nach der Konvertierung auf "yes" gestellt wird.

  • konnte das Video einwandfrei konvertieren und habs mir auf einem Windows-Rechner mit VLC angeguckt ... soweit alles gut :-/

  • > Vielleicht hab ich am Wochenende mal Zeit um es zumindest kurz selbst zu testen.

    also wenn du das machen könntest ... whow, das wäre wirklich großartig

  • Am Wochenende hat es zeitlich nicht gereicht. Aber ich hab es jetzt mal auf einer Elgg 3.3-Installation probiert.

    Das Konvertieren nach dem Hochladen hat bei mir funktioniert. Das konvertierte Video wurde auch ins richtige Verzeichnis kopiert. Damit hat es sich aber mit den "guten" Nachrichten. Abspielen ging dann nicht, weil die Videodatei dann scheinbar nicht abrufbar ist (auf der Seite für den HTML5-Videoplayer). Runterladen konnte ich die Datei aber.

    Ich befürchte, dass das Plugin so wie es jetzt ist leider ziemlich verbuggt ist. Ich hab leider auch noch andere Fehler entdeckt. Ich befürchte, dass ich auf die ganz Schnelle da auch nichts fixen kann. Ich werde wohl selbst mal eine Version für Elgg 3 erstellen müssen. Ich wollte es ja auch schon seit längerer Zeit machen aber zeiltich hab ich es seit gut einem Jahr nicht auf die Reihe gekriegt... Mal sehen, ob ich die nächten Tage/Woche(n) mal für längere Zeit am Stück dazu komme, um auch voran zu kommen.

  • >Ich wollte es ja auch schon seit längerer Zeit machen

    whow, das wäre natürlich super ... das kann ich vielleicht meinen Leuten erzählen. Wir haben ein Elgg aufgesetzt weil wir im September ein Jahrgangstreffen von unserer Schule planen und uns so vorher schon connecten können. Ich hab von den potentiell 150 Schülern immerhin schon 76 am Wickel :-)

German Support Group

German Support Group

The German support group within the Elgg community.