# The `media4svg` LaTeX Package Version 0.13, 2022/10/12 © 2020--today, Alexander Grahn https://gitlab.com/agrahn/media4svg ## Introduction This package implements an interface for embedding video and audio files and the YouTube player in SVG (Scalable Vector Graphics) output. SVG with embedded media is very portable, as it is supported by all modern Web browsers across a variety of operating systems and platforms, including portable devices. The most portable media formats are as follows: **Video** | **File extension** | **Codecs** | **MIME-type** | |:-------------------|:---------------------|:--------------| | `mp4` | v: h264, a: AAC | `video/mp4` | | `webm` | v: VP8, a: Vorbis | `video/webm` | | `ogg` | v: Theora, a: Vorbis | `video/ogg` | **Audio** | **File extension** | **MIME-type** | |:-------------------|:--------------| | `mp3` | `audio/mpeg` | | `ogg` | `audio/ogg` | | `wav` | `audio/wav` | In the world of TeX and LaTeX, SVG is produced by means of the [`dvisvgm`](https://dvisvgm.de/) backend by M. Gieseking, which is included in TeXLive and MiKTeX. Supported workflows are: * `dvilualatex` ⇒ `dvisvgm` * `[p|up]latex` ⇒ `dvisvgm` * `xelatex --no-pdf` ⇒ `dvisvgm` All TeX engines that produce DVI/XDV output can be used, but `dvilualatex` is to be preferred. By default, media data are physically embedded into the SVG output. For this, they need to be Base64 encoded, which is done by the built-in Lua interpreter of LuaTeX. The other, non-LuaTeX-based engines call the Lua script for Base64-encoding as an external program via shell-escape, which is much slower. **Recommended `dvisvgm` commandline options** There are a number of `dvisvgm` commandline options that should be used in general: ````latex dvisvgm --zoom=-1 --exact --page=1,- --font-format=woff2 ```` For exporting `beamer`-class documents to SVG, option `--box=papersize` should also be added. Refer to the manual page, `man dvisvgm`, for additional information. ## Usage ---- **Usage example** Here is an [example presentation](http://mirrors.ctan.org/macros/latex/contrib/media4svg/example/beamer-example-1.svg) ([source code](http://mirrors.ctan.org/macros/latex/contrib/media4svg/example/beamer-example.tex)) with an embedded local video file as well as with video streamed from a URL and a YouTube player. It also explains how to use the mouse and the keyboard for playback control. ---- Option `dvisvgm` must be set globally by passing it to the document class. ````latex \documentclass[dvisvgm]{...} ```` The package itself is loaded with ````latex \usepackage[]{media4svg} ```` Package options are: `draft`, `final`, `autoplay`, `loop`, `controls`, `mimetype`, `width`, `height`, `totalheight`, `keepaspectratio`, `scale`, `url`, `youtube`, `vimeo`, `embed`. They have the same meaning as the command options explained below, but are applied globally. Note that `media4svg` is incompatible with package `media9`. The command for media inclusion is ````latex \includemedia[[, url]]{}{} ```` or ````latex \includemedia[, youtube]{}{[,[, ...]]} \includemedia[, vimeo]{}{} ```` Command options: ````latex id=