. TYPO3 Video Extension Erweiterte Videoverwaltung und Integration für TYPO3
Ob Produktvideos, Tutorials oder Marketing-Clips – mit der hauptsache.net Video Extension verwalten Sie Videos mühelos direkt im TYPO3-Backend. Flexible Player-Optionen, intelligente Caches und nahtlose Integration sorgen dafür, dass Ihre Inhalte jederzeit professionell präsentiert werden – wartungsarm, skalierbar
Was macht diese Erweiterung?
Sie komprimiert Videos während des Upload-Prozesses mithilfe einer Web-Assembly-Version von ffmpeg zu 720p-h264-mp4-Dateien. Das bedeutet, dass für die Videokomprimierung keine Serverabhängigkeiten bestehen. Dadurch können Sie gut komprimierte Videos in einem universell kompatiblen Format bereitstellen. Sie sparen Speicherplatz auf Ihrem Server, da die Originaldateien nicht hochgeladen werden.
Sie hilft potenziell Nutzern mit langsamer Internetverbindung beim Hochladen von Videos.
Es generiert automatisch Posterbilder (Miniaturansichten) und bettet diese in MP4-Dateien ein. Es extrahiert ein Bild aus dem Video und bettet es als Cover in die MP4-Datei ein. Das Dateiverarbeitungssystem von TYPO3 kann diese Miniaturansichten für Vorschauzwecke extrahieren. Es fügt automatisch Posterattribute zu <video>-Tags in der Frontend-Ausgabe hinzu. Es bietet eine bessere Übersicht über Videodateien in der Dateiverwaltung und eine verbesserte Benutzererfahrung.
Installation
Die Ausführung von multithreaded WebAssembly ist mit bestimmten Sicherheitsanforderungen verbunden. Um diesen gerecht zu werden, setzen Browser-Anbieter die Verwendung spezifischer Cross-Origin-Schutzmaßnahmen durch.
Damit diese Erweiterung korrekt funktioniert, benötigen die Backend- und JavaScript-Dateien die folgenden HTTP-Header:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Diese Header können in Ihrer .htaccess-Datei oder in der Apache-Serverkonfiguration wie unten gezeigt konfiguriert werden:
<IfModule mod_headers.c>
Header set Cross-Origin-Opener-Policy “same-origin”
Header set Cross-Origin-Embedder-Policy "require-corp"
</IfModule>
Das globale Hinzufügen dieser Header zu Ihrem Frontend kann zu unbeabsichtigten Nebenwirkungen führen. Wenn Sie versuchen, sie nur für bestimmte Ordner festzulegen, stellen Sie sicher, dass alle Ressourcen entweder den Header haben oder keinen Header haben. Das Mischen innerhalb eines Dokuments führt zu Fehlern.
Wenn die erforderlichen Header nicht richtig konfiguriert sind, zeigt die Erweiterung eine Warnung an, wenn Sie auf Ansichten zugreifen, die den Datei-Uploader enthalten (z. B. die Dateilistenansicht).
PHP-Konfiguration für die Upload-Größe
Wenn Sie mit Video-Uploads arbeiten, sollten Sie Ihre PHP-Konfiguration anpassen, um größere Dateigrößen zu ermöglichen. Sie können mit bis zu 30 MB pro Minute Video rechnen, also legen Sie Ihre Upload-Limits entsprechend fest. Fügen Sie die folgenden Einstellungen in Ihrer PHP-Konfiguration (php.ini) oder Ihrer .htaccess-Datei hinzu oder ändern Sie sie:
# In php.ini
upload_max_filesize = 300M
post_max_size = 300M
# Or in .htaccess (with mod_php only)
<IfModule mod_php.c>
php_value upload_max_filesize 300M
php_value post_max_size 300M
</IfModule>
Bekannte Probleme
Leere Ordner in der Dateiliste verfügen über eine Upload-Schaltfläche, die den Drag-Uploader in TYPO3 13 umgeht.
Testen der Thumbnail-Extraktion
Sie können die Miniaturbild-Extraktionsfunktion mit den integrierten Befehlen testen:
# Test thumbnail extraction from a video file
docker compose exec php vendor/bin/typo3 video:test-thumbnail fileadmin/your-video.mp4
# Test file list thumbnail generation (like the TYPO3 backend does)
docker compose exec php vendor/bin/typo3 video:test-filelist fileadmin/your-video.mp4
# Test video tag generation with poster images (frontend rendering)
docker compose exec php vendor/bin/typo3 video:test-renderer fileadmin/your-video.mp4
# Run automated unit tests
docker compose exec php bash -c "cd packages/video && ../../vendor/bin/phpunit"
Die Testbefehle führen folgende Schritte aus: - Analyse der Videodatei auf eingebettete Posterbilder - Extraktion des eingebetteten Posterbildes mit reinem PHP (kein serverseitiges FFmpeg erforderlich) - Generierung von Thumbnails in verschiedenen Größen wie im TYPO3-Backend - Test der Frontend-Videotag-Generierung mit automatischen Posterattributen - Anzeige detaillierter Informationen zum Extraktions- und Rendering-Prozess.
Automatisierte Tests
Die Erweiterung umfasst umfassende PHPUnit-Tests, die Folgendes überprüfen: - JPEG-Erkennung und -Extraktion aus MP4-Dateien - Datenvalidierung und Bildintegrität - Leistung und Konsistenz - Fehlerbehandlung für Randfälle
Führen Sie Tests aus mit:
docker compose exec php bash -c "cd packages/video && ../../vendor/bin/phpunit --testdox"
Zukünftige Pläne
- Ermöglichen einer hochwertigen Konfiguration
- Die Standardeinstellung von 720p ist ein guter Kompromiss zwischen Qualität, Kompatibilität und Dateigröße, aber Sie haben möglicherweise andere Anforderungen
- Binden Sie sich in den Datei-Upload-Prozess ein, um HLS-Videofragmente zu erstellen
Stellen Sie Ihre Videos auch Kunden mit schlechter Verbindung zuverlässig zur Verfügung, indem Sie verschiedene Auflösungen anbieten - Verbessern Sie die Upload-Geschwindigkeit bei langsamen Internetverbindungen
- Umgehen Sie maximale Upload-Größenbeschränkungen Ihres Hosters
- Schneiden Sie Videos, indem Sie einfach die Wiedergabelistendatei ändern. Schneiden Sie z. B. den Ton heraus usw. Vielleicht sogar mit einem kleinen Video-Editor im Backend.
- Implementieren Sie eine Form der optionalen serverseitigen Videokonvertierung.
- Ermöglicht die Verwendung komplexerer Videoformate wie av1 (was in wasm ewig dauern würde).
- Reduziert die Anforderungen an den Client-Computer (erhöht jedoch die Anforderungen an die Internetbandbreite).
V1 vs. V2
Die alte Videoerweiterung v1 funktionierte völlig anders. Sie ging davon aus, dass Sie Originalvideodateien hochladen und jedes Mal, wenn Sie ein Video einbetten, genau angeben möchten, welches Format verwendet werden soll. Daher musste sie eine serverseitige Videokonvertierung oder einen API-Dienst verwenden. Das war für die meisten Anwendungsfälle viel zu kompliziert.
v2 ist eine völlig andere Erweiterung mit einem viel einfacheren Ansatz, der wahrscheinlich für mehr Benutzer geeignet ist.