- Несов Артем: Okay, so what do you need for this translation, besides a miracle?
- Selena: Dictionaries. Lots of dictionaries.
7. Кодирование с помощью MEncoder.
Полный список доступных параметров и примеров применения MENCODER смотрите
в man page. Ряд жизненных примеров использования параметров в командной строке
и детальные руководства по использованию нескольких перекодировочных параметров
- читайте в encoding-tips, собранном из нескольких
листов рассылки
пользователей mplayer. Обсуждение всех аспектов применения и проблем, связанных
с кодированием с помощью MEncoder, можно найти в архиве.
7.1 Кодирование MPEG-4 ("DivX") в 2 или 3 прохода.
Кодирование в 2 прохода: название происходит оттого, что при
этом методе файл кодируется дважды. При первом кодировании (предварительный
проход) создаётся несколько временных файлов (*.log) с размером в несколько
мегабайт, не стоит удалять их пока (вы можете удалить AVI). При втором проходе
конечный файл двойного прохода создаётся с использованием данных битрейта
временных файлов. В результате качество картинки в конечном файле будет намного
лучшим. Если вы впервые сталкиваетесь с этим, вам следовало бы обратиться к
руководствам, доступным в сети.
В данном примере показано, как
перекодировать DVD в MPEG-4 ("DIVX") AVI в 2 прохода. Для этого потребуются
только две команды:
rm frameno.avi - удаление файла, который мог
остаться от предыдущего кодирования в три прохода. mencoder -dvd 2 -ovc
lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi mencoder -dvd 2
-ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
Кодирование в 3 прохода: это расширенный вариант кодирования в 2
прохода, при котором кодирование звука происходит отдельно. Этот метод
позволяет оценить битрейт удобный для записи видео на CD. В отличии от
кодирования в 2 прохода звук кодируется только один раз. Схема использования:
Создаётся звуковой avi-файл, содержащий
только требуемую звуковую дорожку. Не забудьте -lameopts, если вам необходимо
установить параметры кодека. Если вы кодировали длинный фильм, MEncoder выведет
рекомендуемые значения битрейта для получения конечного файла требуемых
размеров (650 Мб, 700 Мб, 800 Мб), после этого проход завершается.
Это второй проход кодирования видео. Если вы не знаете, что делать, укажите
тот же битрейт, что и в предыдущем проходе. При этом проходе звук из frameno.avi
будет добавлен в конечный файл.. вот и всё!
Пример кодирования в 3 прохода:
rm frameno.avi - удаление файла, который
мог остаться от предыдущего кодирования в три прохода.
mencoder -dvd 2 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
7.2 Перекодирование в формат MPEG
MEncoder может создавать файлы формата MPEG (MPEG-PS). Это может быть
возможным лишь с кодеком mpeg1video из libavcodec, потому что большинство
проигрывателей - исключая MPlayer - воспринимают только MPEG1 видео, и
звуковые дорожки MPEG1 layer 2 (MP2) в файлах MPEG.
Перекодирование в MPEG с помощью кодека mpeg1video может показаться совершенно
ненужным, к тому же реализованным, возможно, со множеством ошибок, но оно
важнее, чем кажется, потому что MEncoder на данный момент не может кодировать
звук в MPEG1 layer 2 (MP2), который другие проигрыватели ожидают увидеть в
MPEG.
Чтобы изменить формат конечного файла MEncoder, используйте опцию
-of mpeg.
Часто возникает потребность в изменении размера изображения. На это может
быть множество причин: уменьшение размера файла и др. Многие люди прибегают к
перемасштабированию даже при преобразовании DVD или SVCD в DivX, что не
очень хорошо. Если вы всё же решили сделать это, прочитайте раздел Сохранение пропорций.
Процесс перемасштабирования
осуществляется с помощью 'scale' видео фильтра: -vop scale=width:height. Его
качество может устанавливаться с помощью опции -sws. Если она не установлена,
MEncoder будет использовать 0: fast bilinear.
MEncoder может поступать с исходными дорожками двумя путями: перекодировать
или копировать их. Этот раздел о копировании.
Видео дорожка (опция -ovc copy): можно много чего сделать :)
Так, например, можно вставить (без перекодирования) FLI или VIVO или MPEG1
видео в AVI файл. Конечно, только MPlayer сможет проигрывать такие файлы :)
И это, вероятно, не будет ни какой пользы. Есть и рациональное применение:
копирование видео дорожки может быть полезным, например, когда нужно
перекодировать только звуковую дорожку (например, несжатый PCM в MP3).
Аудио дорожка (опция -oac copy): очень просто. Можно взять внешний
аудио файл (MP3, Vorbis) и смешать его со звуковой дорожкой. Используйте для
этого опцию -audiofile <filename>.
7.5 Исправление AVI файлов с испорченными заголовками или interleaving
Проще простого. Мы просто копируем видео и аудио дорожки, а MEncoder
генерирует заголовок. Конечно, это не может устранить возможные ошибки на
видео и/или аудио дорожках. Так же можно исправить файлы с испорченным
interleaving, таким образом опция -ni больше не требуется.
Примечание: При этом подразумевается, что в файлах 1.avi и 2.avi используются
одинаковые кодеки, разрешения, битрейт и т.д., и по крайней мере 1.avi не должен
быть повреждён. Может возникнуть потребность сперва исправить исходные AVI
файлы, как это описано выше.
7.6 Кодирование с помощью семейства кодеков libavcodec
libavcodec позволяет кодировать во множество интересных видео и аудио
форматов (на данный момент аудио кодеки не поддерживаются). Вы можете
использовать следующие кодеки:
mjpeg - Motion JPEG
h263 - H263
h263p - H263 Plus
mpeg4 - ISO standard MPEG-4 (DivX 5, XVID compatible)
msmpeg4 - pre-standard MPEG-4 variant by MS, v3 (aka DivX3)
msmpeg4v2 - pre-standard MPEG-4 by MS, v2 (используется в старых asf файлах)
wmv1 - Windows Media Video, version 1 (aka WMV7)
rv10 - старый RealVideo кодек
mpeg1video - MPEG1 video :)
huffyuv - сжатие без потерь
Первый столбец содержит название кодека, которое должно быть указано после
vcodec, как, например: -lavcopts vcodec=msmpeg4
7.7 Создание видео файла из нескольких файлов JPEGs, PNGs или TGAs
MEncoder способен создавать видео файлы из одного или более файлов JPEGs,
PNGs или TGAs. Простым копированием кадров создаются файлы MJPEG (Motion JPEG),
MPNG (Motion PNG) или MTGA (Motion TGA).
Процесс выглядит следующим
образом:
1. MEncoder декодирует исходное изображение с помощью libjpeg
(когда декодируется PNG, используется libpng). 2. Затем MEncoder отправляет
изображение в выбранный видео компрессор (DivX4, XviD, ffmpeg msmpeg4, и т.д
...).
Примеры:
Объяснение опции -mf вы можете найти на man page.
Создание файла DivX4 из всех файлов JPEG в текущей директории: mencoder -mf
on:w=800:h=600:fps=25 -ovc divx4 -o output.avi *.jpg
Создание файла DivX4
из некоторых файлов JPEG в текущей директории: mencoder -mf on:w=800:h=600:fps=25
-ovc divx4 -o output.avi frame001.jpg,frame002.jpg
Создание файла
Motion JPEG (MJPEG) из всех файлов JPEG в текущей директории: mencoder -mf
on:w=800:h=600:fps=25 -ovc copy -o output.avi *.jpg
Создание несжатого
видео файла из всех файлов PNG в текущей директории: mencoder -mf
on:w=800:h=600:fps=25:type=png -ovc rawrgb -o output.avi *.png
Примечание: Ширина должна быть целым числом, кратным 4, это ограничение формата
RAW RGB AVI.
Создание файла Motion PNG (MPNG) из всех файлов PNG в
текущей директории: mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy -o output.avi
*.png
Создание файла Motion TGA (MTGA) из всех файлов TGA в текущей
директории: mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy -o output.avi *.tga
7.8 Извлечение субтитров из DVD в файл Vobsub
MEncoder способен извлекать субтитры из DVD в файлы формата Vobsub. Они
сотоят из пары файлов с расширением .idx и .sub и обычно помещаются в единый
архив .rar. MPlayer может проигрывать субтитры с помощью опций -vobsub и - vobsubid.
Вы указываете названия конечных файлов (без расширения .idx или .sub) с помощью
-vobsubout и индекс субтитров в конечных файлах с помощью -vobsuboutindex.
Если исходный материал взят не с DVD вы должны использовать -ifo, чтобы
указать файл .ifo, необходимый для создания конечного файла .idx.
Если исходный материал взят не с DVD и у вас нет файла .ifo вам потребуется
опция -vobsubid, чтобы указать какой идентификатор языка помещается в
файл .idx.
Если файлы .idx и .sub уже существуют, то они будут
дописываться. Итак вы должны удалить эти файлы.
Файлы DVD и SVCD (т.е. MPEG1/2) содержат значения пропорций, описывающие,
как проигрыватели должны масштабировать видео данные, вот почему люди не
выглядят яйцеголовыми (пр.: 480x480 + 4:3 = 640x480). Однако вам следовало бы
знать, что при перекодировании в AVI (DivX) эти значения в его заголовках не
сохраняются. Перемасштабирование видео выходит отвратительным и занимает время,
должен быть иной путь!
И он есть.
MPEG4 обладает уникальным
свойством: в видео данных могут содержаться необходимые значения пропорций.
Да, так же как и файлы MPEG1/2 (DVD, SVCD). К сожалению, нет проигрывателей,
поддерживающих эти атрибуты. За исключением MPlayer.
Эта особенность
может быть использована только с кодеком libavcodec mpeg4. Имейте в виду: хотя
MPlayer и будет верно проигрывать созданный файл, другие проигрыватели будут
использовать неверные пропорции.
Вы должны обрезать чёрные полосы сверху
и снизу изображения. О фильтрах cropdetect и crop вы можете прочитать на man
page.