
Quiero usar tex para generar una página html con un video incrustado. Sé que puedo usar latex2html para convertir tex a html. También conozco media9 pero creo que solo se puede usar para renderizar videos en pdf. Creo que si javascript se puede incrustar en tex y representar como html, entonces podría usar un reproductor de video basado en javascript para mostrar el video en la página html. Entonces ¿es posible?
¿Por qué quiero hacer esto? : Quiero vídeos en mi documento y estoy frustrado con el soporte intermitente de esto en el estándar PDF y sus visores asociados.
Respuesta1
Solución usando tex4ht
. Documento de muestra:
\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}
\myvideo
Se introduce el comando , con tres parámetros width
, height
y video file
. media9
El comando \includemedia
se utiliza para incluir el vídeo. No puedo probar si eso funciona, ya que la reproducción de video no es compatible con Linux.
Ahora necesitamos crear un archivo de configuración para tex4ht
, llamado media.cfg
, en el que reescribiremos \myvideo
el comando para producir etiquetas html de video.
\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>
Se utiliza este elemento, ya que cuenta con un amplio apoyo. Tenga en cuenta que el type
parámetro está codificado en video/mp4
, deberá cambiarlo si sus videos son de otro tipo. \dimexpr
Se utiliza para calcular las dimensiones.
Ahora puedes compilar el documento con:
htlatex sample.tex media
y produjo 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>
Respuesta2
Gracias a David Carlisle por la sugerencia y a michal.h21 por una solución usando tex4ht. A continuación se muestra una solución para latex2html.
Utilicé el entorno rawhtml de latex2html para escribir un entorno que coloca un archivo de vídeo html5 (prueba los formatos mp4 y 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}