Linux для профессионалов: видео-монтаж (и немножко композинг)

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

Весь цикл постобработки и монтажа выполнен с использованием программного обеспечения под управлением ОС Linux.

По-правде говоря, есть один нюанс. Я для подготовки титров сперва использовал AI, запущенный под Wine. Связано это было отчасти с тем, что я, будучи скован врененными рамками, не уделил должное внимание поиску native альтернатив. В действительности, как оказалось, такая альтернатива, вполне лежащая на поверхности, существует. Ниже расскажу подробнее.

Итак, по-порядку.Вдаваться в съемочный процесс, полагаю, особого смысла нет. Единственное, наверное, стоит сказать, что снимали мы на Canon EOS 600D со стандартной прошивкой, для записи звука использовали проводной микрофон-петличку подключенную непосредственно к камере.

391a2ba8bbdc3fd4ba664210b2742bb7.jpg

Надо отметить, что я несколько волновался по поводу качества звука, потому как визуального монитора в стандартной прошивке нет, равно как прямого выхода для наушников. Более того, при прослушивании тестового звука на площадке были заметны, как нам показалось, перегрузки. Поэтому мы решили уменьшить чуть уровень. Как выяснилось позднее — напрасно. В файлах звук был заметно ниже среднего уровня. А тот файл, что мы записали в начале, демонстрировал вполне нормальный уровень звука без перегрузок.

Вообще говоря, если вы намереваетесь снимать профессиональное видео на любую Canon DSLR, я бы рекомендовал использовать Magic lantern. В нашем случае я откровенно упустил этот момент, отчасти, будучи занят изобразительными и организационными задачами и желанием успеть все снять в солнечную погоду.

В итоге, после двух дней съемок мы сгоревшие под палящим солнцем, но, в целом, довольные результатом, получили 10GB HD материалов в качестве 1024p сжатые кодеком H.264.

Подготовка материала Если вам когда-либо доводилось работать с футаджем HD 1024p, вы, должно быть, знаете, насколько неповоротлива бывает монтажка, если только железо не обеспечивает обработку нескольких потоков H.264 одновременно. Поэтому для того, чтобы облегчить процесс, стоит предварительно переконверитровать весь материал в какой-нибудь более удобоваримый кодек и снизить разрешение, с тем, чтобы позднее «подменить» файлы на оригинальные и «посчитать» фильм в окончательном варианте.

Я решил, что оптимальнее всего будет сконвертировать в старый-добрый DV50 widescreen, покуда сей кодек не предусматирвает межкадровой интерполяции и хорошо себя зарекомендовал в работе с Kdenlive. Последнюю я давно использую для монтажа и считаю его лучшим профессиональным Open Source монтажным инструментом.

В общем недолго думая я зарядил конвертацию:

#/bin/bash if [ $# -lt 2 ]; then echo «Video HD > PAL converter.» echo «Usage: $0 l» echo «c — convert, l — file list» else mkdir »$1/PAL» ls »$1» | grep -E .MOV | while read file; do if [ »$2» == «c» ]; then avconv -i »$1/$file» -target pal-dv50 -aspect 16:9 -threads 0 «PAL/$file» fi if [ »$2» == «l» ]; then echo »$1/PAL/$file» fi done fi Kdenlive не имеет свойственных Adоbе продуктам ограничений на кодеки. Все, для чего у вас в системе установлены кодеки, будет подгружаться и проигрываться. Но справедливости ради, нужно отметить, что всевозможные не предназначенные для нелинейной обработки форматы кодирования могут привести к падению монтажки. Что же является большим плюсом — Kdenlive умеет самостоятельно сохранять и восстанавливать проект после падения. Однако, при любом раскладе, хорошей практикой будет периодическое нажимание кнопки «save» после каждого ключевого этапа. Впрочем, очевидно, это само собой разумеющийся совет.

Небольшое отступление, имеющее свой целью продемонстрировать, насколько более гибкий подход обеспечивает использование Open Source продуктов выполненных в соответствии с POSIX стандартами.

Некоторое время назад в сообществе ru_filmmaker коллега задал вопрос: как превратить 720p 25 fps с полукадрами в 1024p 50 fps без полуполей. Мол, по недосмотру сняли часть не в том качестве. Что делать теперь — не очень понятно. Ситуация усугублялась еще, насколько я понимаю, необходимостью обработать некотрое количество такого материала. Как пишет сам автор, выяснилось, никаких стандартных способов делать это силами продуктов Adоbе нет. Во всяком случае сколько бы то ни было прямолинейный способ сделать это отсутствовал. Причина этого понятна, есть стандартные задачи. В рамках стандартных задач инструментарий предоставляет решения встроенные в монолитный интерфейс. Такой подход предполагает недюжие профитические умения у разработчиков. Ведь действительно, тебе нужно предполагать все способы использования твоего инструментария, чтобы «закрыть» все гипотетически возможные нюансы. Другое дело POSIX. Не связанный напрямую набор инструментов дает возможность решать практически любые задачи.

Я было сперва решил предложить простой bash скипт, который разбивает видео на кадры, потом с помощью ImageMagic делит каждый кадр на полуполя, сохраняет и собирает итоговый ролик. Однако быстро обнаружил, что эта задача решается одной строкой с помощью ffmpeg, о чем и проинформировал автора вопроса там же.

Или вот еще. Вы, к примеру в курсе, что Kdenlive хранит монтажный лист в XML и позволяет «рендерить» фильм из командной строки? Любой пытливый экспериментаторский ум тут же рождает массу идей по поводу того, как это можно использовать :)

Итак, видео у нас готово. Надо монтировать.

Монтаж Как я уже написал выше, для монтажа я использую Kdenlive. Я в свое время, попробовал множество разных инструментов, и могу сказать, что, по моему мнению, Kdenlive на сегодняшний день — лучший. Есть еще претендующий на сопоставимый уровень OpenShot. Но пока он ни по уровню исполнения ни по интерфейсу не дотягивает до Kdenlive даже близко. Kdenlive же — можно сказать, признанный стандарт. И, судя по уровню обсуждений на форуме сайта проекта, делают его ребята «съевшие не одну собаку» в производстве видео.

Поскольку задача обучения использованию инструментария выходит за рамки задач настоящей серии публикаций, описывать весь процесс монтажа я не стану. Он прост и в целом для любого человека, владеющего навыками работы с любом другим монтажным продуктом (FinalCut, Adobe Premiere, Avid), никаких особых сложностей не представляет. На мой субъективный взгляд, интерфейсно Kdenlive наиболее схож с Final Cut.

Моменты, на которые я бы хотел обратить внимание: а) В новой версии Kdenlive появилась возможность загружать не только секвенции с альфа-каналом, но и прозрачные (32 bit) AVI, сохраненные без компрессии. Что я успешно использовал для создания титров (об этом ниже)б) После подмены клипов на оригинальные (об этом так же будет рассказано ниже), фрагменты, в которых была изменена скорость проигрывания, по какой-то причине сжимаются. Решается это изменением параметров на оригинальные и обратно.

Звук Для обработки звука я использую отлично зарекомендовавшую себя Audacity. Там есть в принципе все, что нужно звукоинженеру + большое количество дополнительных фильтров написанных сторонними разработчиками.

В нашем ролике присутствует пара «ветреных» кадров. Соответственно, я решил немного подправить частотные характеристика звука в этих фрагментах, с тем, чтобы, по-возможности, маскировать шум ветра и выделить голос. + чуть обработал весь звук компрессором, чтобы добиться б/м приемлемого звучания на маленьких колонках и встроенных в карманные смартфоны динамиках.

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

Будучи персонажем пытливым, я решил, что я не буду отступать от выбранной парадигмы и попробую решить эту задачу средствами имеющегося для Linux ПО. В общем провозившись день с изучением всех возможных новинок и поняв, что в этом аспекте ничего принципиально с 2007-го года не поменялось, я решил, что единственный способ, который мне остается, это воспользоваться AE запущенным под Wine.

Надо отметить, что Open Source композинг в Linux по-прежнему остается камнем преткновения. Т.е. нет, есть конечно Nuke. Nuke, к слову, настолько великолепный инструмент, что многие его ставят на голову выше вообще всего ПО для кино-видео композинга, существующего на сегодняшний день. И я эту точку зрения безоговорочно разделяю. Но! Nuke — проприетарный и коммерческий продукт. Увы. Так что этот вариант я оставил покамест также.

Еще есть Встроенный в Blender node композитор. Он великолепен во всем. Кроме отсутствовавшего на тот момент трекинга. В последней версии трекинг наконец-то появился. Но прошлой осенью его там еще не было в помине. Стало понятно, что выход один — AE под Wine.

После ознакомления с базой Wine выяснилось, что лучше всего себя ведет версия 6.5. А у меня как-раз осталась с давних времен CD от Adobe AE 6. Покопавшись в сети я обнаружил, что Адоб имеет открытый FTP со старыми экземплярами ПО, чем я и воспользовался.

Долго ли, коротко ли, но дело заспорилось.

e1bed60a140e71d32391b2749e9b9ad5.jpgAE запущенный в окружении Mate (ex Gnome)

Однако, после некоторых упражнений выяснилось, что АЕ по каким-то причинам время от времени, таки, падает во время рендера. Место сбоя было все время разным, что навело меня на мысль о том, что дело тут не в исходниках и не в таймлайне. В общем, покопавшись в Сети я нашел-таки причину и поспешил поделиться с посетителями winehq, теперь вот делюсь и с уважаемыми читателями этой статьи:

Советы:1. чтобы избавится от настырных падений нужно сделать следующее: нажать Shift key + выделить Edit → Preferences… там появится подраздел «Secret». В открывшемся окне вписать волшебное значение »20» и закрыть окно. После этого все будет работать как часы :)2. по умолчанию AE использует только 2ГБ (при любом объеме установленной у вас памяти), чтобы выделить больше, надо в boot.ini прописать команды /PAE и /3GB

Оригинал, к слову, уже почил в «в конденсате Энштейна-Бозе». Впрочем, нашелся еще пруф на Creative Cow.

Далее все было элементарно. Я «сдул пыль» со старого софта. Все заработало и удивительным образом резво. Я нарисовал статику в InkSkape, после чего экспортировал все в EPS. Втянул в AE и сделал анимацию. Результирующее видео посчитал без компрессии в 32bit AVI с альфаканалом.

Тут надо сделать некоторое отступление. Дело в том, что я, как уже было сказано выше, торопился выложить видео на сайт, и не удосужился исследовать вопрос достаточно досконально. Однако, спустя какое-то время, а если быть точным, то непосредственно перед новым годом, читая ленту новостей DigiLinux я наткнулся на очередную заметку про Synfig. Поскольку мультипликационная анимация всегда находилась несколько на периферии моих профессиональных интересов, я никогда особо не обращал внимание на этот проект. Т.е. я знал, что он есть и, если судить про скриншотам и частоте появления заметок о нем тут и там, это какой-то вполне себе популярный продукт. Но… и тут меня осенила мысль. А что если попробовать это дело в качестве композера для титров.

В общем, не долго думая, я поставил Synfig, и, что вы думаете… Так все и оказалось. Synfig оказался вполне приемлемым для такого рода затеи. Ура! задача решена. Я как раз планировал сделать upgrade ролика, приделать финальный «пэкшот», подкрутить цвета и выложить наконец ролик на сервер напрямую в хорошем качестве, минуя рекомпрессию Vimeo и за одно избавившись от зависимости от Flash и назойливых логотипов поверх картинки. Так что находка оказалась как нельзя кстати.

В общем, я поковырялся, и сделал-таки титры в Synfig.

Все же надо отметить, что задача эта оказалась не из легких. После AE интерфейс Synfig весьма непривычен. И все, что касается работы с ключевыми кадрами и с нелинейными таймингами, на мой взгляд, оставляет все еще желать. Но, тем не менее, в рамках поставленной задачи решение было найдено. На выходе я получил обычную секвенцию PNG c альфаканалом, которую без труда сконвертировал в те же 32-битные авишки с помщью ffmpeg.

Примечание: Если вы медиа-дизайнер работающий в Linux, то наверняка, так же как и я, используете InkScape для векторной графики. В новой версии Synfig появился долгожданный импорт SVG. Однако, как показала практика, работает он странным образом. Т.е. все скомбинированные объекты «разваливаются» при экспорте на части. Решение: используйте вместо этого плагин для InkScape. Он сохраняет в оригинальный Synfig sif формат.

После того, как я «подриховал» прыщики и подготовил новые титры, оставалось только собрать финальный вариант.

6283d7c83ca837502bb5c159070fa018.jpgМонтаж ролика Electronic Tour Guide в Kdenlive

В начале статьи я упомянул, что я использовал пересчитанные фрагменты. Так вот, я было уже приготовился к каким-то неполадкам после замены, но процедура обратной замены оказалась на удивление простой. Как и многие современные Open Source приложения, Kdenlive сохраняет монтаж в структурированный XML файл. Т.е это банальный текстовый файл удобный для просмотра, анализа и «парсинга» сторонними приложениями. Так что я просто открыл сохраненный монтаж в текстовом редакторе pluma и по шаблону заменил все пути на ведущие к HD исходникам.

После загрузки я поменял формат кадра и единственное, что обнаружил — это проблема с изменением размеров, упомянутая выше. После исправления размера оставалось только «посчитать» видео с разными кодеками и выложить ролик на сервер.

Это мы в процессе:) 53f449998b12e5963d2082ea113bd212.jpgCъемки эпической киноленты про наш пражский GPS аудио-гид

b789be6de63ae907d998076bf4a0d85d.jpgПражский GPS путеводитель, продолжение съемок

Съемочная команда Юля Беленькова турист-рассказчицаЕвгений Епифанцев операторЮрий Яковлев ассистентДмитрий Шальнов копирайтер, режиссер и монтажер эпической киноленты :)

Специальная благодарность: Михаилу Спивакову за редактуру перевода, а так же Алине Казакевич за участие в предварительных съемках.

Список использованного и упомянутого Open Source программного обеспечения Kdenlive — видео-монтаж FFmpeg — полнофункциональны консольный инструмент для обработки видео. Audacity — редактирование и обработка звука Wine — Windows API транслятор и набор библиотек, позволяющий запускать Win приложения в POSIX совместимых операционных системах (таких как Linux, Mac OSX, & BSD) в native режиме. Blender — профессиональный инструмент для композинга и работы с 3D графикой Synfig — инструмент для создания двумерной векторной анимации InkScape — инструмент для работы с векторной графикой SIF exporter — плагин для сохранения SIF файлов из InkScape. Magic Lantern — альтернативная прошивка с расширенным набором видео-возможностей и открытым исходным кодом, предназначенная для запуска на камерах Canon EOS. Полезные ссылки P.S. Ролик добавленный в статью — это Vimeo, покуда Хабра, увы, не поддерживает добавление html5 video напрямую. Так что качество компрессии тут заметно хуже. Если хотите посмотреть оригинал — он на сайте проекта Electronic Tour Guide.

© Habrahabr.ru