Usar tex para generar una página html con un video incrustado, ¿es posible?

Usar tex para generar una página html con un video incrustado, ¿es posible?

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}

\myvideoSe introduce el comando , con tres parámetros width, heighty video file. media9El comando \includemediase 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 \myvideoel 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 typeparámetro está codificado en video/mp4, deberá cambiarlo si sus videos son de otro tipo. \dimexprSe 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}

información relacionada