Обработка видеозаписей MPEG4 ASP фотовидеокамер. Часть II (два года спустя)


"Если нельзя, но очень
хочется — то можно..."
(народная мудрость)

Введение

В конце нашей предыдущей статьи "Обработка видеозаписей MPEG4 фотовидеокамер. Этапы от камеры до DVD плеера шаг за шагом" мы обещали еще раз вернуться к вопросу обработки "фотовидеокамерных" MPEG4 видеозаписей. С тех пор прошло уже более двух лет, ну а поскольку "обещаного три года ждут", то можно сказать, что это ее продолжение выходит даже несколько раньше ожидаемого срока :-) .

За прошедшие два года многое изменилось — тогда MPEG-4 видео в фотоаппаратах было еще в диковинку, а сейчас это вполне стандартная функция, которую многие даже не принимают во внимание при выборе фотоаппарата. Если тогда в подобных камерах использовался исключительно MPEG4 ASP (Advanced Simple Profile), то сейчас уже появились фотовидеокамеры с поддержкой более продвинутого формата MPEG-4 AVC (Advanced Video Coding, H.264), этот же формат кодирования видео используется в HD DVD. Поэтому, чтобы избежать путаницы, мы конкретизируем рассматриваемый вопрос в названии статьи — "MPEG4 ASP", хотя и на MPEG-4 AVC тоже немного остановимся.

В настоящее время почти все современные DVD-проигрыватели поддерживают MPEG-4 ASP кодеки DivX и XviD. Однако и тогда, и сейчас эта поддержка в основном ограничивается контейнером AVI, в то время как в фотовидеокамерах часто используются контейнеры MP4 и MOV. Есть фотовидеокамеры, снимающие MPEG-4 AVI ролики, но и они в основной массе не DivX-совместимы. DVD проигрыватели c поддержкой MP4 (Nero Digital) уже есть в продаже, но они пока слишком дороги и немногочисленны, да и не факт, что они поддерживают MOV.

Отсюда возникла первая проблема, с которой столкнулись владельцы MPEG-4 ASP фотовидеокамер — это несовместимость отснятых роликов с привычными программами монтажа и с DVD-MPEG4 проигрывателями. Ее решению и была посвящена наша предыдущая статья, тут за истекшее время мало что изменилось. Если бы мы писали ее сейчас, то последовательность шагов осталась бы примерно той же самой, разве что обновились бы версии программ, да добавились бы способы просмотра исходных роликов на компьютере (тогда очень немногие программы справлялись с этим).

Вторая проблема, которую мы тогда только обозначили — это необходимость перекодирования всего видеоматериала при нелинейном монтаже (с добавлением переходов, эффектов и т.п.). И дело тут не только в затратах времени, но и в дополнительной потере качества, вносимой перекодированием.

Дело в том, что одним из серьезных достоинств MPEG-4 ASP фотовидеокамер является возможность создания из "сырого" отснятого материала готового MPEG-4 фильма на CD или DVD без потери исходного качества и с минимальными временными затратами (в разы быстрее, чем в случае с miniDV камерой). При перекодировании же исходного MPEG-4 видео почти все преимущества такой камеры перед miniDV теряются.

Казалось бы, мы имеем лишь две эти крайности без промежуточных вариантов. А что же делать тем владельцам MPEG-4 камер, которые хотят использовать некоторые возможности нелинейного монтажа (переходы, титры, вставки и т.п.) но при этом не хотят перекодировать весь видеоматериал, большая часть которого, как правило, остается нетронутой? Сейчас мы можем уверенно сказать — есть такой способ, в частности с помощью видеоредактора Ulead Video Studio.

Для начала остановимся на теории и постараемся разобраться, почему в одних случаях можно ограничиться простой и быстрой перепаковкой видео, а в других требуется его перекодировать, а также почему перекодировка приводит к ухудшению качества видео.

Форматы кодирования  видео

В статье "Видеовозможности современных цифровых фотокамер" мы уже рассматривали этот вопрос. Очень коротко остановимся на особенностях, важных для понимания нашей задачи.

Существуют две основных группы видеокодеков — с покадровым сжатием (Motion JPEG, DV) и с межкадровым сжатием (кодеки группы MPEG — MPEG-1, MPEG-2, MPEG-4 ASP, H.264).

В кодеках с покадровым сжатием каждый кадр кодируется независимо от остальных кадров, как отдельная "фотография". В кодеках с межкадровым сжатием есть два типа кадров — ключевые и промежуточные. Ключевой кадр содержит всю информацию о кадре, в то время как промежуточный содержит только отличия данного кадра от предыдущего (или предыдущего и последующего), эти отличия обычно невелики. Ключевой кадр и связанные с ним промежуточные кадры формируют так называемую GOP (Group Of Pictures). Для раскодирования произвольного кадра внутри GOP необходимо раскодировать всю цепочку начиная от первого (ключевого) кадра. Отсюда следует одно из ограничений, возникающее при линейном (прямопотоковом) монтаже MPEG-4 видео — мы можем выполнять "кройку и шитье" только по границам GOP *.

* Примечание: Строго говоря, лишь начало фрагмента нужно подрезать строго по ключевым кадрам (началу GOP), его окончание можно подрезать, начиная с произвольного кадра.

Для фотовидеокамер с GOP=15 (GOP содержит 15 кадров) и частотой кадров 30 это означает монтаж с точностью до 0.5 сек. Для монтажа домашнего видео обычно бывает достаточно такой точности, хотя иногда бывает и маловато. К этому мы вернемся чуть ниже.

Серьезным преимуществом кодеков с межкадровым сжатием является более высокая степень компрессии при сохранении хорошего качества видео. Для примера скажем, что на обычном DVD диске можно сохранить менее 20 минут необработанного DV видеоматериала, от часа до двух MPEG-2 видеозаписи или 3-4 часа MPEG-4 ASP видеозаписи. Поэтому для сохранения готового видео в основном используются именно MPEG кодеки.

Также отметим, что современные бытовые DVD плееры умеют воспроизводить MPEG-1 (Video CD), MPEG-2 (DVD и SVCD) или MPEG4 ASP (DivX и XviD) видео, а вот MJPEG и DV не умеют. Так что, если изначально видеозапись была сделана в DV или MJPEG, то для создания фильма совершенно точно потребуется перекодировать ее в MPEG-2 (DVD Video) или MPEG-4 ASP (MPEG-4 CD). А вот на вопрос "нужно ли перекодировать MPEG-4 видеоролики в MPEG-2" однозначного ответа нет, поэтому мы обозначим плюсы и минусы каждого подхода.

MPEG-4 видеоролики. Перекодировать или нет?

1. Конечный формат — DVD-Video диск

Если нашей целью является получение стандартного DVD-диска, который будет воспроизводиться на любом DVD-плеере (в т.ч. без поддержки MPEG-4), то перекодирования в MPEG-2 нам не избежать. При кодировании в MPEG-2 с достаточно высоким битрейтом (4000 — 8000 Кбит/сек) визуальная потеря качества будет небольшой. Хотя, конечно, тут многое зависит и от выбранного MPEG-2 кодека. Основной недостаток этого подхода — большие затраты времени на перекодирование.

2. Конечный формат — MPEG-4 диск (CD или DVD)

Если нам достаточно MPEG-4 CD/DVD "на выходе", то можно значительно сократить время на обработку. Здесь исходный формат видео совпадает с конечным, поэтому перекодирования можно вообще избежать. Один из недостатков такого подхода — для MPEG-4 CD/DVD нельзя сделать меню, как для стандартного DVD-диска. MPEG-4 диск записывается как обычный диск с данными, и DVD-MPEG4 проигрыватель при его загрузке просто отображает список файлов. При воспроизведении таких файлов обычно имеется быстрая навигация по времени, и это отчасти компенсирует отсутствие меню.

Другой недостаток — ограниченная совместимость с DVD-проигрывателями, однако сегодня, когда подавляющее большинство DVD-проигрывателей имеют поддержку MPEG-4, это вряд ли можно считать серьезным недостатком.

С другой стороны, экономия времени при таком подходе может быть весьма существенной. Для того, чтобы перепаковать и склеить часовой фильм, потребуется не более 5-10 минут, плюс еще 5-10 минут на запись CD (в то время как для перекодирования того же фильма и записи DVD потребуется 1-2 часа). Да и потери исходного качества при перепаковке не будет вообще.

Но, к сожалению, при таком "быстром" подходе мы можем использовать только возможности линейного монтажа ("кройку и шитье", или ВТОРОЙ ПУТЬ по нашей предыдущей статье). Такие элементы, как переходы и фильтры будут нам недоступны, для этого необходим нелинейный монтаж с перекодированием.

Практика показывает, что при любительском монтаже большая часть видеоматериала остается нетронутой, поэтому полное перекодирование — это только лишние потери времени и качества видео. Возникает вопрос — а можно ли при нелинейном монтаже перекодировать только измененные участки видеоматериала, а нетронутые передавать "на выход" без перекодирования?

Что касается DV видео, тут программы монтажа уже давно "научились" подобному приему — если входной и выходной форматы совпадают, перекодируются только затронутые фрагменты. Но вот с MPEG-4 все оказалось сложнее — в процессе наших экспериментов видеоредакторы упорно перекодировали весь фильм и "не хотели" передавать нетронутые фрагменты без перекодирования.

И, тем не менее, работающее решение было найдено!

Сначала такая возможность была обнаружена в видеоредакторе Ulead Video Studio 7.0, а затем (с помощью участников форума ixbt.com) мы научились настраивать редакторы Ulead VideoStudio и MediaStudio разных версий.

Перейдем к конкретным шагам и настройкам.

Настройка программ и кодеков

В предыдущей статье "Обработка видеозаписей MPEG4 фотовидеокамер. Этапы от камеры до DVD плеера шаг за шагом" кодек используется только для просмотра видео, на процесс линейного монтажа работа кодека никак не влияет.

Здесь же от его настройки будет напрямую зависеть качество получаемого видео, кроме того, нам нужно подобрать и настроить кодек с видеоредактором так, чтобы перекодировались только те участки видео, на которые были наложены фильтры или переходы. Нетронутые же участки видео должны передаваться без перекодирования, прямопотоковым копированием.

Итак, нам понадобятся:

  • Кодек DivX (пятой версии, мы использовали 5.1.1 и 5.2.1);
  • Видеоредактор Ulead Video Studio (версии 7.0, 8.0, 9.0 или 10.0);
  • Программа MP4Cam2AVI (для перепаковки фотовидеокамерных роликов в контейнер AVI, чтобы сделать их DivX-совместимыми*).

* Примечание: Хотя некоторые версии UleadVideoStudio работают с MP4 файлами, для нашей задачи обеспечения возможности прямопотокового копирования необходимо, чтобы исходные ролики были DivX-совместимыми, а для этого необходима предварительная обработка в MP4Cam2AVI.

Возможно, тех же результатов можно добиться с другими кодеками и видеоредакторами, но нам этого не удалось (мы тестировали кодеки DivX5, DivX6, XviD, 3ivX и FFDShow с Ulead Video Studio, Pinnacle Studio, Sony Vegas и Adobe Premiere).

В любом случае, мы предлагаем найденную совместными усилиями рабочую методику, а в остальном оставляем простор для эксперимента нашим читателям.
А теперь перейдем к настройкам программ и кодеков.

Настройка кодека DivX

Настройка кодека DivX достаточно подробно описана в статье "DivX: особенности сжатия видео в домашних условиях", так что здесь подробно останавливаться на этом вопросе мы не будем. В нашем случае DivX настраивается для простого однопроходного кодирования. Нас, в первую очередь, интересуют два параметра — битрейт (bitrate) и интервал между ключевыми кадрами (keyframe interval, он же размер GOP).

Выбирать битрейт желательно достаточно большим, не менее, чем в исходном видео. Но и больше 4000 Кбит/сек тоже указывать не стоит, иначе DVD-плеер может не справиться с таким потоком (4000 Кбит/сек — это максимальное значение битрейта для профайла DivX Home Theater, которого "придерживается" большинство DVD-MPEG4 плееров).

Чего точно не следует делать — это ставить низкий битрейт для сокращения размера конечного ролика. Поскольку большая часть видео останется без перекодирования, то много места сэкономить не удастся, а вот скачкообразные ухудшения качества на перекодированных участках будут гарантированы.

Размер GOP (интервал между ключевыми кадрами) в данном случае почти не важен — можно оставить значение кодека по умолчанию (300 кадров), а можно выбрать 15 или 30 кадров — на результате это скажется не очень сильно.

Проверка работы и дополнительная настройка видеоредакторов Ulead

Различные видеоредакторы Ulead уже неоднократно рассматривались в разделе Цифровое видео iXBT.COM: "Ulead VideoStudio Pro 8", "Ulead VideoStudio 9", "Ulead MediaStudio Pro 8", "Ulead VideoStudio 11 Plus". В данном случае подойдет любой из них. Главное, чтобы видеоредактор был правильно настроен для работы с MPEG4 ASP видеозаписью.

В первую очередь, нам нужно проверить, будет ли редактор передавать без перекодирования "нетронутые" участки видео. Дело в том, что разновидностей программ Ulead существует значительно больше, чем их официальных названий. Например, Ulead VideoStudio существует и как самостоятельный продукт, продаваемый отдельно, и как "бесплатное приложение", поставляемое вместе с видеокамерой или другой видеотехникой. В результате, варианты одной и той же версии программы Ulead VideoStudio, приобретенные в составе разных пакетов, могут отличаться друг от друга в таких "мелочах", как способность оставлять неперекодированные участки видео.

В настройках проекта Ulead в качестве выходного формата обязательно указываем контейнер AVI, кодек DivX5 (даже если в системе присутствуют другие MPEG-4 кодеки) и формат аудио MP3 (для того, чтобы звук воспроизводился на DVD-MPEG-4 плейере). Также проверяем соответствие частоты кадров (Frame rate) и размера кадра (Frame size) "входному" формату (иначе прямопотоковое копирование не будет работать). Входные параметры видео можно узнать, посмотрев File Info в VirtualDub (см. ниже) или в MP4Cam2AVI.

Здесь же стоит настроить или проверить настройки кодека DivX (кнопка "Configure").

   
Примечание. В случае, если в системе установлено несколько MPEG-4 кодеков, они могут конфликтовать друг с другом (например, если помимо DivX5, установлены еще XviD, FFDShow, или какой-нибудь Codecpack (что чаще всего бывает источником проблем). Для корректной работы нам нужно, чтобы наш файл обрабатывался именно кодеком DivX5, а не каким либо другим. Это можно проверить, например, так — откройте файл в VirtualDub и посмотрите FileInfo:

Если там указан кодек DivX5, значит, все в порядке. В противном случае переустановите кодек DivX5. Если и это не помогло, удалите все MPEG-4 кодеки (включая DivX5), и заново установите DivX5. Для проверки можно еще раз открыть файл в VirtualDub.

Теперь нам нужно проверить, будет ли Ulead с кодеком DivX передавать нетронутые участки видео "как есть", без перекодирования. Сделать это можно несколькими способами.

  • Самый простой (но и самый ненадежный) способ — по скорости обработки видео. Если при экспорте проекта обработка идет местами намного быстрее real-time, а местами резко замедляется, то все нормально. Если же обработка идет с почти постоянной невысокой скоростью, то скорее всего перекодируется весь материал. Такой способ контроля не очень надежен, зато не требует перенастройки кодека, и его удобно использовать для контроля работы уже настроенной программы. При первой настройке лучше использовать один двух из следующих способов;
  • Как уже было сказано выше, в MPEG4 фотовидеокамерах обычно используется GOP фиксированной длины, — 10, 15 или 30 кадров. Если в настройках DivX5 мы укажем большое значение GOP (например, оставим значение по умолчанию 300), то перекодированные участки будет легко обнаружить по интервалу между ключевыми кадрами. Итак, открываем полученный AVI файл в VirtualDub:

C помощью сочетаний клавиш <Shift>+<Arrow-Left> и <Shift>+<Arrow-Right> перемещаемся только по ключевым кадрам, индикация текущей позиции отображается в специальном окне внизу справа. Если перемотка идет строго через 10, 15 или 30 кадров (в зависимости от камеры, которой проводилась съемка), то, скорее всего эти фрагменты остались нетронутыми. Если же интервалы между кадрами оказались отличными от указанных, то весьма вероятно, данный эпизод фильма подвергся перекодированию.

Однако, наиболее наглядным и абсолютно достоверным, хотя и немного более трудоемким, является следующий способ:

  • Как мы уже говорили ранее, при кодировании битрейт желательно выбирать довольно большим, не менее, чем у исходного видео. Если битрейт выбран недостаточным, то на перекодированных отрезках будут весьма заметные артефакты от пересжатия. Вот на это свойстве и основана данная проверка. Если для проверки (только для проверки!) выбрать очень маленький битрейт, то после обработки, при просмотре, перекодированные места можно будет легко увидеть визуально — по невысокому качеству видео. Таким образом, если при просмотре ролика на всей его длине видны характерные артефакты, то весь ролик оказался перекодирован. Если же низкокачественные фрагменты перемежевываются качественными, то перекодирована была только часть видеоматериала. Главное — после проверки вернуть выбранные ранее настройки кодека с высоким битрейтом, и собственно рабочее кодирование проводить уже с ними.

Если в результате проверки выяснилось, что перекодируются лишь фрагменты, подвергнувшиеся изменениям, значит все в порядке. Но что делать, если имеющаяся версия видеоредактора Ulead упорно перекодирует весь видеоматериал?

Существует решение и для такого случая. Участником форума IXBT.COM Курносовым aka vvkv был выделен ключ реестра, отвечающий за то, будет ли программа Ulead перекодировать необработанные участки видео, или оставлять их без изменений.

Например, для Ulead VideoStudio 8.0 в ветке системного реестра (видно, что название ветки реестра фактически содержит название программы и номер версии):

HKEY_CURRENT_USER\Software\Ulead Systems\Ulead VideoStudio\8.0\VIO\AVI\
имеется параметр DWORD (типа REG_DWORD): DTR_DivX= 0x00000000

С указанным значением ключа программа работает с перекодированием необработанных участков видео, но, если значение ключа "DTR_DivX" поменять с "0" на "1", то не подвергавшиеся воздействию фильтров участки видео останутся неперекодированными. Если в какой-то версии программы Ulead указанная запись DTR_DivX отсутствует вообще, то ее нужно создать в соответствующей ветке реестра*, и присвоить ей значение "1". Вот и всё!

* Примечание. Редактирование реестра Windows осуществляется с помощью программы regedit. Если вы незнакомы с этим процессом, лучше сначала потратьте время на "теорию". В противном случае, некорректная правка реестра может привести к очень серьезным проблемам с Windows. Краткое описание программы regedit можно посмотреть в начале статьи "Настройка программных HCF/HSF модемов на чипах Conexant".

Участниками форума IXBT.COM успешно была проведена проверка этого приема для различных версий программ Ulead VideoStudio. В принципе, такая правка реестра должна работать и с Ulead MediaStudio, нужно только найти соответствующую ветку реестра (ее название зависит от версии программы), и "разобраться" с требуемым ключом.

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

Что касается непосредственно процесса монтажа, здесь нужно сделать еще одно весьма важное замечание.

При работе с DV или MJPEG записями перекодирование будет производиться в любом случае, и мы никак не ограничиваем себя применением видеофильтров. При этом, какой-то видеофильтр вполне может быть применен хоть ко всему фильму. При работе с MPEG4 видеозаписями такой подход приведет к тому, что весь фильм будет перекодирован, чего, в общем-то, хотелось бы избежать.

Например, если мы сделаем красивые переходы между эпизодами, это вполне приемлемо — длительность переходов относительно невелика, да и потеря качества на переходах не так заметна. Теперь допустим, что мы захотели слегка подкорректировать баланс белого на одном из эпизодов. Если эпизод короткий и коррекция необходима, то это вполне приемлемо. А вот если мы будем делать это со всем фильмом, то в итоге получится полное перекодирование, и все наши "пляски с бубном" вокруг Ulead и DivX теряют свой смысл. Поэтому, фильтры здесь стоит применять максимально выборочно — только там, где это действительно необходимо.

Отметим также, что в данном случае мы можем монтировать видеофрагменты не только по ключевым кадрам, но и с точностью до одного кадра. При этом будет перекодирована только та GOP, которую мы "подрезали".

Итак, сформулируем примерный алгоритм работы с MPEG4 видео с использованием нелинейного монтажа. Если продолжить нумерацию, начатую в предыдущей статье, это будет уже…

ЧЕТВЕРТЫЙ ПУТЬ: нелинейный монтаж MPEG-4 ASP видео без перекодирования "нетронутых" участков.

ШАГ 1. Предварительная обработка в MP4Cam2AVI

С помощью программы MP4Cam2AVI подготавливаем видеоролики, перепаковываем их из контейнера MP4 или MOV в AVI , звук при этом перекодируем в PCM. Это уже было подробно описано в статье "Обработка видеозаписей MPEG4 фотовидеокамер. Этапы от камеры до DVD плеера шаг за шагом" (ВТОРОЙ ПУТЬ), поэтому здесь приводим только основные настройки MP4Cam2AVI:

1.1. На панели слева выбираем каталог с исходными роликами и указывает их тип (MP4, MOV или AVI);
1.2. Action: Batch Convert (Many -> Many AVI);

Примечание: в новых версиях MP4Cam2AVI появился довольно наглядный режим TimeLineMode (о нем мы расскажем чуть ниже). При его использовании предварительное "шитье" может оказаться удобнее производить на данном этапе, а не на 3.1, в этом случае следует включить Many->OneAVI.

1.3. Video format: Source video;
1.4. Audio format: PCM (uncompressed);
1.5. Target directory: указываем каталог для целевых AVI файлов.

Затем выбираем необходимые файлы, нажимаем кнопку "Start", в результате в целевой каталоге появятся перепакованные файлы с теми же именами, но с расширением AVI.

ШАГ 2. Настройка программ и кодеков:

2.1. Настройка кодека DivX:
  • Выбираем однопроходное кодирование (1-pass encoding);
  • Битрейт (bitrate), для видео 640x480 30 fps — от 2000 до 4000 Кбит/сек;
  • Размер GOP (keyframe interval) — ставим 15 или 30 (как у исходного видео) или оставляем значение по умолчанию — 300;

2.2. Редактирование реестра (regedit):

  • Добавляем/редактируем ключ реестра DTR_DivX;

2.3. В Ulead Video Studio настраиваем параметры выходного файла:

  • формат файла (контейнер) — AVI;
  • видео кодек — DivX5 (настройки кодека — см. 1.1);
  • аудио кодек — MP3 (для того, чтобы звук был "понятен" DVD-MPEG4 плейерам);
  • частота кадров (frame rate) и размер кадра (frame size), соответствующие "входному" видео;

2.4. Проверяем, передает ли видеоредактор нетронутые участки видео без перекодирования:

  • Импортируем в Ulead полученные на шаге 1 AVI ролики;
  • Если все нормально, переходим к шагу 3, в противном случае возвращаемся к 2.1 — 2.3 и подбираем настройки;

ШАГ 3. Монтаж в программе Ulead VideoStudio/MediaStudio

3.1. Импортируем в видеоредактор полученные на шаге 1 AVI ролики и выполняем окончательную "отделку" фильма — производим "кройку и шитье", накладываем переходы, применяем необходимые фильтры. Поскольку такой метод работы с видео ориентирован на достаточно опытного пользователя, уже хорошо знакомого с видеоредактированием, более подробно расписывать алгоритм работы мы здесь не будем;

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

3.2. Экспортируем результат:

  • Перед этим еще раз проверяем настройки проекта Ulead (см. выше 2.3);

ШАГ 4. Запись полученного файла на CD/DVD диск

После шага 3 на выходе мы получаем готовый DivX-совместимый "фильм" в AVI контейнере, который можно записывать на CD или DVD диск. Сделать это можно, например, с помощью программ Nero Burning ROM или Nero Express (на вопрос "Что вы хотите записать?" нужно ответить "Диск с данными"):

Полученный диск можно просматривать на DVD плейерах с поддержкой MPEG-4 ASP (DivX/XviD).

Новые возможности программы MP4Cam2AVI

Теперь вернемся почти к самому началу предыдущей статьи — программе MP4Cam2AVI.

Дело в том, что программа MP4Cam2AVI, созданная одним из авторов этой статьи Олегом Михеевым для обработки видеозаписей MPEG4, очень существенно изменилась за прошедшие два года, у нее появились новые возможности, и старое ее описание уже сильно устарело. Поскольку работа с программой была весьма подробно расписана в предыдущей статье, здесь мы уделим основное внимание лишь ее новым возможностям.

Обновленная программа "научилась" работать не только с MP4 и MOV контейнерами, но и с AVI (некоторые фотовидеокамеры с MPEG4 ASP видеозаписью) и с 3GP (мобильные телефоны). Правда, при работе с последним типом файлов программа не умеет обрабатывать звук, о чем она честно предупреждает при начале работы с такими файлами:

Теперь у программы появилось два режима работы, связанные с существенным различием интерфейса:

1) Привычный File List Mode, примерно соответствующий интерфейсу
 старой версии программы (с обновлениями, обусловленными появлением
 новых возможностей):

2) Новый TimeLine Mode — режим, пока не вышедший из стадии Beta, но уже достаточно удобный, чтобы пользоваться именно им, несмотря на некоторые его шероховатости.

В режиме File List Mode выбор исходных файлов производится из списка файлов с помощью левой кнопкой мыши (с использованием Shift и Ctrl, т.е. стандартным для Windows способом), а изменение последовательности "склеивания" в целевом AVI файле — с помощью изменения префикса файла. Данные действия были подробно расписаны в предыдущей статье, так что здесь мы на этом не будем останавливаться. Отметим лишь, что данный режим является не очень наглядным, поскольку не видно "содержимое" всех обрабатываемых файлов. Хотя в новых версиях программы есть возможность предварительного просмотра видео в окне Preview, там виден лишь один файл, а остальные файлы надо держать в уме. Да и менять последовательность обрабатываемых файлов через префиксы все-таки не очень удобно.

В новом режиме TimeLine Mode файлы, с которыми будут производиться дальнейшие действия, выбираются простановкой "птички" рядом с именем файла с помощью клавиши "пробела" на клавиатуре, или левой кнопкой мышки. Такие файлы также можно выбирать "перетаскиванием" имени файла из списка файлов на окно time line для их добавления, или из окна time line в список файлов для удаления. Если нужно поменять их порядок следования файлов на time line, то достаточно перетащить картинку с изображением файла на новое место между двумя другими файлами. Поскольку на таком режиме групповое добавление невозможно, каждый файл приходится добавлять отдельно, однако наглядность отображения и легкость изменения их порядка следования роликов может перевесить данное неудобство.

Наглядность этого режима делает текущую версию программы близкой по удобству работы к "полноценным" видеоредакторам, так что некоторые операции, которые раньше мы выполняли в них, теперь можно делать и в MP4Cam2AVI.

Программа по мере своего развития постепенно приобретала все новые и новые возможности, интерфейс становился все более перегруженным, и она могла уже стать слишком сложной для первоначального освоения неподготовленным пользователем. Чтобы избежать этого, в интерфейс было введено три режима работы: Beginner, Advanced и Expert

Режим Beginner рассчитан на начинающих пользователей, или на тех пользователей, которым достаточно простой "кройки и шитья" файлов, снятых одной камерой. На этом режиме можно только перепаковать исходные файлы в несколько или один целевой AVI файл, оставляя звук неизменным или перекодируя его в PCM или MP3. Дополнительные настройки обработки звука и видео недоступны.

При включении режима Advanced в окне программы появляется кнопка Advanced Options в окружении "птичек", определяющих режим использования этих опций.

Окно Advanced Options содержит дополнительные настройки для обработки звука (audio options), а также некоторые технические настройки. Дополнительная обработка звука (фильтр нижних частот, громкость) работает только в режимах PCM или MP3 и недоступна в режиме Source Audio.

Наконец, переходим к режиму Expert. Здесь появляется еще одна опция — Video Format. Теперь появляется возможность перекодировать видео в формат XviD MPEG-4 ASP (c помощью библиотеки xvidcore.dll).

Основное назначение этой функции — перекодирование "традиционных" фотоаппаратных MJPEG роликов для просмотра на DVD-MPEG4 плейерах. Дело в том, что если такой ролик обработать в режиме Source video, полученный AVI файл также будет содержать MJPEG видео, а DVD-MPEG4 плейеры этот формат не понимают.

Несмотря на "грозное" название Expert, данный режим довольно прост в использовании. Конечно, относительно ;-) , (например, в сравнении с настройкой "самостоятельных" MPEG4 ASP кодеков, таких как DivX или XviD). Возможно, что действительным экспертам в области кодирования видео даже станет несколько обидно за некоторую девальвацию этого слова в данном контексте.

Но не будем придираться к слову, а посмотрим, что скрывается за ним. Видно, что пользователь может или оставить видео без перекодирования, выбрав режим Source Video (как это делается в режимах Beginner и Advanced), или выбрать одну из настроек кодирования видео в XviD MPEG4. Из самого названия режимов кодирования можно догадаться, что они различаются уровнем качества и напрямую связанного с ним размером конечного файла.

Поскольку данные настройки рассчитаны на пользователей, которые, как минимум, имеют достаточно хорошее представление о настройках MPEG4 кодеков, мы лишь коротко укажем, что режим Best Quality соответствует настройке "отдельно стоящего" кодека XviD в режиме с постоянной квантизацией 2 (теоретический предел для данного кодека), а режим Lowest Quality — этому же кодеку с постоянной квантизацией 16 (весьма посредственное качество).

Режимы High, Normal, Average и Low соответственно используют квантизацию 4, 6, 8 и 12.

Длина GOP при этом будет от 15 до 90 кадров, в зависимости от режима.
При желании подробно рассмотреть, какие настройки включаются на том или ином режиме кодирования видео, можно открыть окно Advanced Options, в котором теперь появляется блок настроек "XviD encoding options":

Под серенькими "птичками" видны настройки, активные в выбранном режиме работы. Параметры Q-Pel и GMC не задействуются ни в одной из типовых настроек, поскольку данные опции не попадают в профайл MPEG4 HTP (Home Theatre Profile) — "подвид" ASP, на который ориентированы современные DVD MPEG4 плееры. При желании можно воспользоваться и ими, для этого достаточно включить режим "DivX User Configurable", и они станут доступны. Такая настройка предназначена для настоящих экспертов, которые хорошо знают, о чем тут идет речь, остальным же лучше не экспериментировать (иначе можно понастраивать такого, что никакой DVD-MPEG4 проигрыватель не потянет).

Здесь же мы видим еще две птички.

Нижняя из них, "Resize to 320x240" предназначена для создания видеофайлов для просмотра на КПК и других мобильных устройствах, которые могут просто не потянуть воспроизведение файла с разрешением 640x480. Данная опция пока еще находится в состоянии Beta, поэтому могут быть проблемы с ее работой.

На птичке "Enable MPEG4 Recompression" остановимся подробнее. Как мы уже подчеркивали, повторное перекодирование MPEG4 видео крайне нежелательно, его по возможности необходимо избегать. Именно поэтому настройки, связанные с перекодированием видео, были спрятаны в режим Expert. Помимо этого, мы ввели дополнительную птичку "Enable MPEG4 Recompression", без которой процесс повторного кодирования MPEG-4 ASP не запустится, будет выдано предупреждение:

Это даже не только и не столько "защита от дурака", сколько дополнительная подстраховка для всех пользователей. Отмеченная птичка сбрасывается при следующем запуске программы, и, таким образом, исключается ситуация, когда по ошибке или по забывчивости MPEG-4 видеоролик будут повторно перекодирован. Для того, кому действительно надо перекодировать MPEG-4 видеоролик (например, для изменения размера кадра до 320x240), установку лишней птички мы считаем минимальным неудобством.

Также отметим — несмотря на то, что в программу встроен кодек XviD, в заголовке целевого AVI файла указывается код FourCC "DX50" (которым обычно "подписывается" кодек DivX5). Строго говоря, значение FourCC в заголовке обычно бывает непринципиально, и многие MPEG4 ASP кодеки умеют подписываться "чужим" FourCC, но… В нашем случае, для коррекной работы видеоредактора Ulead c кодеком DivX5 (для корректной передачи неперекодированного видео) только код FourCC "DX50" является рабочим.

Если пользователя по каким-то причинам такая запись не устраивает, можно изменить ее, войдя в Settings и далее в "MP4 Track ID -> AVI Four CC Mapping"

Здесь в колонке "Video type" указаны типы поддерживаемых кодеков, в колонке "Acceptable FourCC’s" — соответствующие допустимые значения FourCC, а в колонке "AVI FourCC" — то значение FourCC, которое будет указываться для данного кодека в целевом файле.

Если при обработке был ошибочно выбран не тот FourCC, который нужен Вам (например, он "не понравился" видеоредактору Ulead) — не беда. Программа умеет практически мгновенно менять FourCC AVI видеофайлов, не перекодируя, и даже не перепаковывая их. Для этого достаточно переключиться в режим File List Mode, перейти в режим работы с AVI файлами, выбрать целевой (а не исходный, как во всех остальных случаях) AVI файл и нажать кнопку "Avi4cc…"

В появившемся окне выбрать требуемый FourCC и нажать OK. Вот и все! Заголовок файла уже изменен, окно закрывается, даже кнопку Start в основном окне программы нажимать не нужно.

Некоторые продвинутые читатели наверное уже обратили внимание, что в окне "MP4 Track ID -> AVI Four CC Mapping" помимо MJPEG и MPEG4-ASP указан еще и MPEG4-AVC. Неужели программа умеет работать и с видеофайлами MPEG4 Advanced Video Codec? Да, это так — версия программы, вышедшая буквально накануне выхода статьи, научилась делать и это. Правда, сейчас она может только перепаковывать файлы, оставляя видео нетронутым, а при попытке включить перекодирование выдается предупреждение,

в окне просмотра оказывается "Черный квадрат" Малевича с извинениями, а на TimeLine наоборот — "Белый квадрат" того же автора.

Но в остальном программа работает, склеивает и перепаковывает видео MPEG4 AVC из контейнеров MP4 или MOV в контейнер AVI.

"Но позвольте!" — скажет еще более продвинутый читатель. "Это же неправильно! MPEG4 AVC не положено укладывать в AVI контейнер! Это не по уставу!". Программа согласится и с такой точкой зрения (безусловно правильной), и после нажатия Start выведет на экран сообщение об этом, а также все, что она думает по этому поводу

ну а потом ... продолжит выполнение работы :-)

Так зачем же было нужно включать в программу такую "антинаучную" возможность?

Во-первых, некоторые видеоредакторы не хотят или не умеют работать ни с какими MP4 или MOV видеофайлами, и в то же время с AVI файлами, даже содержащими "неправильную" начинку, работать соглашаются. Помимо этого, некоторые из них работают с "привычным" контейнером AVI намного быстрее, чем с новыми для них MP4 и MOV.

Во-вторых, технически это оказалось намного проще, чем "учить" программу паковать MPEG-4 AVC в "правильные" для данного формата контейнеры MP4 или MOV. Ну и в конце концов, как уже не раз говорилось в этой статье "Если нельзя, но очень хочется, то можно". Если такая возможность есть, то возможно, она кому-нибудь и пригодится.

Главное, чтобы в системе был установлен соответствующий MPEG-4 AVC кодек, в качестве которого может подойти например бесплатный VFW кодек FFDShow последних версий (более ранние версии могут работать с MPEG-4 AVC некорректно).

Конечно, крайне желательно оставлять исходные MP4 или MOV файлы с MPEG4 AVC где-нибудь на HDD или DVD+/-RW — вдруг когда-нибудь потребуется обработать их в "родном" контейнере (к тому же, перепаковать в обратную сторону, из AVI в MOV/MP4, будет уже проблематично). Строго говоря, это замечание распространяется и на MPEG4 ASP видеоролики, но для них это не так критично, поскольку контейнер AVI поддерживается всеми видеоредакторами.

Наверное, у некоторых возник еще один вопрос: зачем в программе MP4Cam2AVI, специально "заточенной" под работу с фотовидеокамерными видеороликами, введена поддержка MPEG-4 AVC, ведь фотовидеокамеры сохраняют видео в MPEG-4 ASP?. С недавних пор это уже не так. Безусловно, большинство фотовидеокамер продолжают работать с MPEG-4 ASP, но уже появились образцы, записывающие MPEG-4 AVC видео. Можно назвать, например, уже появившиеся в продаже Sanyo Xacti CG65, Sanyo Xacti E1 (waterproof), Casio Excilim Hi-Zoom EX-V7, есть и еще несколько анонсов.

Из MPEG-4 AVC видеороликов уже нельзя получить DivX-совместимый фильм без перекодирования, и с их обработкой может возникнуть гораздо больше проблем, чем с MPEG-4 ASP видеороликами. Однако данный вопрос заслуживает отдельного разговора, так что закончим и эту статью так же, как и предыдущую, цитатой из книги А. и Б. Стругацких "... но это уже совсем другая история".

To Be Continued...

 

Авторы выражают особую благодарность Курносову aka vvkv
за предложение по правке реестра,
а также Андрею Гущину aka celta (Испания),
и многим другим участникам Конференции iXBT.COM
за помощь при подготовке материала

 

[Все статьи в разделе «Цифровое Видео»]





Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.