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


Синтаксис
Файл читається з теки презентації або з 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. Keynote: імпортує його як фільм і відтворює (перевірено). LibreOffice Impress: імпортує файли PowerPoint і OpenDocument як відео та декодує його (перевірено). PowerPoint: ще не перевірено. Ключові словаautoplay,loopіmutedне переносяться до PowerPoint чи OpenDocument. - OpenDocument (
--odp): відео вбудовується вVideo/якdraw:plugin(ODF 1.3 частина 3, 10.4.8), передdraw:imageпостера, і вказується в маніфесті. LibreOffice 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