前段时间我问过这个问题如何在 PDF 中添加电影?分步说明。(我尝试了那里记录的所有内容以及其中的链接。我找不到能够在 Linux 中的 PDF 查看器中播放嵌入电影的工具组合。)
这次我要更直接一点:是否有人能够使用某种工具和查看器组合从 TeX 创建带有嵌入影片的 PDF 并在 Linux 查看器(例如某个版本的 Acrobat)中播放它?
如果是,那么使用了什么包、tex 版本、acrobat 版本?
编辑2014
感谢@AlexG,在电影的收录方面取得了巨大进步,尤其是在 Linux 中的播放。遗憾的是 Acrobat for Linux 即将结束其生命周期(对 Adobe 来说并非如此,而是因为没有人接手嵌入式媒体的火炬)。
这个编辑只是总结了一个工作解决方案,通过定义一个命令来说明\includemove[dimensions]{moviewithoutextension}
,该命令可以生成可以在 Acrobat 9.4.1(Linux)、适用于 Windows 和 Mac 的 Acrobat 中播放的电影,并且可以在其他 PDF 查看器中回退到外部播放器(和静止图片)。
假设:
- 您的本地目录中有一份 jw-player 5.10 (
not 5.9 or 6.x
) 的副本,其名称为player.swf
。(来自此处http://developer.longtailvideo.com/trac/browser/tags/mediaplayer-5.10,文档在这里:http://www.longtailvideo.com/support/jw5/31138/configuration-options) - 您拥有的是
ffmpeg
版本 2.1.4。 您有一份该格式的电影副本
mp4
。任何电影都可以用这种方式转换ffmpeg -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
具有相同名称但扩展名为 的预览图像
png
。这可以通过以这种方式转换电影并拍摄快照来实现:ffmpeg -i $MYMOVIE.mp4 -ss 00:00:2.1 -f image2 -vframes 1 $MYMOVIE.png
pdf
[可选]当 Flash 内容未激活时,使用同名但带有扩展名的 PDF 图像来替换 PNG 预览。您可以使用这些包
hyperref
(media9
当然)。[用于播放] 您拥有 Acrobat 9.4.1(用于在 Linux 中播放)或其他系统中的更新版本。
- [用于播放] 对于其他 PDF 查看器:扩展
mp4
与某些应用程序相关联,并且电影与 PDF 一起分发。
局限性(因为我的实施不当,而不是media9
)
- 仅
width
和/或height
可以指定为选项。 - 除此以外没有其他播放器
jw-player
可以使用(选项在命令定义中硬编码)。 - 它假设了很多有关嵌入式播放器行为的默认值。
- [对于后备] 该定义尽力为其他观众提供一个良好的后备模式,您必须在嵌入电影或拥有外部文件之间进行选择(参见代码)。
- [对于回放] 我不知道它是否适用于所有查看器,但至少在 Acrobat 9.4.1 (Linux) 和 Evince 3.10.3 (Linux) 中可以运行。我看到它在 Windows 和 Mac 的 Acrobat X 中经过“安全消息”确认后可以运行。
\includemovie
鉴于这种条件,以下文档包括了工作解决方案的定义并对其进行了总结。
\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}
(注意:制作JPEG
快照可能会有所帮助,快照PNG
通常非常大,有时甚至和整部电影一样大)
答案1
更新
截至 2013 年 11 月 4 日,软件包media9
包含媒体播放器 Flash 组件VPlayer9.swf
和APlayer9.swf
。它们与 Linux 版 Adobe Reader 捆绑的(有些过时的)Flash Player 9 插件兼容9.4.1并且可以用于生成针对此特定 Linux 版本的 Adobe Reader 的嵌入视频(MP4/H.264)和音频(MP3)的 PDF 文档。
或者,可以使用网络上任何兼容 Flash-9 且可通过 FlashVars 配置的基于 Flash 的媒体播放器。(不过,随着新版 Flash 的推出,此类播放器的数量应该会减少。)
注意:较新的 Reader 中已放弃 Flash 和媒体播放功能。AR-9.4.1 是 Linux 上支持 Flash 的最后一个版本。
适用于 Linux 的 Adobe Reader 9.4.1 可从以下网址下载 ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.4.1/。
cube.mp4
使用包VPlayer9.swf
中的示例代码media9
:
\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}
答案2
更新感谢@percusse 在他的评论中指出原始答案不是 OP 所要求的答案。
所以我搜索了一下,发现了这个关联基本上,解决方法是,
- 安装Adobe Reader 9.4.1。
- 将其安装
flashmovie
或复制到你的源文件夹(尤其是player_flv_maxi.swf
) \includepackage{hyperref}
在你的序言中写下\includepackage{flashmovie}
。最小的工作环境将是:\documentclass{article} \includepackage{hyperref} \incldepackage{flashmovie} \begin{document} \flashmovie[width=12cm,height=8cm,engine=flv-player,auto=1]{movie.flv} \end{document}
似乎在 Linux 中,只有 Acrobat 版本 9.4.1 才能在 Acrobat 中获取嵌入视频。(为什么会这样,我还不知道。)您还需要安装ffmpeg
才能将视频转换为flv
text-flv.tex
我从链接下载了示例文件。flashmovie
此文件总结了其工作原理。
我可以验证该影片无法在我的 Adobe Reader 9.4.7 版本上输出 PDF 上播放的说法。打开 PDF 会显示一条消息,A 3d data parsing error has ocurred.
我还可以验证它在 Adobe Reader 9.4.1 中运行良好。
顺便说一句,我有 TeX 版本 3.1415926-2.4-1.40.13。
更新:如果你不想嵌入首先,请确保您已安装运行电影格式所需的所有软件包。您需要加载随手册movie15,
附带的软件包TeXLive 2012.
,手册说此软件包已经过时,您应该考虑改用,但我在本回答中使用的movie9
是,ctan
而不是。TeXLive2012.
movie15
尝试以下 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}
该poster
选项插入电影的第一帧。该text
选项在电影加载到 pdf 查看器之前出现。3cm 和 2cm 是帧的宽度和高度,movie.mp4
是电影的名称。
运行您的 tex 文件pdflatex movie.tex
在哪里movie.tex
。我使用的是 Ubuntu 12.04,我用它evince 3.4
来查看 pdf。只需evince movie.pdf
在您的终端中输入。单击框架即可播放电影。电影将使用您的默认电影查看器打开。
但我还没尝试过movie9
。
更新这是对用户 17791 的回复。当问题被版主编辑时,我之前对他的回答的评论被删除了。下面是 @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
下面是我的桌面上的两张快照,其中正在用 Acrobat 9.4.1 播放影片。(这是巴吉奥市的一场仪式舞蹈的视频。)
答案3
我尝试做和你一样的事情,这对我很有效
\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}
为了查看嵌入的内容,必须在演示模式下使用 Okular。
答案4
我正在使用 Linux,这对我来说很有用:
首先我必须下载movie15_dvipdfmx.sty
并将其重命名为movie15.sty
,然后将其放在与我的文件相同的目录中.tex
。
然后:
\usepackage[dvipdfmx]{movie15}
[....]
\begin{figure}[ht]
\centering
\includemovie[inline=false,text={\includegraphics[scale=0.25]{play-movie.png}}]{}{}{movie.mp4}
\end{figure}
在 Linux 中,我可以使用查看器打开 PDF evince
,然后可以单击图像,影片将在单独的窗口中播放。