
Há algum tempo eu fiz essa perguntaComo incluir um filme em um PDF? Instruções passo a passo. (Tentei tudo o que está documentado lá e os links nele contidos. Não consigo encontrar a combinação de ferramentas para reproduzir filmes incorporados em um visualizador de PDF no Linux.)
Desta vez vou ser mais direto: alguém, com uma certa combinação de ferramentas e visualizador, foi capaz de criar um PDF a partir do TeX com um filme incorporado e reproduzi-lo em um visualizador Linux (por exemplo, alguma versão do Acrobat)?
Se sim, qual pacote, versão tex, versão acrobat foi usado?
EDITAR 2014
Graças ao @AlexG, grandes avanços foram feitos no que diz respeito à inclusão de filmes e em particular à reprodução no Linux. É uma pena que o Acrobat para Linux esteja no fim de sua vida útil (não tanto para a Adobe, mas porque ninguém está pegando a tocha pela mídia incorporada).
Esta edição simplesmente resume uma solução funcional que é ilustrada pela definição de um comando \includemove[dimensions]{moviewithoutextension}
, que produz filmes que podem ser reproduzidos no Acrobat 9.4.1 (Linux), Acrobat para Windows e Mac e que recorre a players externos (e uma imagem estática) em outros visualizadores de PDF.
Premissas:
- Você tem uma cópia do jw-player 5.10 (
not 5.9 or 6.x
) em seu diretório local e ela se chamaplayer.swf
. (daquihttp://developer.longtailvideo.com/trac/browser/tags/mediaplayer-5.10, documentação aqui:http://www.longtailvideo.com/support/jw5/31138/configuration-options) - Você tem
ffmpeg
a versão 2.1.4. Você tem uma cópia do seu filme no
mp4
formato. Qualquer filme pode ser convertido desta formaffmpeg -i $MYMOVIE.vid -vf scale="trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 -profile:v high -pix_fmt yuv420p -g 25 -r 25 $MYMOVIE.mp4
ffmpeg -i $MYMOVIE.vid -qscale 0 -vcodec libx264 -x264opts keyint=25 $MYMOVE.mp4
Uma imagem de visualização com o mesmo nome, mas com extensão
png
. Isso pode ser conseguido convertendo seu filme desta forma e tirando uma foto:ffmpeg -i $MYMOVIE.mp4 -ss 00:00:2.1 -f image2 -vframes 1 $MYMOVIE.png
[opcional] Uma imagem PDF com o mesmo nome, mas com
pdf
extensão para substituir a visualização PNG caso o conteúdo Flash não esteja ativo.Você está bem usando os pacotes
hyperref
(emedia9
é claro).[para reprodução] Você possui o Acrobat 9.4.1 (para reprodução em Linux) ou versões mais modernas em outros sistemas.
- [para reprodução] Para outros visualizadores de PDF: a extensão
mp4
está associada a algum aplicativo e o filme é distribuído com o PDF.
Limitações (da minha má implementação, não de media9
)
- Apenas
width
e/ouheight
podem ser especificados como opções. - Nenhum outro player
jw-player
pode ser usado (as opções estão codificadas na definição do comando). - Ele assume muitos padrões em relação ao comportamento do player incorporado.
- [Para fallback] A definição tenta melhor ter um bom modo de fallback para outros espectadores, e você tem que escolher (veja o código) entre incorporar o filme ou ter um arquivo externo.
- [Para reprodução] Não sei se funciona em todos os visualizadores, funciona pelo menos no Acrobat 9.4.1 (Linux) e Evince 3.10.3 (Linux). Eu vi funcionar no Acrobat X no Windows e Mac após uma confirmação de "mensagem de segurança".
Dadas estas condições, o seguinte documento que inclui a definição \includemovie
e resume uma solução de trabalho.
\documentclass{article}
\usepackage[noplaybutton]{media9}
\usepackage[colorlinks]{hyperref}
\usepackage{attachfile2}
\newcommand{\includemovie}[2][]{
\includemedia[
#1,
activate=pageopen,transparent,
addresource=#2.mp4,addresource=#2.png,
flashvars={
file=#2.mp4&image=#2.png&
stretching=uniform&start=0&
screencolor=white& %improves render in light backgrounds
controlbar.position=over&controlbar.idlehide=true&
autostart=true&repeat=always&smoothing=true
%&bufferlength=10 % may improve repetition of short videos
}
]{ % for disabled content (in most cases this is fallback)
\begin{tabular}{ll}
\mbox{
% \href{run:#2.mp4} % for not embedded fallback
\textattachfile[color={0 0 0}]{#2.mp4} % for embedded fallback
{\texttt{|\kern-.23em>}} % poor play button
} & \raisebox{-\height}{\includegraphics[#1]{#2}}
\end{tabular}
}{player.swf}
}
\begin{document}
\includemovie[width=5cm]{MYMOVIE} %no extension!
\end{document}
(nota: você pode se beneficiar produzindo JPEG
instantâneos, PNG
geralmente são muito grandes, às vezes tão grandes quanto o filme inteiro)
Responder1
Atualizar
A partir de 04/11/2013, o pacote media9
contém componentes Flash do media player VPlayer9.swf
e arquivos APlayer9.swf
. Eles são compatíveis com o plugin Flash Player 9 (um tanto desatualizado) que acompanha o Adobe Reader para Linux9.4.1e pode ser usado para produzir documentos PDF com vídeo (MP4/H.264) e áudio (MP3) incorporados direcionados a esta versão Linux específica do Adobe Reader.
Alternativamente, qualquer reprodutor de mídia baseado em Flash encontrado na Web que seja compatível com Flash-9 e que possa ser configurado via FlashVars pode ser usado. (Embora o número desses players deva diminuir com o advento das versões mais recentes do Flash.)
Observação:A reprodução de flash e mídia foi eliminada nos leitores mais recentes. AR-9.4.1 é a última versão no Linux que suporta Flash.
Adobe Reader 9.4.1 para Linux pode ser baixado em ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.4.1/.
Código de exemplo usando cube.mp4
e VPlayer9.swf
do media9
pacote:
\documentclass{article}
\usepackage{media9}[2013/11/04]
\begin{document}
\includemedia[
width=0.6\linewidth,height=0.6\linewidth,
activate=pageopen,
transparent,
addresource=cube.mp4,
flashvars={
source=cube.mp4 % same path as in addresource!
&loop=true % loop video
&scaleMode=letterbox % preserve aspect ratio
}
]{}{VPlayer9.swf}
\end{document}
Responder2
AtualizarObrigado a @percusse por apontar em seu comentário que a resposta original não era a que o OP estava pedindo.
Então pesquisei um pouco e encontrei issolink. Basicamente, a solução alternativa é,
- InstalarAdobe Reader 9.4.1.
- Instale
flashmovie
ou copie-o para sua pasta de origem (especialmente oplayer_flv_maxi.swf
) Escreva
\includepackage{hyperref}
e\includepackage{flashmovie}
em seu preâmbulo. Um ambiente de trabalho mínimo seria:\documentclass{article} \includepackage{hyperref} \incldepackage{flashmovie} \begin{document} \flashmovie[width=12cm,height=8cm,engine=flv-player,auto=1]{movie.flv} \end{document}
Parece que, no Linux, você só pode obter vídeos incorporados no Acrobat com o Acrobat versão 9.4.1. (Por que isso acontece, ainda não sei.) Você também precisará instalar ffmpeg
para converter seus vídeos paraflv
Baixei o text-flv.tex
arquivo de amostra do link. O flashmovie
funcionamento está resumido neste arquivo.
Posso verificar a afirmação de que o filme não pode ser reproduzido no PDF de saída do meu Adobe Reader com versão 9.4.7. Ao abrir o pdf aparece uma mensagem. A 3d data parsing error has ocurred.
Também posso verificar que funciona perfeitamente no Adobe Reader 9.4.1.
Aliás, tenho o TeX versão 3.1415926-2.4-1.40.13.
Atualização: se você não deseja incorporarPrimeiro, certifique-se de ter instalado todos os pacotes necessários para executar o formato do filme. Você precisará carregar o pacote movie15,
que vem com TeXLive 2012.
O manual diz que este pacote já está obsoleto e que você deve considerar usá-lo movie9
, que está em ctan
, mas não em, TeXLive2012.
usei movie15
nesta resposta.
Experimente o seguinte MWE:
\documentclass{article}
\usepackage{hyperref}
\usepackage{movie15}
\begin{document}
\begin{figure}[ht]
\includemovie[poster,text={\small(Loading Video...)}]{3cm}{2cm}{movie.mp4}
\end{figure}
\end{document}
A poster
opção insere o primeiro quadro do filme. A text
opção aparece antes de o filme ser carregado no visualizador de PDF. 3cm e 2cm são a largura e a altura do quadro e movie.mp4
é o nome do seu filme.
Execute pdflatex movie.tex
onde movie.tex
está seu arquivo tex. Estou usando o Ubuntu 12.04 e uso evince 3.4
para visualizar o pdf. Basta digitar evince movie.pdf
no seu terminal. Clique no quadro para reproduzir o filme. O filme será aberto com seu visualizador de filmes padrão.
Eu ainda não tentei movie9
.
AtualizarIsto é uma resposta ao usuário 17791. Meu comentário anterior à resposta dele foi excluído quando a pergunta foi editada pelo moderador. Aqui está, @User17791:
pdfTeX 3.1415926-2.4-1.40.13 (TeX Live 2012)
kpathsea version 6.1.0
Copyright 2012 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.5.10; using libpng 1.5.10
Compiled with zlib 1.2.7; using zlib 1.2.7
Compiled with xpdf version 3.03
Abaixo estão dois instantâneos da minha área de trabalho com um filme sendo reproduzido no Acrobat 9.4.1. (É um vídeo de uma dança ritual aqui na cidade de Baguio.)
Responder3
Eu estava tentando fazer o mesmo que você e isso funcionou para mim
\documentclass[unknownkeysallowed]{beamer}
\mode<presentation>
\usepackage{beamerthemesplit}
\usepackage{multimedia}
\begin{document}
\begin{frame}[allowframbreaks]
\centering
\movie[height = 6cm,width = 6cm,showcontrols] {}{QuantumHallEffectExp.mp4}
\end{frame}
\end{document}
E para ver o que foi incorporado é necessário usar o Okular em modo de apresentação.
Responder4
Estou usando Linux e isso funciona para mim:
Primeiro tenho que fazer o download movie15_dvipdfmx.sty
e renomeá-lo para movie15.sty
e colocá-lo no mesmo diretório do meu .tex
arquivo.
Então:
\usepackage[dvipdfmx]{movie15}
[....]
\begin{figure}[ht]
\centering
\includemovie[inline=false,text={\includegraphics[scale=0.25]{play-movie.png}}]{}{}{movie.mp4}
\end{figure}
No Linux, posso abrir o PDF com o visualizador evince
, clicar na imagem e o filme será reproduzido em uma janela separada.