
Некоторое время назад я задал этот вопросКак включить фильм в PDF? Пошаговая инструкция. (Я перепробовал все, что там описано, и ссылки в нем. Я не могу найти комбинацию инструментов, чтобы иметь возможность воспроизводить встроенные фильмы в программе просмотра PDF в Linux.)
На этот раз я буду более прямолинеен: смог ли кто-нибудь, используя определенную комбинацию инструментов и просмотрщика, создать PDF-файл из TeX со встроенным фильмом и воспроизвести его в просмотрщике Linux (например, в какой-либо версии Acrobat)?
Если да, то какой пакет, версия tex, версия acrobat использовались?
ИЗМЕНИТЬ 2014
Благодаря @AlexG, были достигнуты большие успехи в отношении включения фильмов и, в частности, воспроизведения в Linux. Жаль только, что Acrobat для Linux подходит к концу (не столько из-за Adobe, сколько потому, что никто не подхватывает эстафету встроенных медиа).
В этой редакции просто изложено работающее решение, проиллюстрированное путем определения команды \includemove[dimensions]{moviewithoutextension}
, которая создает фильмы, которые можно воспроизводить в Acrobat 9.4.1 (Linux), Acrobat для Windows и Mac, а также которые можно использовать для внешних проигрывателей (и неподвижного изображения) в других программах просмотра 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 с тем же именем, но
pdf
расширением для замены предварительного просмотра PNG в случае, если Flash-контент неактивен.Вы можете спокойно пользоваться пакетами
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). Я видел, как это работает в Acrobat X в Windows и Mac после подтверждения "сообщения о безопасности".
Учитывая эти условия, следующий документ включает определение \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/04 пакет media9
содержит компоненты Flash медиаплеера VPlayer9.swf
и APlayer9.swf
. Они совместимы с (несколько устаревшим) плагином Flash Player 9, который входит в комплект Adobe Reader для Linux9.4.1и может использоваться для создания PDF-документов со встроенным видео (MP4/H.264) и аудио (MP3), предназначенных для данной конкретной версии Adobe Reader для Linux.
В качестве альтернативы можно использовать любой Flash-медиаплеер, найденный в Интернете, совместимый с Flash-9 и настраиваемый через FlashVars. (Хотя количество таких проигрывателей должно уменьшаться с появлением новых версий Flash.)
Примечание:В более поздних версиях Reader поддержка Flash и воспроизведения мультимедиа была исключена. AR-9.4.1 — последняя версия для Linux, которая поддерживает Flash.
Adobe Reader 9.4.1 для Linux можно загрузить с сайта 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 за то, что он указал в своем комментарии, что изначальный ответ не соответствовал тому, о котором просил автор поста.
Итак, я немного поискал и нашел этосвязь. По сути, обходной путь таков:
- Установить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 только с версией Acrobat 9.4.1. (Почему это так, я пока не знаю.) Вам также нужно будет установить, ffmpeg
чтобы преобразовать ваши видео вflv
Я скачал text-flv.tex
файл-пример по ссылке. Как это flashmovie
работает, описано в этом файле.
Я могу подтвердить утверждение, что фильм не может воспроизводиться в выходном pdf-файле на моем Adobe Reader версии 9.4.7. Открытие 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. 3 см и 2 см — это ширина и высота кадра, а также movie.mp4
название вашего фильма.
Запустите pdflatex movie.tex
where movie.tex
is your tex file. Я использую 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
, щелкнуть по изображению, и фильм будет воспроизводиться в отдельном окне.