Перейти до вмісту

Відео

Відео в презентації: відтворюється браузером на HTML-сторінці, кадр-постер із посиланням у PDF, вбудоване в PowerPoint і OpenDocument.

Відео поки що не входить до жодного випуску.

Відео — це зображення, файл якого закінчується на .mp4, .m4v або .webm:

![video](clip.mp4)
![The demo](clip.mp4#t=12.5)
![demo loop muted](clip.mp4)

Синтаксис

Файл читається з теки презентації або з URL http чи https. Абсолютний шлях, шлях, що виходить за межі теки, або будь-яка інша схема відхиляється. #t=12.5, або #t=1:23 у хвилинах і секундах, вибирає кадр-постер: зображення, яке показується перед відтворенням і виходами, що не можуть відтворити відео. Форма медіафрагмента #t=10,20 теж приймається, і використовується її початок. Без цього постером є перший кадр.

Ключові слова в альтернативному тексті, записані як ключові слова зображень Marp, але власні для go-slides, задають відтворення: autoplay, loop і muted. autoplay враховується лише разом із muted; інакше його ігнорують із попередженням. Решта слів альтернативного тексту — доступна мітка.

Що показує кожен вихід

  • HTML (сторінка та попередній перегляд у playground): елемент <video controls playsinline preload="metadata" poster=...>. Постер — це декодований кадр, вбудований як JPEG data URI. Відео ніколи не відтворює звук саме. Коли браузер просить менше руху (prefers-reduced-motion), autoplay і loop прибираються, а відео ставиться на паузу. Відео, що запускається саме (без звуку), грає лише доти, доки видно щонайменше половину, і ставиться на паузу, коли його слайд не показано.
  • PDF (--pdf): кадр-постер як зображення з посиланням на відеофайл: відносний шлях, як він записаний у презентації, або URL для джерела http чи https. Відтворення можливе лише після відкриття посилання. PDF не містить анотації RichMedia: вона б грала тільки в Acrobat, і її свідомо не використовують.
  • PowerPoint (--pptx): відео вбудовується як медіачастина (ppt/media/slidesvideoN.mp4|webm) разом із постером, як a:videoFile плюс розширення p14:media. Воно грає в PowerPoint; відтворення в PowerPoint і Keynote не перевірено. Ключові слова autoplay, loop і muted не переносяться до PowerPoint чи OpenDocument.
  • OpenDocument (--odp): відео вбудовується в Video/ як draw:plugin (ODF 1.3 частина 3, 10.4.8), перед draw:image постера, і вказується в маніфесті. Воно грає в Impress там, де його медіабекенд підтримує кодек (не перевірено).
  • Джерела URL: HTML-сторінка передає відео потоком з URL. Експорти показують нейтральну картку з посиланням на URL. Під час збирання нічого не завантажується, і нічого не вбудовується в PowerPoint чи OpenDocument.

Контейнери та постери

Файли MP4 (ISO BMFF) і WebM (Matroska) читаються на Go; ffmpeg ніколи не запускається. Постер декодується лише для H.264 (avc1 або avc3), єдиного відеодекодера go-avkit. Інші кодеки (H.265, VP8, VP9, AV1) усе одно грають у HTML і вбудовуються в PowerPoint та OpenDocument, але їхній постер — нейтральна темна картка з трикутником відтворення, і виводиться попередження video.codec.

Обмеження

Відео — недовірений вхід, тому воно обмежене: файл (64 MiB), блоки чи елементи (262 144) та їх вкладеність (16 рівнів), кадр (4096 на 4096) і декодування постера (щонайбільше 600 семплів від попереднього ключового кадру, 8 MiB на семпл). Постер, надто далекий від ключового кадру, отримує картку й попередження video.limit.

Відхилене відео замінюється на слайді примітка [video not shown: ...]; збирання триває, а проблема — це попередження з кодом:

  • video.syntax: це не файл MP4 чи WebM, немає відеодоріжки або недійсний час;
  • video.limit: перевищено одне з наведених обмежень;
  • video.codec: постер неможливо декодувати для цього кодека;
  • video.path: абсолютний шлях, шлях за межами теки презентації або схема, відмінна від http і https;
  • file.missing: файл не існує.

У playground

Після випуску відео можна буде додати до проєкту, як і інші файли. Його байти залишаються в браузері, як blob-URL, і ніколи не завантажуються. Спробуйте в playground.

Created on by tannevaled

Modified on by tannevaled