
Quero usar tex para gerar uma página html com um vídeo incorporado. Eu sei que posso usar latex2html para converter tex em html. Também conheço o media9, mas acho que só pode ser usado para renderizar vídeos em PDF. Acho que se o javascript puder ser incorporado no tex e renderizado como html, eu poderia usar um reprodutor de vídeo baseado em javascript para mostrar o vídeo na página html. Então é possível?
Por que eu quero fazer isso? : Quero vídeos em meu documento e estou frustrado com o suporte intermitente disso no padrão pdf e seus visualizadores associados.
Responder1
Solução usando tex4ht
. Exemplo de documento:
\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}
O comando \myvideo
é introduzido, com três parâmetros width
, height
e video file
. media9
comando \includemedia
é usado para incluir o vídeo. Não posso testar se isso funciona, pois a reprodução de vídeo não é compatível com Linux.
Agora precisamos criar um arquivo de configuração para tex4ht
, nomeado media.cfg
, no qual reescreveremos \myvideo
o comando para produzir tags HTML de vídeo.
\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>
elemento é usado, pois é amplamente suportado. Observe que o type
parâmetro está codificado para video/mp4
. Você precisará alterá-lo se seus vídeos forem de tipos diferentes. \dimexpr
é usado para calcular dimensões.
Agora você pode compilar o documento com:
htlatex sample.tex media
e produziu html:
<?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>
Responder2
Obrigado a David Carlisle pela sugestão e a michal.h21 pela solução usando tex4ht. Aqui segue uma solução para latex2html.
Usei o ambiente rawhtml do latex2html para escrever um ambiente que coloca um arquivo de vídeo html5 (ele tenta os formatos mp4 e ogg)
\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}