Embutindo vídeos no LaTeX Beamer

Update

O Adobe 9.4.2 em diante dá o seguinte erro “3d data parsing error”. Instalem o 9.4 disponível em http://archive.canonical.com/pool/partner/a/acroread/.

Eu uso o pacote Beamer LaTeX para as minhas gloriosas Apresentações. A principal vantagem é poder utilizar o que já escrevemos para os artigos, etc. Dá até para montar o poster para apresentações orais, usando o beamerposter (veja este (5.5Mb) como exemplo). Um problema com o Beamer era a inclusão de vídeos que gerassem um pdf que fucionasse em qualquer plataforma (que é a proposta original do TeX/LaTeX). Eu usava o movie para chamar um programa que tocasse o vídeo. O problema é que se a pessoa que tivesse o pdf para a apresentação não tivesse o programa, o vídeo não aparecia. O código abaixo, por exemplo, funciona no evince, mas lançando um tocador de vídeo externo e funciona no Acrobat para windows, mas não no Linux:

\documentclass[12pt,landscape]{article}
\usepackage{movie15}
\usepackage{hyperref}
\begin{document}
\begin{figure}[h!]
\includemovie[
  poster=figura.jpg,
  text={\Large\bf Clique para iniciar \hspace*{400pt}}
]{400pt}{400pt}{vídeo.swf}
\end{figure}
\end{document}
Se você vai usar Windows e levar seu computador com a sua apresentação, pode parar por aqui, se preferir.

Uma saída intermediária é usar o animate. Este pacote permite mostrar sequências de imagens como se fosse uma animação. Para isto você deve ter os arquivos das figuras nomeadas em sequência (você pode usar o mplayer ou o ffmpeg para retirar os frames dos vídeos). Um exemplo está neste pdf (5.Mb) da minha apresentação no I Workshop de Física do Sul Fluminense. Veja as sinapses piscando na terceira página. Os trechos relevantes do arquivo são estes:

\documentclass[hyperref={pdfpagelabels=false},xcolor=dvipsnames]{beamer}
% dica extra para colocar a apresentação em widescreen.
\usepackage[orientation=landscape,size=custom,width=16,height=9,scale=0.5,debug]{beamerposter} 
% o animate é que faz todo o serviço
\usepackage{animate} 
...
\begin{document}
...
\animategraphics[loop,autoplay,width=\textwidth]{6}{neurons-}{0}{3}
...
\end{document}
No caso, o primeiro argumento em colchetes é o framerate (6 por segundo) mas não funciona muito bem com framerates altos e fullscreen (pode ficar lento em um netbook, por exemplo). Usei quatro figuras neurons-0 até neurons-3.jpg. Fica legal para pequenas animações mas é impraticável para vídeos.

A saída mais legal que achei é o flashmovie. O pacote tem uns probleminhas com o Beamer mas que é totalmente contornável (veja a linha \pdfminorversion no exemplo abaixo). Ele aceita flv, swf e mp4. O modo swf é direto mas você não tem controle sobre o filme (pausa, avançar, etc.). Seria assim

\pdfminorversion=7 
\documentclass{beamer}
\usepackage{flashmovie}
\begin{document}
  \begin{frame}
    \begin{center}
       \flashmovie[width=10cm]{saturn5.swf} 
    \end{center}
  \end{frame}
\end{document}
Se quiser testar, use o arquivo de vídeo da NASA saturn5.swf (1.3Mb). Para ter os controles, pode-se usar
  \flashmovie[width=5cm,engine=flv-player,auto=0]{saturn5.swf}
O pacote tem o player que deve ser colocado no mesmo diretório onde você vai compilar. O player e o vídeo são embutidos no pdf. Se quiser ver como ficou, baixe o pdf aqui. Como eu determinei que as dimensões do vídeo ficassem menores que o original, o pdf é menor que o arquivo mp4 original! É possível ainda usar o jw-player ao invés do flv-player. Segundo o autor, este método costuma travar o Acrobat se você tentar um reload (eu confirmei isto). Ah, a nota triste é que você só pode usar o Acrobat 9 (e mais recentes) para isto. O flashmovie não funciona com o evince. Eu também não consegui centralizar o vídeo como flv-player.

Para converter os filmes para swf , eu usei o ffmpeg

ffmpeg -i saturn5.avi -an saturn5.swf
Agora não há mais razão para não usar o beamer.