Video
Ein Video ist ein Bild, dessen Datei auf .mp4, .m4v oder .webm endet:


Syntax
Die Datei wird aus dem Ordner der Präsentation gelesen oder von einer http- oder https-URL. Ein absoluter Pfad, ein Pfad, der den Ordner verlässt, oder jedes andere Schema wird abgelehnt. #t=12.5, oder #t=1:23 für Minuten und Sekunden, wählt das Posterbild: das Bild, das vor der Wiedergabe und von den Ausgaben gezeigt wird, die das Video nicht abspielen können. Die Media-Fragment-Form #t=10,20 wird ebenfalls akzeptiert, und ihr Anfang wird verwendet. Ohne sie ist das Poster das erste Bild.
Schlüsselwörter im Alternativtext, geschrieben wie Marp-Bildschlüsselwörter, aber eigene von go-slides, steuern die Wiedergabe: autoplay, loop und muted. autoplay gilt nur zusammen mit muted; sonst wird es mit einer Warnung ignoriert. Die übrigen Wörter des Alternativtexts sind die barrierefreie Beschriftung.
Was jede Ausgabe zeigt
- HTML (die Seite und die Vorschau des Playgrounds): ein
<video controls playsinline preload="metadata" poster=...>-Element. Das Poster ist das dekodierte Bild, als JPEG-Data-URI eingebettet. Ein Video spielt nie von selbst mit Ton. Wenn der Browser weniger Bewegung wünscht (prefers-reduced-motion), werdenautoplayundloopentfernt und das Video angehalten. Ein Video, das (stumm) automatisch startet, spielt nur, solange mindestens die Hälfte sichtbar ist, und pausiert, wenn seine Folie nicht angezeigt wird. - PDF (
--pdf): das Posterbild als Bild, mit einem Link zur Videodatei: der relative Pfad, wie er in der Präsentation steht, oder die URL bei einerhttp- oderhttps-Quelle. Abgespielt wird nur über das Öffnen des Links. Das PDF enthält keineRichMedia-Annotation: Sie würde nur in Acrobat abspielen und wird bewusst nicht verwendet. - PowerPoint (
--pptx): Das Video wird als Medienteil (ppt/media/slidesvideoN.mp4|webm) mit seinem Poster eingebettet, alsa:videoFileplus die Erweiterungp14:media. Keynote: importiert es als Film und spielt es ab (geprüft). LibreOffice Impress: importiert PowerPoint- und OpenDocument-Dateien als Video und dekodiert es (geprüft). PowerPoint: noch nicht geprüft. Die Schlüsselwörterautoplay,loopundmutedwerden nicht in PowerPoint oder OpenDocument übernommen. - OpenDocument (
--odp): Das Video wird unterVideo/alsdraw:plugineingebettet (ODF 1.3 Teil 3, 10.4.8), vor demdraw:imagedes Posters, und im Manifest aufgeführt. LibreOffice Impress importiert es als Video und dekodiert es (geprüft); die Wiedergabe in der Bildschirmpräsentation hängt von dessen Medien-Backend und vom Codec ab. - URL-Quellen: Die HTML-Seite streamt das Video von der URL. Die Exporte zeigen eine neutrale Karte mit Link zur URL. Beim Bauen wird nichts geladen, und nichts wird in PowerPoint oder OpenDocument eingebettet.
Container und Poster
MP4- (ISO BMFF) und WebM-Dateien (Matroska) werden in Go gelesen; ffmpeg wird nie gestartet. Das Poster wird nur für H.264 dekodiert (avc1 oder avc3), den einzigen Videodekoder von go-avkit. Andere Codecs (H.265, VP8, VP9, AV1) spielen in HTML trotzdem und werden in PowerPoint und OpenDocument eingebettet, ihr Poster ist aber eine neutrale dunkle Karte mit Wiedergabedreieck, und die Warnung video.codec wird ausgegeben.
Grenzen
Ein Video ist nicht vertrauenswürdige Eingabe und daher begrenzt: die Datei (64 MiB), die Boxen oder Elemente (262.144) und ihre Verschachtelung (16 Ebenen), das Bild (4096 mal 4096) und die Poster-Dekodierung (höchstens 600 Samples ab dem vorangehenden Keyframe, 8 MiB pro Sample). Ein Poster, das zu weit von einem Keyframe entfernt ist, erhält die Karte und die Warnung video.limit.
Ein abgelehntes Video wird auf der Folie durch einen Hinweis ersetzt, [video not shown: ...]; der Build läuft weiter, und das Problem ist eine Warnung mit einem Code:
video.syntax: keine MP4- oder WebM-Datei, keine Videospur oder eine ungültige Zeit;video.limit: eine der obigen Grenzen wird überschritten;video.codec: das Poster lässt sich für diesen Codec nicht dekodieren;video.path: ein absoluter Pfad, ein Pfad, der den Ordner der Präsentation verlässt, oder ein anderes Schema alshttpundhttps;file.missing: die Datei existiert nicht.
Im Playground
Nach der Veröffentlichung lässt sich ein Video wie die anderen Dateien zum Projekt hinzufügen. Seine Bytes bleiben im Browser, als Blob-URLs, und werden nie hochgeladen. Probieren Sie es im Playground.
Erstellt am von tannevaled
Geändert am von tannevaled