
Ich möchte Tex verwenden, um eine HTML-Seite mit eingebettetem Video zu erstellen. Ich weiß, dass ich latex2html verwenden kann, um Tex in HTML umzuwandeln. Ich kenne auch media9, aber ich glaube, damit kann man nur Videos im PDF-Format rendern. Ich glaube, wenn JavaScript in Tex eingebettet und als HTML gerendert werden kann, könnte ich einen JavaScript-basierten Videoplayer verwenden, um das Video auf der HTML-Seite anzuzeigen. Ist das also möglich?
Warum möchte ich dies tun?: Ich möchte Videos in meinem Dokument und bin frustriert über die zeitweilige Unterstützung hierfür im PDF-Standard und den zugehörigen Viewern.
Antwort1
Lösung mit tex4ht
. Beispieldokument:
\documentclass{article}
\usepackage{media9}
\newcommand\myvideo[3]{%
\includemedia[%
addresource=#3,
width=#1,
height=#2,
activate=pageopen
]{}{VPlayer.swf}
}
\begin{document}
\myvideo{.5\linewidth}{.5\linewidth}{circle.mp4}
\end{document}
Der Befehl \myvideo
wird mit drei Parametern eingeführt: width
, height
und video file
. media9
Der Befehl \includemedia
wird verwendet, um das Video einzubinden. Ich kann nicht testen, ob das funktioniert, da die Videowiedergabe unter Linux nicht unterstützt wird.
Jetzt müssen wir eine Konfigurationsdatei mit tex4ht
dem Namen erstellen, in die wir den Befehl zum Erstellen von HTML-Video-Tags media.cfg
umschreiben .\myvideo
\Preamble{xhtml}
\begin{document}
\renewcommand\myvideo[3]{%
\HCode{%
<embed src="#3" type="video/mp4" WIDTH="\the\dimexpr#1\relax" HEIGHT="\the\dimexpr#2\relax" AUTOPLAY="TRUE" LOOP="TRUE" PLAYEVERYFRAME="TRUE" />
}
}
\EndPreamble
<embed>
Element wird verwendet, da es weithin unterstützt wird. Beachten Sie, dass der type
Parameter fest auf codiert ist video/mp4
. Sie müssen ihn ändern, wenn Ihre Videos von einem anderen Typ sind. \dimexpr
wird zum Berechnen der Abmessungen verwendet.
Nun können Sie das Dokument kompilieren mit:
htlatex sample.tex media
und hat HTML erzeugt:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
<head> <title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- charset=utf-8,html,xhtml -->
<meta name="src" content="sample.tex" />
<meta name="date" content="2014-05-09 13:45:00" />
<link rel="stylesheet" type="text/css" href="sample.css" />
</head><body
>
<!--l. 12--><p class="noindent" ><embed src="circle.mp4" type="video/mp4" WIDTH="172.5pt" HEIGHT="172.5pt" AUTOPLAY="TRUE" LOOP="TRUE" PLAYEVERYFRAME="TRUE" /> </p>
</body></html>
Antwort2
Vielen Dank an David Carlisle für den Vorschlag und an michal.h21 für eine Lösung mit tex4ht. Hier folgt eine Lösung für latex2html.
Ich habe die Rawhtml-Umgebung von latex2html verwendet, um eine Umgebung zu schreiben, die eine HTML5-Videodatei platziert (es werden die Formate MP4 und OGG ausprobiert).
\documentclass[english]{article}
\newcommand{\vid}[1] {
\begin{rawhtml}
<video width="320" height="240" controls>
\end{rawhtml}
\begin{rawhtml}
<source src="
\end{rawhtml}
#1
\begin{rawhtml}
.ogg" type="video/ogg">
\end{rawhtml}
\begin{rawhtml}
<source src="
\end{rawhtml}
#1
\begin{rawhtml}
.mp4" type="video/mp4">
\end{rawhtml}
\begin{rawhtml}
Your browser does not support the video tag. </video>
\end{rawhtml}
}
\begin{document}
%now use the environment defined above to place
%a video called myVidName.mp4 or myVidName.ogg
\vid{myVidName}
\end{document}