Не секрет, что при оцифровке видео на компьютере, размер получаемых файлов просто громаден. Имеется ввиду случай, когда Вы подаете видео-сигнал на TV-IN Вашей видео-карты и осуществляете захват видео-сигнала. Не сжатый файл видео-изображения занимает около 450Мб/мин. Естественно, хранить такие объемы нерационально. Помочь нам в этом призваны программные кодеры видео в стандарт MPEG1. Т.е. они кодируют файлы *.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". После всего этого ограничения должны быть устпешно сняты.:)
Данная прогамма кодер позволяет вместе с изображением запаковывать в один цифровой поток и звук в рамках стандарта MPEG1. Необходимо лишь указать место расположения аудио и видео файлов на диске, задать имя и адрес конечного файла, настроить параметры кодека и нажать "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 на экране 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".
Я эту методику расчета придумал сам, поэтому полной гарантии в ее правильности дать не могу:), однако, на практике пропорции изображения удалось сохранить. Если же смотреть полученный файл на мониторе, то картинка отображается сжатой, поэтому повторяю - добавление черных полос я применяю только по той причине, что смотрю фильм на экране TV через карту MPEF1/2 decoder Hollywood Plus, которая растягивает изображение на весь экран в случае, если не применять дополнительные меры.
Теперь скажу пару слов о том, как можно примерно расчитать максимальную скорость для цифрового потока с тем, чтобы каждая часть фильма уместилась бы на подложке CD-R. Во-первых, я использую подложки емкостью 700Мб, чтобы выжать все по-максимуму. Программа для расчета - калькулятор "mAdMaX", но поскольку он изначально не предназначен для нашего случая, то расчетное значение скорости цифрового потока для видео необходимо уменьшить в 1,17раза (значение получено эксперементальным путем:)), т.е. для нашего случая с фильмом "Глубокое синее море" - это 1760кбит/сек (здесь необходимо помнить, что программа кодера работает только со значениями, кратными 16-ти).
Можно проверить объем получаемого файла следующим образом: кодировать, скажем, 1/20-ю часть фильма и умножив на 20 полученный объем отрывка сравнить его с емкостью подложки. Если он превышает значение 700Мб, значит велика вероятность того, что придется перекодировать фильм заново:), следовательно, скорость потока необходимо несколько уменьшить. Вот, собственно говоря, пока и все.