Кодирование VCD/SVCD совместимых файлов.

          На тот момент, когда я задумался о записи (S)VCD коллекции, DivX были наиболее доступные для меня исходники. Взял я три серии любимого "Простоквашино", запихал в Nero, который обещал все сам перекодировать, и... получил полную гадость. Попробовал предварительно закодировать в LSX кодере - картинка лучше, а на звуке рассинхрон. Вспомнил мудрые слова - "Если все перепробовал, но так ничего и не получается - прочти инструкцию". Стал искать в Инете. Накачал кучу всяких программулин, обещавших сделать все автоматом, описания методов кодирования. Но заметного улучшения качества так и не получил, только захламил компьютер и чуть не свихнулся, разбираясь в тонких настройках всяких IBI фреймов. Вернее приемлемые результаты по качеству были, но то, что "универсальные" программы могли порезать фильм на полуслове, мне сразу не понравилось. Понял я, что без мощного видеоредактора мне не обойтись. Выбор тогда напрашивался сам собой – Adobe Premiere + Panasonic MPEG или bbMPEG (про Canopus я тогда даже и не слышал). Изматерившись по поводу постоянно зависающего Премьера и "бесплатного" качества bbMPEG я начал соглашаться с умными людьми, что из DivXа ничего путного не получить. Но тут помог Его Величество - случай. Понадобился мне новый Sound Forge (пятый на тот момент). Попросил я знакомого Админа, с быстрым Интернетом, скачать его, ну и кое-что еще с того же сайта. Выбирать ему было лень и он скачал ВСЕ, в том числе и новую версию Vegas. С восторгом обнаружив, что эта многоканальная звуковая монтажка превратилась в солидный видеоредактор, мало требовательный к ресурсам, да еще со встроенным MPEG кодером, я сразу начал пробовать его возможности. О чудо! С картинки исчезла зернистость, а цветовые пятна на почти одноцветных тонах приобрели мягкие границы. При этом четкость изображения практически не ухудшилась. Попробовал в качестве исходника "Иронию судьбы" в Windows Media формате. Vegas и тут справился, правда с не столь блестящим, но "удобоваримым" результатом. Собственно о том, что это Windows Media, я и узнал благодаря Вегасу, - на диске лежал .vob, на обложке написано MPEG4, ну я и переименовал его в .avi, а потом удивлялся - почему результат кодирования со стробоскопическим эффектом и ужасным рассинхроном. И только Vegas опознал эту АВИшку как Windows Media. В конечном итоге, по мере выявления тех или иных ошибок, я выработал простую и надежную технологию. Но, прежде чем приступить к ее описанию, еще небольшое отступление.
Есть еще программные кодеры, способные дать на выходе высокое качество: Canopus ProCoder, CCE и TMPGEnc. Основная проблема в том, что они только кодеры, но не редакторы видео и звука. А чаще всего предварительно требуется именно монтаж (хотябы для того, чтобы правильно отмасштабировать исходное изображение, добавить в конце фрагмента затухания и надпись "Вставьте следующий диск"). Можно, конечно просчитывать в промежуточный формат или передавать данные через фреймсервер, но это потери качества и\или времени.


          После запуска Vegas нужно выставить настройки проекта. Что будет на выходе - PAL или NTSC, зависит от исходных параметров видео, а настройки проекта лучше сразу привести к выходному формату, это позволит в окне Preview видеть уже конечное качество (разумеется, за исключением артефактов кодирования).
Если параметры настроек проекта под VCD уже забиты в программу, то для SVCD эти настройки придется сделать вручную (единожды и сохранить).



Применив настройки проекта нужно правым щелчком на окне Video Preview проверить, чтобы был отмечен пункт Simulate Device Aspect Ratio. Это нужно, чтобы изображение при просмотре во время монтажа имело те же пропорции, что и потом на телеэкране.

          Несколько слов о загрузке исходников в проект:
Если используется материал с DVD c последующим пережатием 5.1 звука в обычное стерео, то на таймлайн Vegas можно класть сразу .VOB файл (или смультиплексированный из .m2v и .ас3 файл .mpg) - Vegas (с версии 6.0с) сам сконвертирует 5.1 в стерео.
Если используются материал DivX подобных форматов (за исключением Nero Digital .mp4), то ОБЯЗАТЕЛЬНО!!! исходник нужно предварительно разделить на составляющие видео и звуковые потоки и укладывать их на таймлайн Vegas раздельно, а уже здесь сгруппировать (выделить видео и звук удерживая Ctrl, правым щелчком на выделении выбрать Group>Create New). Иначе в процессе кодирования могут появляться пропуски в виде черных кадров и другие ошибки (это из-за того, что МР3 звук в таких исходниках редко соответствует стандарту .avi контейнера).

          Настройки для кодирования (Render As... > MainConceptMPEG) уже прописаны для VCD и SVCD. При кодировании в VCD менять ничего не стоит - можно получить несовместимый файл. А вот в SVCD чаще даже нужно - параметр Average (bps). Уменьшив его до 1 600 000 (ниже не стоит) и bit rate на закладке Audio до 128 kbps, можно уместить до 65 минут вполне приемлемого качества на 700Mb "болванке". Понижение Average (bps) до 2 000 000 видимого ухудшения качества почти не дает (на 54см телевизоре), а позволяет уместить около 50 минут фильма. Соответственно при стандартных настройках 43 минуты на 700Mb (80 минут). Все настройки можно один раз проверить опытным путем и сделать свои предустановки на будущее, только не забудьте, что реально в (S)VCD на диск умещается файл, как на Audio CD - 800Mb на 80минутный диск.
Не забудьте, что Aspect Ratio у VCD/SVCD может быть только 4:3!
Кодер Vegas, в принципе, качественно справляется с кодированием при стандартных настройках в один проход (по умолчанию). Если мы уменьшаем значение Average, то следует установить двухпроходное кодирование (доступно начиная с Vegas 5.0). Также на закладке Advanced Video есть параметр Allow Field Based Motion Compensation – этот параметр имеет смысл установить при кодировании Progressive материала в Interlaced SVCD (за счет более точной прорисовки полей добавится улучшенное сглаживание движений).
На закладке System нужно поставить галочку "Save as separate elementary streams", тогда на выходе получим не программный *.mpg, а элементарные *.m2v (MPEG2video) и *.mpa (MPEG audio).
Объясню причину: почему-то *.mpg, закодированный практически во всех кодерах не совсем корректно воспринимается программами авторинга SVCD, это выражается в том, что воспроизведение отдельного фрагмента (целого файла, а не его эпизодов) на стационарном плеере заканчивается на несколько секунд раньше.
Корректно (в большинстве случаев) воспринимается только *.mpg смультиплексированный из элементарных потоков в TMPGEncoder Plus

          Итак, запускаем программу, переходим в меню File > MPEG Tools, на закладку Multiplex, нажимаем Add и выбираем подготовленные MPEG аудио и видео потоки. Потоки в итоговом файле будут располагаться также, как они отображены сверху вниз. Поменять местами звуковые потоки можно простым перетаскиванием «мышкой». Затем выбираем Type – соответствующий нашей задаче, указываем название и размещение результирующего файла и жмем Run.

          Вспомним, что в SVCD мы можем иметь два звуковых потока, суммарный bit rate которых НЕ ДОЛЖЕН !!! превышать 384 kbps (например 2х192 kbps MPEG Stereo или 1х384 MPEG 5.1). Правда при этом потоке и максимальном качестве видео 80 минутный диск уместит около 40 минут фильма, а не 43. В проекте Vegas можно разложить на таймлайн звук сразу для обоих потоков, только перед просчетом НЕ ЗАБЫТЬ отключить все дорожки с исходными составляющими второго аудио потока (нажать "MUTE" для каждой дорожки). А при кодировке отдельно второго звукового потока, включить только его (например, кнопкой "SOLO"), а в настройке Main Concept на закладке Video еще и убрать галочку "Include video stream". Так же поступаем и при использовании MPEG 5.1 – просчитываем отдельно видеопоток, а затем отдельно звук в АС3 (для последующей его кодировки в MPEG Multichannel).

          КСТАТИ! ПРОВЕРЕНО! Хоть процесс кодирования в Vegas нельзя приостановить, но легко можно отправить компьютер в «спящий режим» (если нужно уйти, а оставлять компьютер включенным нельзя), после выхода из которого, кодирование продолжится и никаких ошибок в готовом файле не будет.