Как вставить mp4 в презентацию beamer
Перейти к содержимому

Как вставить mp4 в презентацию beamer

  • автор:

Научный форум dxdy

Анимация из MatLab в презентацию LaTeX (Beamer)

Анимация из MatLab в презентацию LaTeX (Beamer)
03.04.2012, 00:25

Написал диплом, готовлю теперь презентацию к его защите. Делаю расчеты в MatLab, получается подобие анимации (пять различных трехмерных и двумерных графиков отдельно друг от друга меняются в зависимости от линейно растущих параметров). С самого начала встал вопрос как сохранять результаты, наткнулся на статью об использовании MatLab-функции movie2avi и решил сохранять все в avi формате (в проигрывателе все выглядело вполне себе хорошо, хоть это и была по сути растровая графика).
Далее поместил всю нужную для защиты информацию в Power Point и ужаснулся увиденному: помимо «корявости» отображения математических формул, шрифтов и их размеров, выравнивания содержимого в слайдах и вообще внешнего вида, еще и мои видео-анимации выглядели прямо скажу не презентабельно. А они представляют собой половину успеха на защите. Может никого это не удивит и все скажут «ну а что ты хотел от Power Point?», но я был очень сильно удивлен насколько он «кривой» по отношению к техническим презентациям.
Зная о пакете Beamer в TeX и имея какой-никакой опыт по верстке в LaTeX (сделал в нем текст диплома), быстро переклепал все в нужный мне формат. Проблемы с внешним видом исчезли, ура! Появилась небольшая проблема с отображением в PDF-документе встроенных avi-файлов. Для того, чтобы встроить их, использовал пакет movie15 и выражение \includemovie[autoplay] в презентации Beamer. Но при открытии PDF-ки анимация не отображалась. По одному из советов в интернете конвертировал видео-анимации из avi в mp4 и все заработало (видимо кодеки не подошли, точно не знаю).
Тут появилась другая и пожалуй главная проблема: mp4-файлы можно встраивать прямо в PDF-файлы (как описано выше) и они прекрасно воспроизводятся в Adobe Reader, но почему-то больше одного видео не встраивается. То есть первое по счету видео в слайдах воспроизводится нормально, а вместо последующих пустая рамка. Если вставлять каждое видео в отдельности, то все работает, то есть вариант моей ошибки минимален. По размеру получающегося PDF-файла видно, что остальные видео просто не прикрепляются к PDF-документу, размер которого примерно равен размеру видео, которое корректно вставлено.

Вот такая долгая и нудная история. В итоге на данный момент у меня «кривая», но работающая презентация в Power Point и красивая, но не полная в TeXe. Вопрос заключается в следующем: можно ли в каком-то другом формате сохранять анимацию из MatLab так, чтобы потом в презентации LaTeX она, во-первых, могла быть встроена в PDF-файл, во-вторых, по возможности, была представлена в векторном формате? Из тех вариантов, что мне известны, есть возможность сделать все в GIF-формате, стоит ли пробовать? Времени на самом деле не так много, чтобы экспериментировать долго с форматами и перепробовать все. Поэтому прошу совета и помощи у экспертов работающих с этим, либо у тех, кто уже сталкивался с подобным.

P.S. Модераторам. Не знал в какой раздел поместить тему, т.к. по идее мой вопрос на стыке «TeXнических обсуждений» и «Околонаучного софта», но решил что лучше сюда.

Re: Анимация из MatLab в презентацию LaTeX (Beamer)
03.04.2012, 01:36
safety1990 в сообщении #555081 писал(а):
Но при открытии PDF-ки анимация не отображалась.

Попробуйте установить какой-нибудь из наборов кодеков (например, K-Lite Codec Pack, выбирайте «Mega Version»), обычно после этого анимация начинает воспроизводиться. Разумеется, данный совет совершенно не годится, если на защите нельзя пользоваться собственным компьютером.

Кроме того, возможно, стоит попробовать команду \movie из пакета multimedia (см. beameruserguide , гл. 14.1.1 Including External Animation Files ). Но она не добавляет видео-данные в презентацию, а лишь позволяет отобразить видео-файл, лежащий где-то рядом (для отображения, опять-таки, может потребоваться установка кодеков).

По поводу GIF: его стоит использовать, если в отображаемом видео не слишком важное значение имеют оттенки цветов (поскольку этот формат поддерживает лишь 256 цветов). К примеру, в видео нет тонких наклонных линий (которые при таком огрублении превратятся в «лесенки») или широких участков с плавными переливами цветов (которые разобьются на несколько областей с резко выраженными границами). Правда, на не слишком качественном проекторе это может быть и незаметно.

Re: Анимация из MatLab в презентацию LaTeX (Beamer)
03.04.2012, 09:19

IMHO лучше анимацию (если она объёмная) вынести за пределы презентации (например оформить как гиперссылку по которой открывается проигрыватель).

Re: Анимация из MatLab в презентацию LaTeX (Beamer)
03.04.2012, 13:17
EtCetera в сообщении #555089 писал(а):

Попробуйте установить какой-нибудь из наборов кодеков (например, K-Lite Codec Pack, выбирайте «Mega Version»), обычно после этого анимация начинает воспроизводиться. Разумеется, данный совет совершенно не годится, если на защите нельзя пользоваться собственным компьютером.

Спасибо, совет хороший. Поставил указанные кодеки, все заработало как надо (даже avi-файлы запустились корректно). Вот только вопрос «чужого» компьютера меня не перестал волновать. Хотелось сделать презентацию как можно более переносимой, т.к. да, собственным компьютером запрещают пользоваться.

EtCetera в сообщении #555089 писал(а):

По поводу GIF: его стоит использовать, если в отображаемом видео не слишком важное значение имеют оттенки цветов (поскольку этот формат поддерживает лишь 256 цветов). К примеру, в видео нет тонких наклонных линий (которые при таком огрублении превратятся в «лесенки») или широких участков с плавными переливами цветов (которые разобьются на несколько областей с резко выраженными границами). Правда, на не слишком качественном проекторе это может быть и незаметно.

Вы отговорили меня делать анимацию в GIF. Но можно ли как-то по-другому сделать? Вот есть, например, векторный формат EPS в MatLab, который TeX прекрасно понимает и графики получаются чудесными. Можно ли сделать анимацию из таких вот «чудесных» или подобных им объектов? Сразу скажу, итераций (или по-другому кадров) в каждой анимации от 100 до 150, поэтому вариант сохранить каждый шаг отдельно в файл, а потом открывать их по отдельности скорей всего не подойдет. Хотя.

Evgueni в сообщении #555171 писал(а):

IMHO лучше анимацию (если она объёмная) вынести за пределы презентации (например оформить как гиперссылку по которой открывается проигрыватель).

Вы имеете в виду, что по клику на (допустим) картинку-рамку (что угодно) должен открывается отдельно проигрыватель? У меня помимо анимации на слайде присутствуют и другие объекты (формулы, описания), они скорей всего будут перекрываться окном проигрывателя. Можно конечно сразу поместить проигрыватель в нужное место, но анимации у меня тоже в разных местах слайдов, придется проигрыватель «таскать» по всему экрану и менять размер его окна, а это не очень удобно конечно и не презентабельно. Может быть я не до конца понял Вашу идею, тогда объясните, пожалуйста.

Re: Анимация из MatLab в презентацию LaTeX (Beamer)
03.04.2012, 16:22

Последний раз редактировалось Evgueni 03.04.2012, 16:24, всего редактировалось 1 раз.

Формат ролика в pdf не указан стандартом, поэтому презентации сделанные под Mac не работают в Windows и наоборот (это касается не только LaTeX). Поэтому если непременно хотите проиграть свой ролик, то готовьте ноутбук с которого вы это гарантировано сможете сделать

Про ссылку я имел в виду, чтобы открылась внешняя программа и напустилась на внешний же ролик (пусть лежит рядом с презентацией), но опять же без кодеков это бесполезно.

Страница 1 из 1 [ Сообщений: 5 ]

Записки дебианщика

В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.

2/07/2011

Как вставить видео в презентацию Beamer

Если хочется сделать презентацию более эффектной, можно в презентацию вставить видео. Вставка видео в Powerpoint дело несложное, а если нужно это сделать в LaTeX и beamer? Нет проблем! Нас спасёт mencoder и пакет расширений movie15.

Создание видео из нескольких изображений
Первым делом, мне потребовалось создать видео. Дело в том, что в моём проекте многое происходит в движении, так что единственная возможность продемонстрировать это — вставить в презентацию видео. Но для начала его надо ещё создать.

Допустим, у нас есть много JPEG-файлов и мы хотим закатать это всё в один видеофайл. В этом нелёгком деле нам поможет mencoder, который должен быть в репозиториях любого уважающего себя дебианщика:

aptitude install mencoder

После этого копируем все JPEG-файлы в какой-нибудь каталог на всякий случай, переходим в этот каталог и даём команду в терминале:

mencoder «mf://*.jpg» -mf fps=10 -o test.avi -ovc lavc -lavcopts vcodec=msmpeg4v2: vbitrate=800

  • «mf://*.jpg» означает, что в качестве исходников будут браться JPG-файлы. Их лучше занумеровать последовательно.
  • fps=10 видео будет с частотой 10 кадров в секунду.
  • -o test.avi имя видео файла будет .
  • vbitrate=800 битрейт, качество видео (800 разумный компромисс, на 400 артефакты сжатия уже заметены).
function viz_pictures_for_moivemaker(figure_to_record);
c = clock; %% get time from system clocks to generate filenames.
kmvtimersecond = num2str(round(10*c(6)));

if (length(kmvtimersecond) 3)
kmvtimersecond = strcat(kmvtimersecond,'0');
end

kmvtimer = strcat(num2str(c(3)),num2str(c(4)),num2str(c(5)),kmvtimersecond );

kmvPrintName = strcat('movie', kmvtimer, '.jpg'); %% getting additional name suffix. Multiplication by 10 is important, otherwise filenames will be of different length.

%%%%%%
print(strcat('-f',num2str(figure_to_record)), '-djpeg', kmvPrintName); %% printing with EPS driver and 600DPI resolution
%%%%%%

close(figure_to_record);
%% close the window been printed.

Это выдаёт записывает графики в JPEG с именами вида:

Не очень изящно, но работает. В общем, долго ли, коротко, но мы записали видео, а теперь хочется вставить это видео в презентацию Beamer.

Как вставить видео в презентацию Beamer?
Здесь нас выручает пакет расширений movie15.sty свежую версию которого забираем на CTAN: movie15.zip . Распаковываем его в каталог, где лежит наше видео и где будем ваять документ\презентацию с видеофайлом. Стилевой файл movie15.sty
латеховский документ present.tex , в которое будет вставлен ролик, и сам видеофайл test.avi должны быть в одном каталоге.

Далее используем рабочий пример [скачать здесь]:

\documentclass[12pt,landscape]
\usepackage
\geometry
\usepackagemovie15>
\usepackage

\begindocument>
Here is the movie below.

\beginfigure>[ht]
\includemovie[
poster,
text=\small(Title for the video)>
]\linewidth>\linewidth>test.avi>
\endfigure>
\enddocument>

Главная команда здесь это, конечно же, \includemovie [ ]
Она вставит наш видеоролик как картинку, при щелчке на которой запускается проигрывание видео. Имя файла указывается вместе с расширением. В неактивном состоянии отображается только первый кадр.

Для того, чтобы сгенерировать PDF-файл, использовать желательно только PDFLATEX вот так:

pdflatex present.tex

В конце он нам должен сказать, что всё у него получилось и PDF скомпилирован. Всё, открываем файл энтерпрайзным Adobe Acrobat Reader версии не ниже 7.0 и наслаждаемся.

Теперь ложка дёгтя в этой бочке мёду. В этих ваших пионерских лялексах видео отображаться не будет и проигрываться тоже 🙂 Во всяком случае, ни Evince 2.22, ни kpdf 0.5.9 сие не работает. Нужен Ъ-ынтырпрайз Adobe Reader 7 и выше, работающий на серьёзном продакшне типа Windows и MacOS X. Говорят, что okular уже научили играть видео, но у кого ж он есть-то.

Важно то, что этот метод позволяет вставить видео в презентацию полностью, то есть прямо внутрь PDF-документа. На что название формата ( Portable Document Format) как бы неиллюзорно намекает нам. Любопытный читатель может сам открыть PDF файл в любимом текстовом редакторе и узреть что-то типа:

%PDF-1.4
5 0 obj
>
endobj
18 0 obj >
stream
тили тили трали вали
endstream
endobj
6 0 obj >
stream
туттипапотоквстрашныхсимловах

Так что теперь, в отличие от вордоводов, наше видео не отвалится и не будет битых ссылок на неиграющие ролики.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *