Конвертируем AVI в MPEG-1


Не секрет, что при оцифровке видео на компьютере, размер получаемых файлов просто громаден. Имеется ввиду случай, когда Вы подаете видео-сигнал на TV-IN Вашей видео-карты и осуществляете захват видео-сигнала. Не сжатый файл видео-изображения занимает около 450Мб/мин. Естественно, хранить такие объемы нерационально. Помочь нам в этом призваны программные кодеры видео в стандарт MPEG-1. Т.е. они кодируют файлы *.avi в файлы *.mpg, существенно уменьшая объем места, необходимого для их хранения. Кроме того, существует возможность одновременного кодирования и звука. Т.е. из двух раздельных файлов *.avi и *.wav можно получить один *.mpg в котором изображение и звук будут закодированы в одном цифровом потоке. Если же несжатый звук изначально находится в одном потоке с видео, то программа кодер также "видит" его и обрабатывает в дальнейшем.

Здесь рассмотрен случай использования программы Panasonic MPEG1 Encoder. Официальная страница, на которой выкладываются последние версии, находится здесь. На текущий момент выложена версия 2.51, однако, на нее пока нет патча. С версией 2.3, представленной здесь все в прорядке. Пока предлагаю использовать ее.

Итак, вот список необходимого софта для перекодировки:

Panasonic MPEG1 Encoder Software Ver.2.3 Trial это сама программа кодер *.avi в *.mpg. После того, как Вы скачаете дистрибутив - инсталлируйте ее, принимая предлагаемое по умолчанию место установки. Программа изначально идет как Trial version и имеет ограничение работы 30 дней. Кроме того, при обработке файла кодируются только первые 30сек. фильма, да еще и отображается в самом низу экрана при просмотре черная полоска с логотипом Panasonic MPEG1 Encoder. Помочь нам снять все это безобразие призван патч. Распакуйте его в ту же папку, где находится установленный кодер Encoder 2.0. Нажмите дважды на файл Panasonic MpgEnc 2.30 Crack, а потом на кнопку Apply Patch. После всего этого ограничения должны быть устпешно сняты.:)

Программа Panasonic MPEG1 Encoder

Данная прогамма кодер позволяет вместе с изображением запаковывать в один цифровой поток и звук в рамках стандарта MPEG-1. Необходимо лишь указать место расположения аудио и видео файлов на диске, задать имя и адрес конечного файла, настроить параметры кодека и нажать Start Encoding. Настройки программы достаточно доступны для самостоятельного освоения. Рекомендую лишь поупражняться с небольшими по объему файлами, чтобы не ждать долго результатов, т.к. процесс достаточно продолжителен даже на быстрых машинах.

При выборе опции Anvanced Settings Вы получаете доступ к некоторым настройкам кодека. О том, что представляет собой опция GOP Sequence можно почитать здесь.

Дополнительные настройки кодека

Обратите внимание на то обстоятельство, что при выборе Type: VCD/NTSC Stream (*.mpg) или Type: VCD/PAL Stream (*.mpg) большинство настроек фиксировано по умолчанию и превысить некоторые значения нельзя. Большую свободу выбора дает выбор опции Type: MPEG1 System (*.mpg). здесь Вы можете варьировать в широких пределах. Закономерность тут линейная - чем выше значения цифрового потока, тем выше качество получаемого изображения. На личном опыте могу сказать, что уже начиная с величины 1600-1700kbits/sek(video), разрешении 480x320 и 128kbits/sec(audio) получается достойная картинка. Практически отсутствует мозаичность изображения на тяжелых участках фильма (динамичные сцены, резкая смена панорамы и т.д.), резкость изображения, в свою очередь, несколько выше чем у обычного VideoCD.

В случае, если Вы решили использовать данный метод для перекодировки фильма, записанного по алгоритму DivX ;-) - осуществить это можно только после соответствующей подготовки исходного файла. Что имеется ввиду? Звук должен быть не компрессированным, в исходном же файле он сжат либо в MP3, либо с помощью DivX ;-) Audio codec. Следовательно, звук необходимо сначала вывести в несжатом виде наряду с прямым копированием потока видео в промежуточный файл. От исходного файла промежуточный будет отличаться тем, что звук будет не сжат. Естественно и объем файла увеличится. Вся эта процедура осуществляется в программе VirtualDub. По-опыту могу сказать, что синхронизация звука и изображения при перекодировке сохраняется.

Опишу подробнее эу процедуру на примере фильма "Глубокое синее море", продолжительностью 99мин. Задача следующая - конвертировать фильм с диска в стандарте MPEG-4 в поток MPEG-1 и записать его на две подложки CD-R с максимальным для данного объема качеством. Для чего поставлена такая задача - для того, чтобы иметь возможность смотреть фильма через аппаратный MPEG1/2 decoder Hollywood Plus (или подобный) на экране TV.

Последовательность телодвижений тут следующая:

Аналогичным образом выводится и вторая часть фильма, с той разницей, что в поле Start offset уже необходимо поставить значение фрейма, находящегося в середине фильма, т.е. "71112", а в поле Lenght - продолжительность отрывка, расчитав ее следующим образом - 142224-71112=71112. В нашем случае, поскольку мы делим фильм на две равные части, то продолжительность отрывка совпадает со значением стартового фрейма.

Установка начального фрейма для отрезка и его продолжительности

В результате мы получим две равные части фильма, обозначим их условно DeepSea-part-I.avi и DeepSea-part-II.avi. После этого открываем программу Panasonic MPEG1 Encoder и по описаной в начале страницы методике конвертируем каждую часть отдельно в поток MPEG-1. Надо сказать, что на моей машине P-II/450MHz/128 эта процедура заняла около 10-ти часов на каждую часть фильма. Можно конечно было бы использовать другую программу, например LSX-MPEG Encoder и сократить время на кодирование, но есть определенная причина, которая заставила использовать именно кодер "Panasonic MPEG1 Encoder" и вот какая - сохнанить формат изображения 16:9 при перекодировке DivX ;-) в MPEG-1 и просмотре полученного файла через аппаратный MPEG1/2 decoder на экране TV, на текущий момент удается только в программе Panasonic MPEG1 Encoder. Для этого необходимо выбрать настройку Special Processing=>Crop Processing=>Add Black и указать в окошках Cropping Size Top: и Bottom: количество пикселей, в которых задается ширина черных полос сверху и снизу изображения. Методика расчета количества пикселей следующая: допустим фильм имеет разрешение 640x304. Размер экрана стандартного телевизора имеет пропорцию 4:3, т.е. коэффициент соотношения - 1.3(3). Далее, делим 640 на этот коэффициент и получаем 480 пикселей. Т.е. если бы картинка имела по горизонтали 480 пикселей, то она шла бы в формате 4:3 без геометрических искажений. Однако, поскольку исходная картинка имеет 304 пикселя, то надо довести это значение до 480-ти добавлением черных полос равной ширины сверху и снизу. Отсюда получаем (480-304)/2=88 пикселей. Т.е. в полях Top: и Bottom: прописываем именно эти полученные цифры, т.е. "88".

Установка ширины черных полос сверху и снизу изображения

Я эту методику расчета придумал сам, поэтому полной гарантии в ее правильности дать не могу:), однако, на практике пропорции изображения удалось сохранить. Если же смотреть полученный файл на мониторе, то картинка отображается сжатой, поэтому повторяю - добавление черных полос необходимо применять только в случае, если планируется использовать для просмотра аппаратный MPEG1/2 decoder, иначе, изображение будет растянуто на весь экран...

Теперь скажу пару слов о том, как можно примерно расчитать максимальную скорость для цифрового потока с тем, чтобы каждая часть фильма уместилась бы на подложке CD-R. Учитывая то, что скорость потока звука и видео будут практически постоянными - можно расчитать объем получаемого файла по следующей формуле: video bitrate(kBit/sec) = 8 * CD-R(Mb) * 1024 / t(sec) - audio bitrate(kBit/sec).

Здесь необходимо вставить значение объема матрицы (650 или 700) и значение выбранной скорости аудио-потока, тогда мы получим искомое значение для видео-потока в кБит/сек. Затем его нужно будет округлить до значения, кратного 16-ти (это условие требуется программой).

Для нашего случая с фильмом Глубокое синее море, получим 1776кБит/сек при объеме матрицы 700Мб, длительности части фильма 50мин(3000сек) и скорости аудио-потока 128кБит/сек.

Hosted by uCoz