Создание видео из нескольких изображений
Первым делом, мне потребовалось создать видео. Дело в том, что в моём проекте многое происходит в движении, так что единственная возможность продемонстрировать это - вставить в презентацию видео. Но для начала его надо ещё создать.
Допустим, у нас есть много 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.
%%%%%% <------------ Printing the window
print(strcat('-f',num2str(figure_to_record)), '-djpeg', kmvPrintName); %% printing with EPS driver and 600DPI resolution
%%%%%% <------------ Printing the window
close(figure_to_record); %% close the window been printed.
Это выдаёт записывает графики в JPEG с именами вида:
movie141632149.jpg
movie141632156.jpg
....
movie141632164.jpg
Не очень изящно, но работает. В общем, долго ли, коротко, но мы записали видео, а теперь хочется вставить это видео в презентацию Beamer.
Как вставить видео в презентацию Beamer?
Здесь нас выручает пакет расширений movie15.sty свежую версию которого забираем на CTAN: movie15.zip . Распаковываем его в каталог, где лежит наше видео и где будем ваять документ\презентацию с видеофайлом. Стилевой файл movie15.sty
латеховский документ present.tex, в которое будет вставлен ролик, и сам видеофайл test.avi должны быть в одном каталоге.
Далее используем рабочий пример [скачать здесь]:
\documentclass[12pt,landscape]{article}Главная команда здесь это, конечно же, \includemovie[ ]
\usepackage{geometry}
\geometry{verbose,letterpaper}
\usepackage{movie15}
\usepackage{hyperref}
\begin{document}
Here is the movie below.
\begin{figure}[ht]
\includemovie[
poster,
text={\small(Title for the video)}
]{0.5\linewidth}{0.5\linewidth}{test.avi}
\end{figure}
\end{document}
Она вставит наш видеоролик как картинку, при щелчке на которой запускается проигрывание видео. Имя файла указывается вместе с расширением. В неактивном состоянии отображается только первый кадр.
Для того, чтобы сгенерировать 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
<< /S /GoTo /D [6 0 R /Fit ] >>
endobj
18 0 obj << /Length 163 /Filter /FlateDecode >>
stream
тили тили трали вали
endstream
endobj
6 0 obj << /Type/EmbeddedFile/Subtype (video/avi) /Length 94394 /Filter /FlateDecode >>
stream
туттипапотоквстрашныхсимловах
/ID [] >>
startxref
109718
%%EOF
Ссылки в тему:
http://electron.mit.edu/~gsteele/ffmpeg/
http://darkwing.uoregon.edu/~noeckel/PDFmovie.html
Ух ты! Спасибо, очень интересно.
ОтветитьУдалить@Анонимный комментирует...
ОтветитьУдалитьУх ты! Спасибо
Пожалуйста. Мне тут предстоит семинар делать, и надобно было вставить красивое видео в beamer-презентацию. Собственно, по мотивам сего и пост.
Насколько я помню, в матлабе была штатная функция для записи видео, и я даже ею пользовался.
ОтветитьУдалитьКроме того, советую прочитать help sprintf, чтобы больше так не мучаться с strcat.
>Говорят, что okular уже научили играть видео, но у кого ж он есть-то...
Внезапно, это просмотрщик кед по умолчанию в текущем стейбле :)
P.S. Когда же это чудо былокодинга под названием blogger научится понимать openid? Иногда кажется, что даже джумла была бы лучше...
Кстати, по поводу читалок pdf: недавно понадобилось заполнить формы в документе - okular и evince не справились. В поисках чего-то другого наткнулся на "ентерпрайз" Adobe Reader под линукс, в котором формы нормально заполнились. Его для просмотра видео в презентациях не пробовали?
ОтветитьУдалить@Анонимный комментирует...
ОтветитьУдалитьНасколько я помню, в матлабе была штатная функция для записи видео
Я знаю, что она есть, но работает она уж как-то странно медленно.
Кроме того, советую прочитать help sprintf
О, спасибо! А то я по Си-шной привычке fprintf пользую.
Внезапно, это просмотрщик кед по умолчанию в текущем стейбле :)
Нету у меня кед. Босоногий я :-) Только IceWM.
Когда же это чудо былокодинга под названием blogger научится понимать openid?
Анонимус, ты не прав. Оно, во-первых, не быдлокодинг, а во-вторых, openID понимает и даже (после допиливания шаблона) может быть сервером opneID.
Иногда кажется, что даже джумла была бы лучше...
Надо с хостингом отдельно мучаться. А тут не надо. Ткнул и поехали :-) Ну и потом, вроде этот адрес уже примелькался, а я стал ленивым...
@ziodmitry комментирует...
Кстати, по поводу читалок pdf: недавно понадобилось заполнить формы в документе - okular и evince не справились.
Я ж говорю - пионерия красноглазая этот лялех :-)
На самом деле - неужели это так сложно реализовать в Okular!? Нет, чтобы в КДЕ4 заняться таки функционалом - так ведь нет, они пилят одни свистелки, блекджеки и бубенчики :-))
В поисках чего-то другого наткнулся на "ентерпрайз" Adobe Reader под линукс
Этот этерпрайз мне по какой-то причине в своё время сделал так, что kpdf потом открывал только пустые документы. Такой хоккей нам не нужен.
Его для просмотра видео в презентациях не пробовали?
Пробовал, конечно. Только под нормальной продакшн-виндой. Там всё играет и поёт. Не быть лялексам на десктопе, не быть! :-)
>Оно, во-первых, не быдлокодинг, а во-вторых, openID понимает
ОтветитьУдалитьЕсли бы оно понимало openid, я бы не был анонимусом.
openid у меня есть и работает (всякие тесты вроде http://www.wasab.dk/morten/2007/11/openid/ это подтверждают). Но blogger принимает только некоторые openid (похоже, под каждого популярного провайдера команда гуглоиндусов писала свои костыли, вместо того, чтобы просто нормально реализовать спецификацию протокола). Так что - быдлокод, тут все очевидно.
Очень интересный вариант. Надо использовать. Спасибо.
ОтветитьУдалитьоднако я испытал
ОтветитьУдалитьи оно работает это ваше openID :)
не ругайтесь
Михаил, рад вам сообщить, что этот Beamer-пост намного позитивнее предыдущего! Linux-аналоги Adobe Reader удручают, при том, что анимацию в pdf можно делать давно. Например, в Asymptote. Вот что мешает сделать поддержку в том же okular, когда asy-графика давно в штатных средствах kile? Да и kile под 4й размер кед еще только бета. Вы бы выложили результаты своих трудов, чтобы проверить с okular. Может не так он и плох?
ОтветитьУдалитьАй virens, ай телепат… Мне как раз на следующий понедельник нужно сделать презентацию с видео, так что ты более чем вовремя :) Теперь-то уж я им всем докажу, что Beamer круче всех этих ихних павырпоинтаф и прочего. Спасибо!
ОтветитьУдалитьP.S. И да — странно, но очепяток я не нашёл. То ли статья слишком увлекательная, то ли ты я старею…
По моему опыту (пробовал все варианты по двум ссылкам, приведённым в конце поста) не следует рассчитывать что акробат (новейший или какой-то) вас спасёт на виндовозе, который обычно предлагается оргкомитетом. Наиболее надёжно делать отдельный растровый фильм и вызывать через гиперссылку внешний скрипт, который будет вызывать внешний плеер. Тогда на месте можно будет подправить команду для этого самого плеера, если машина чужая.
ОтветитьУдалитьКстати, у меня aptitude в lenny mencoder'а не видит, а только ffmpeg. Где он лежит у уважающих себя дебианщиков?
debian-multimedia.org
ОтветитьУдалить@Анонимный комментирует...
ОтветитьУдалитьЕсли бы оно понимало openid, я бы не был анонимусом.
Ну не знаю. У меня понимает. Блоггеровский опенИД у меня используется во многих сайтах, хоть битбакет что ли.
команда гуглоиндусов писала свои костыли
Там ещё и белые люди есть. Впрочем, я тут у одного рассового американского профессора в матлабовском коде нашёл вот что:
if (1==0) %% do test function
"Ох шит!" - сказал я, поперхнувшись кофе и подавившись ещё французской булкою. :-)
@MORiKOFF комментирует...
однако я испытал и оно работает это ваше openID не ругайтесь
Дык я ж говорил - в Гугле ещё остались истинные белые арийцы. :-)
@iv_vl комментирует...
Михаил, рад вам сообщить, что этот Beamer-пост намного позитивнее предыдущего!
На удивление, по movie15 документации больше, чем на весь beamerposter. Что радует.
Linux-аналоги Adobe Reader удручают
Мне вроде кедоводы говорили, что ихний Okular из последней pre-alpha-nightly-builds вроде как проигрывает видео. Но я слишком стар для таких развлечений, как конпеляние КДЕ.
Вы бы выложили результаты своих трудов
А всё ж в посте. Там ещё архив добавил, но пока без видео. Оно слишком большое, попробую найти меньше.
@Minoru комментирует...
Ай virens, ай телепат Мне как раз на следующий понедельник нужно сделать презентацию с видео, так что ты более чем вовремя :)
Вот видишь, как подфортило. А я думал, какой бы баян выкатить, чтоб не слишком бородатый :-)
Теперь-то уж я им всем докажу, что Beamer круче всех этих ихних павырпоинтаф
Он круче. Это факт.
И да — странно, но очепяток я не нашёл.
У меня спелчекера больше нету - на фирефокс английский перешёл. И энтерпрайз-подписка на ispell в Дебиане кончилась :-)
@Анонимный комментирует...
По моему опыту (пробовал все варианты по двум ссылкам, приведённым в конце поста) не следует рассчитывать что акробат (новейший или какой-то) вас спасёт на виндовозе
У нас работает. По крайней мере, дважды запускался.
Наиболее надёжно делать отдельный растровый фильм и вызывать через гиперссылку внешний скрипт
Эээ... не, не айс. Вот это-то и отваливается чаще всего. У нас кодеков не ставят в комплекте с виндой.
Кстати, у меня aptitude в lenny mencoder'а не видит, а только ffmpeg. Где он лежит у уважающих себя дебианщиков?
В репозиториях debian-multimedia вестимо. Копирасты не позволяют включать в состав.
Добавлю, что линуксоид, лишенный ненужных страхов, вполне может воспользоваться и Adobe Acrobat и под линухом. Я об этом писал полтора года назад.
ОтветитьУдалитьопечатка есть в названии функции, но автор вообще грешит путать буквы местами.
ОтветитьУдалить@Sergey Kishchenko комментирует...
ОтветитьУдалитьДобавлю, что линуксоид, лишенный ненужных страхов, вполне может воспользоваться и Adobe Acrobat и под линухом.
Страхи есть, и вполне обоснованные. Мне девятый адобовский акробат под Дебианом сделал так, что ПДФ просматривает только он, а другие открывают "пустой" документ. Исправить это было непросто.
@cramur комментирует...
опечатка есть в названии функции
cramur, хорошим тоном считается намекнуть автору, в какой именно :-)
но автор вообще грешит путать буквы местами.
Но не ошибается только тот, кто ничего не делает. (C) В. И. Ленин, "Под Знаменем Марксизма" № 3, март 1922 г.
А у каждой картинки может быть своя длительность показа?
ОтветитьУдалить> Кстати, по поводу читалок pdf: недавно понадобилось заполнить формы в документе - okular и evince не справились.
ОтветитьУдалитьОчень странно.. буквально пару месяцев назад заполнял формы в pdf okular - он очень неплохо с этим спрааился. УМВР ЧЯДНТ?
> Всё, открываем файл энтерпрайзным Adobe Acrobat Reader версии не ниже 7.0 и наслаждаемся.
А как быть, если энтерпрайзного адобе нет? Есть, к примеру, вышеозвученный okular/evince - они откроют такую презентацию нормально? pdf ведь всё-таки portable...
А как foxit reader под той же вендой?
Да... и видеофайлы со звуком тоже будут работать? (при наличии колонок, разумеется).
вот тут http://www.ctan.org/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf очень подробный мануал по бимеру (на английском). По теме вставки видео читать со стр. 135 (описывается пэкэдж multimedia).
ОтветитьУдалитьХотела бы дать совет для людей которые будут делать презенацию:появилась очень прикольная программа для Power Point презентаций.С ее помощью можна задавать вопросы публике и получать мгновенные ответы которые появятся на слайде через 1 минуту. И так вместо скучного монолога получается живой диалог. Кому интересно, www.shakespeak.com
ОтветитьУдалитьХотел сделать такую презентацию с видео на конференцию в университете для большей наглядности. Провозился часами и в итоге забросил эту идею. PDF создался отлично, без задоринки, все как описано в статье. А вот с просмотром проблемы так и не решились. Даже последняя версия Ънтерпрйзного Adobe Reader 10.1.1 под нативной виндой согласилась запустить только одно видео из двух и только после "Да, я, блин, доверяю этому PDF файлу".
ОтветитьУдалитьВсей кухни со спецификацией pdf я не знаю, но то ли спецификация позорная, то ли программисты ленивые — вероятность успешно открыть презентацию со встроенным видео стремится к нулю. А ведь очень полезная возможность, порой.
Для себя решил, что лучше пока отдельно видео, отдельно презентацию, хоть и неудобно.
Чтобы видео читалось везде очень ВАЖНО ПЕРЕКОДИРОВАТЬ AVI
ОтветитьУдалитьmencoder -ovc lavc -oac lavc -ffourcc DX50 -o
После отчаянных часов поиска в ночь перед презентацией каким-то чудом нашел это но Gentoo wiki.
The -ffourcc DX50 option is included because although the video produced is an MPEG4, the default value is FMP4, which is not widely recognised. A header with DX50 claims that the video is DivX 5 (hence MPEG4) compatible and should therefore play on any media player that can play MPEG4 video. It may be worth it to adding this as a default in your mencoder config, particularly if you mostly encode this type of video.
Если, например, файл из ютуба, можно сразу
mencoder input.flv -ovc lavc -oac lavc -ffourcc DX50 -o output.avi