<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF93%3AMEncoder</id>
		<title>LXF93:MEncoder - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF93%3AMEncoder"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF93:MEncoder&amp;action=history"/>
		<updated>2026-05-13T23:34:13Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF93:MEncoder&amp;diff=5608&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF93:MEncoder&amp;diff=5608&amp;oldid=prev"/>
				<updated>2008-11-26T05:02:55Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Учебники]]&lt;br /&gt;
&lt;br /&gt;
=MEncoder: ужимаем видео=&lt;br /&gt;
&lt;br /&gt;
:Цифровой видеопоток может быть сжат различными алгоритмами или не сжат вовсе. Всё это влияет как на размеры видеофайла, так и на качество изображения. Найти золотую середину между двумя крайностями поможет '''Евгений Гаврилов'''.&lt;br /&gt;
&lt;br /&gt;
== ==&lt;br /&gt;
Унекоторых читателей, вероятно, уже возник вопрос: «А зачем кодировать видео? Ведь это потеря качества!». Ну, во-первых,&lt;br /&gt;
потеря качества бывает и незначительной, а при использовании&lt;br /&gt;
фильтров возможно даже некоторое улучшение изображения, зато&lt;br /&gt;
размер файла сокращается в разы. К тому же, стандартные сжатые&lt;br /&gt;
AVI-файлы гораздо проще передавать через Интернет. Вы же не хотите,&lt;br /&gt;
чтобы ваши родственники и друзья умерли в ожидании загрузки DVD-&lt;br /&gt;
диска объемом 4,5 ГБ с записью вашего новорожденного ребенка?&lt;br /&gt;
Тогда читайте дальше!&lt;br /&gt;
&lt;br /&gt;
===Форматы и кодеки===&lt;br /&gt;
&lt;br /&gt;
На сегодняшний день существует множество кодеков (т.е. способов&lt;br /&gt;
сжать видеопоток), и форматов (средств упаковки сжатых данных в&lt;br /&gt;
файл вместе с сопутствующей информацией). Вездесущая корпорация Microsoft призывает к использованию формата WMV (Windows&lt;br /&gt;
Media Video), так как он (по ее мнению) значительно лучше некогда ею&lt;br /&gt;
же созданного контейнера AVI *1. Многочисленные пользователи, тем&lt;br /&gt;
не менее, пока не собираются переходить на новый формат. Мы же&lt;br /&gt;
не будем пользоваться и AVI, а обратим свое внимание на OGM (''Ogg Media'', или ''Ogg Media File''). Он позволяет без проблем хранить звук, сжатый кодеком ''Vorbis''.&lt;br /&gt;
&lt;br /&gt;
Отметим, что ''Ogg'' – это контейнер, а ''Vorbis'' – алгоритм сжатия.&lt;br /&gt;
Говоря «Ogg Vorbis», обычно подразумевают файл-контейнер ''Ogg'',&lt;br /&gt;
звук в котором сжат при помощи ''Vorbis''. Далее, для краткости, мы&lt;br /&gt;
будем использовать «''Ogg''» вместо «''Ogg Vorbis''». Что же касается OGM,&lt;br /&gt;
то он возник как развитие контейнера ''Ogg'' и позволяет хранить данные, сжатые видео- и звуковыми кодеками, которых на сегодняшний&lt;br /&gt;
день существует не меньше, чем различных форматов контейнеров.&lt;br /&gt;
Наиболее популярными являются: ''Xvid'' и ''DivX'' для видео, ''Vorbis'' и&lt;br /&gt;
''MP3'' – для аудио. Все эти форматы сегодня в равной степени поддерживаются аппаратно (в бытовой технике), кроме разве что ''Ogg Vorbis'',&lt;br /&gt;
который покамест понимается весьма ограниченным набором «реальных» проигрывателей. Кроме того, редкий аппаратный плейер умеет&lt;br /&gt;
работать с контейнером OGM.&lt;br /&gt;
&lt;br /&gt;
Мы остановим свой выбор на ''Xvid'' и ''Vorbis''. Причин этому несколько. Во-первых, оба кодека распространяются по лицензии GPL. Во-вторых, если ''Xvid'' и ''DivX'' еще могут посоревноваться за пальму&lt;br /&gt;
первенства по качеству получаемого видео, то со звуком ситуация&lt;br /&gt;
проще. ''Vorbis'' разрабатывался несколько позже ''MP3'', что дало ему&lt;br /&gt;
определенные преимущества: разработчики смогли учесть те моменты,&lt;br /&gt;
которые не были приняты во внимание при создании ''MP3''. К тому же,&lt;br /&gt;
''Vorbis'' использует другую психоакустическую модель, обеспечивающую более высокое качество.&lt;br /&gt;
&lt;br /&gt;
===Кодировщики===&lt;br /&gt;
&lt;br /&gt;
Для работы с видеофайлами нам понадобится ''MPlayer'', в состав которого входит отличный кодировщик ''mencoder''. Для него существует&lt;br /&gt;
множество графических оболочек, но использовать их я бы не советовал: удобный интерфейс редко включает все доступные опции, а в&lt;br /&gt;
результате вы теряете контроль над процессом.&lt;br /&gt;
&lt;br /&gt;
Перед установкой самого ''MPlayer'' необходимо проинсталлировать&lt;br /&gt;
кодеки ''Xvid'' и ''Vorbis'' – обычно они находятся в пакете ''essentail-codecs''.&lt;br /&gt;
Не забудьте добавить путь к ним в файл '''/etc/ld.so.conf''' и указать их&lt;br /&gt;
каталог опцией '''--with-codecsdir=DIR''' при сборке ''MPlayer'' (если вы&lt;br /&gt;
хотите получить стандартный графический интерфейс к ''MPlayer'', не&lt;br /&gt;
забудьте также ключ '''--enable-gui'''). После выполнения ''configure'', внимательно посмотрите отчет о кодеках, поддерживаемых ''MPlayer'' в вашей&lt;br /&gt;
системе.&lt;br /&gt;
&lt;br /&gt;
===Что кодировать?===&lt;br /&gt;
&lt;br /&gt;
Перекодирование можно осуществлять между любыми двумя форматами, при условии, что они поддерживаются ''MPlayer''. Однако, в&lt;br /&gt;
большинстве случаев исходным форматом является '''MPEG-2''' (этот&lt;br /&gt;
способ сжатия используется в DVD), а выходным – '''MPEG-4''' (например, ''Xvid''). Сформулируем стоящую перед нами задачу следующим образом: необходимо перекодировать DVD (видеозапись хранится в&lt;br /&gt;
файлах '''video1.vob, video2.vob''') в AVI. Вам все понятно? Тогда приступим к решению!&lt;br /&gt;
&lt;br /&gt;
Вначале для удобства работы объединим два VOB-файла в один:&lt;br /&gt;
&lt;br /&gt;
 $ cat video1.vob video2.vob|mencoder - -oac copy -ovc copy -o video.vob -ffourcc MPEG-2&lt;br /&gt;
&lt;br /&gt;
Мы «сливаем» '''video[1-2].vob''' простой ''cat'' и затем копируем их&lt;br /&gt;
аудио- ('''-oac copy''') и видеопотоки ('''-ovc copy''') с помощью ''mencoder''.&lt;br /&gt;
Для того, чтобы полученный файл можно было просмотреть не только в ''MPlayer'', рекомендуется сделать запись об используемом кодеке в заголовке файла: для этого применяется опция '''-ffourcc'''. Но поскольку&lt;br /&gt;
наш файл '''video.vob''' является промежуточным, это не так уж важно.&lt;br /&gt;
На данном этапе из фильма можно также «вырезать» определенные&lt;br /&gt;
моменты, воспользовавшись опциями '''-ss &amp;lt;первый кадр&amp;gt;''' и '''-endpos &amp;lt;продолжительность или размер&amp;gt;'''. Продолжительность задается в стандартном формате '''[[hh:]mm:]ss[.ms]''', а размер – в байтах ('''b'''), килобайтах ('''kb''') или мегабайтах ('''mb''').&lt;br /&gt;
&lt;br /&gt;
==Шаг 1: Звук==&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы получили объемный, но единый файл, можно приступать к первой фазе – извлечению аудиодорожки и сжатию ее в ''Ogg''.&lt;br /&gt;
Преобразование аудиопотока из одного сжатого формата в другой&lt;br /&gt;
напрямую невозможно, хотя некоторые программы и утверждают, что&lt;br /&gt;
умеют делать это. На самом деле, «за кулисами» звук преобразуется в&lt;br /&gt;
несжатый формат '''PCM – Pulse-coding modulation''' – а затем обрабатывается выходным кодеком. Мы пойдем тем же путем. Чтобы извлечь PCM-аудиопоток из файла '''video.vob''', можно выполнить следующую&lt;br /&gt;
команду:&lt;br /&gt;
&lt;br /&gt;
 $ mplayer video.vob -ao pcm:fast:file=track.wav -vo null&lt;br /&gt;
&lt;br /&gt;
Фактически, мы воспроизводим полученный файл в ''MPlayer'', однако, для вывода звука и изображения используются не совсем стандартные устройства. Звуковой драйвер указывается опцией '''-ao'''. Здесь&lt;br /&gt;
мы выбрали '''PCM''' с сохранением в файл '''track.wav''' (вместо отправки на&lt;br /&gt;
привычные колонки), а опция '''fast''' позволила нам сделать это «быстро» (т.е. не в режиме реального времени воспроизведения фильма).&lt;br /&gt;
Параметр '''-vo null''' задает нуль-устройство для вывода изображения, т.е.&lt;br /&gt;
отсекает ненужное на данном этапе видео.&lt;br /&gt;
&lt;br /&gt;
Полученный звук можно закодировать с помощью утилиты ''Oggenc'',&lt;br /&gt;
входящей в пакет ''Vorbis''.&lt;br /&gt;
&lt;br /&gt;
 #oggenc track.wav -q 3 -o track.ogg&lt;br /&gt;
&lt;br /&gt;
Параметр '''-q 3''' задает уровень качества. Номинальный битрейт&lt;br /&gt;
составляет 112 кбит/с, средний – 88 кбит/с. Не пугайтесь низких значений – вспомните, что ''Vorbis'' использует психоакустическую модель,&lt;br /&gt;
отличную от применяемой в ''MP3'', поэтому «эффективный» битрейт&lt;br /&gt;
составляет около 128 кбит/с. При всем этом ''Ogg'' занимает меньше места, так что при желании можно поднять качество и до 4.&lt;br /&gt;
&lt;br /&gt;
Закодированный звук сохраняется в файле '''track.ogg'''. Прослушайте&lt;br /&gt;
его, и если результат вас устраивает, освободите место на диске, удалив файл '''track.wav'''.&lt;br /&gt;
&lt;br /&gt;
==Шаг 2: Видео==&lt;br /&gt;
&lt;br /&gt;
Теперь приступим к обработке, а точнее – к кодированию видео c&lt;br /&gt;
помощью ''mencoder''. Одним из главных параметров здесь является&lt;br /&gt;
все тот же битрейт. Если вам неважен размер конечного файла, то&lt;br /&gt;
все определяется требуемым качеством: при битрейте 800 кбит/с картинка выглядит вполне приемлемо. Если же нужно получить файл&lt;br /&gt;
определенных размеров, то следует воспользоваться специальным&lt;br /&gt;
калькулятором, встроенным в различные графические оболочки.&lt;br /&gt;
Впрочем, все вычисления можно произвести прямо в командной&lt;br /&gt;
строке – главное знать математику на уровне 6 класса и ''Bash'' (или что&lt;br /&gt;
там вы выбрали, прочитав наше [[LXF93:Сравнение|Сравнение]]?) на уровне продви-&lt;br /&gt;
нутого пользователя. Настоящие эстеты могут воспользоваться ''bc''. В&lt;br /&gt;
общем, формула такова:&lt;br /&gt;
&lt;br /&gt;
 Mb=(length_min*60*bps/8)/1024&lt;br /&gt;
&lt;br /&gt;
или, в Bash-нотации:&lt;br /&gt;
&lt;br /&gt;
 echo «$[($length_min*60*$bps/8)/1024] Mb required»&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Скорая помощь&lt;br /&gt;
|Содержание=Чтобы просто оценить результаты работы ''mencoder'', не обязательно дожидаться окончания кодирования. Нажмите &lt;br /&gt;
'''Ctrl+C''' и вы сможете быстро просмотреть получившийся отрывок.&lt;br /&gt;
|Ширина=200px&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Мы переводим длину фильма (в минутах) в секунды и умножаем на&lt;br /&gt;
битрейт, деленный на 8, поскольку он измеряется в килобитах. Поделив&lt;br /&gt;
результат на 1024, имеем количество мегабайт, которое будет занимать&lt;br /&gt;
наш фильм. Заметьте, мы говорим только о видео. Не забывайте добавить к полученному числу размер аудиопотока.&lt;br /&gt;
&lt;br /&gt;
Из данной формулы легко получить еще одну – для подсчета битрейта, обеспечивающего требуемый размер ролика:&lt;br /&gt;
&lt;br /&gt;
 bps=(Mb*1024)/length_min/60*8&lt;br /&gt;
&lt;br /&gt;
Полезно оценить порядки этих величин. Допустим, фильм идет&lt;br /&gt;
90 минут и мы хотим записать его на стандартный CD-R емкостью&lt;br /&gt;
700 МБ. Размер звуковой дорожки – 100 МБ. Набрав в консоли:&lt;br /&gt;
&lt;br /&gt;
 #echo $[600*1024/90/60*8]&lt;br /&gt;
&lt;br /&gt;
получаем ответ: 904 кбит/с. Теперь можно приступать к кодированию:&lt;br /&gt;
&lt;br /&gt;
 $ mencoder video.vob -oac copy -ovc xvid -xvidencopts bitrate=904 -o video.avi -ffourcc xvid -forceidx&lt;br /&gt;
&lt;br /&gt;
Требуемый кодек (''Xvid'') указывается опцией '''-ovc''' (option video codec), а параметр '''-xvidencopts''' определяет его настройки. В данном&lt;br /&gt;
случае мы выбираем битрейт 904 кбит/с. Звук покамест оставим без&lt;br /&gt;
изменения – ''mencoder'' с трудом справляется с мультиплексированием (т.е. сведением нескольких потоков данных в один) видео и звука ''Vorbis'' в контейнер AVI.&lt;br /&gt;
&lt;br /&gt;
На данном этапе можно также применить один или несколько&lt;br /&gt;
фильтров: обрезать поля, изменить соотношение сторон, выполнить&lt;br /&gt;
деинтерлейсинг и т.п. Полный список фильтров, поддерживаемых&lt;br /&gt;
''mencoder'', выводится командой&lt;br /&gt;
&lt;br /&gt;
 # mencoder -vf help&lt;br /&gt;
&lt;br /&gt;
а подробную информацию о каком-то фильтре дает команда&lt;br /&gt;
&lt;br /&gt;
 # mencoder -vf &amp;lt;filter&amp;gt;=help&lt;br /&gt;
&lt;br /&gt;
Черные поля вокруг кадра лучше удалить сразу. Они неплохо сжимаются (в смысле размера файла), но все же они занимают драгоценное место на носителе – да и выглядят неопрятно. Для этих целей служит фильтр crop, который принимает в качестве параметров ширину и высоту конечной картинки. Например, в предыдущую команду можно&lt;br /&gt;
добавить:&lt;br /&gt;
&lt;br /&gt;
 # mencoder ... -o video.vob -vf crop=640:400 ...&lt;br /&gt;
&lt;br /&gt;
Троеточие обозначает опущенные (совпадающие) опции. Вы также&lt;br /&gt;
можете переложить всю «черную работу» на фильтр автоокадрирования '''cropdetect''':&lt;br /&gt;
&lt;br /&gt;
 # mencoder ... -o video.vob -vf cropdetect ...&lt;br /&gt;
&lt;br /&gt;
Если же вы хотите отмасштабировать изображение (уменьшить&lt;br /&gt;
или увеличить размер картинки), на помощь придет фильтр '''scale'''. Его&lt;br /&gt;
вызов таков:&lt;br /&gt;
&lt;br /&gt;
 -vf scale=w:h&lt;br /&gt;
&lt;br /&gt;
Здесь '''w''' и '''h''' – новые ширина и высота изображения. Имейте в виду,&lt;br /&gt;
что фильтры передают обрабатываемое изображение «по цепочке», и&lt;br /&gt;
порядок их следования в ней имеет значение.&lt;br /&gt;
&lt;br /&gt;
Чтобы после кодирования изображение не было приплюснуто или&lt;br /&gt;
растянуто и наши люди не получились яйцеголовыми, следует воспользоваться опцией '''-xvidencopts aspect=&amp;lt;aspect&amp;gt;'''. В качестве параметра '''&amp;lt;aspect&amp;gt;''' можно указать соотношение сторон в виде дроби (4/3)&lt;br /&gt;
или числа с плавающей точкой. Для его автоматического определения&lt;br /&gt;
используется параметр '''autoaspect''', а для указания соотношения в контейнере AVI – опция ''mencoder'' '''--force-avi-aspect &amp;lt;0.2-3.0&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим изученные выше фильтры и опции на примере.&lt;br /&gt;
Допустим, размер изображения составляет 640х480, а черные «поля»&lt;br /&gt;
имеют ширину 20 пикселей. Мы обрежем их, растянем изображение до&lt;br /&gt;
720 пикселей в ширину и установим соотношение сторон равным 16/9.&lt;br /&gt;
С учетом всех этих требований, командная строка будет выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
 # mencoder video.vob -vf crop=600:480,scale=720 -oac copy -ovc xvid -&lt;br /&gt;
 xvidencopts bitrate=904:aspect=16/9 -o video.avi -ffourcc xvid -forceidx&lt;br /&gt;
&lt;br /&gt;
Пользоваться '''-xvidencopts autoaspect''' после масштабирования и&lt;br /&gt;
кадрирования бессмысленно – программа, скорее всего, ошибется.&lt;br /&gt;
&lt;br /&gt;
==Шаг 3: Мультиплексирование==&lt;br /&gt;
&lt;br /&gt;
Итак, мы имеем звуковую дорожку в отдельном файле ''Ogg Vorbis'',&lt;br /&gt;
а также обработанное должным образом видео в контейнере AVI.&lt;br /&gt;
Остался последний этап – мультиплексирование. Как мы и договаривались в начале статьи, сводить звук и видео мы будем в контейнере OGM. Для этих целей мы воспользуемся пакетом ''ogmtools'', а именно,&lt;br /&gt;
утилитой ''ogmmerge'', назначение которой вполне понятно из ее названия. В качестве параметров ''ogmmerge'' принимает имена входных и выходного файлов.&lt;br /&gt;
&lt;br /&gt;
 # ogmmerge -o final.ogm -A video.avi track.ogg&lt;br /&gt;
&lt;br /&gt;
После объединения двух потоков будет получен OGM-файл, который можно без проблем воспроизводить практически в любой программе. Опция '''-A''' отбрасывает аудиопоток, сохраненный в контейнере&lt;br /&gt;
'''video.avi'''. Теперь самое время опубликовать файл '''final.ogm''' в Сети или&lt;br /&gt;
его записать на чистый компакт-диск и раздать друзьям. Если вам&lt;br /&gt;
удастся заснять что-то стоящее, не забудьте поделиться ссылочкой и с&lt;br /&gt;
нами ([mailto:letters@linuxformat.ru letters@linuxformat.ru])! '''LXF'''&lt;br /&gt;
&lt;br /&gt;
==Альтернатива:==&lt;br /&gt;
===FFmpeg===&lt;br /&gt;
&lt;br /&gt;
''FFmpeg'' – это законченное решение для записи, преобразования и воспроизведения аудио- и видеоконтента. В его основе лежит библиотека мультимедиа-кодеков, известная как ''libavcodec''. Большинство из входящих в нее кодеков было разработано с нуля, чтобы обеспечить лучшую производительность.&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы использовать какой-либо MPEG4-совместимый кодек&lt;br /&gt;
из числа предлагаемых ''libavcodec'' совместно с ''mencoder'', необходимо указать соответствующее семейство опцией '''-ovc lavc''' и задать параметры кодирования ключом '''-lavcopts''':&lt;br /&gt;
&lt;br /&gt;
 # mencoder VTS01.VOB -o home.avi -ovc lavc -lavcopts vcodec=xvid:vbitrate=900&lt;br /&gt;
&lt;br /&gt;
Здесь мы выбрали кодек ''Xvid'' и установили битрейт равным 900 кбит/сек. Остальные подробности можно найти по адресу: http://ffmpeg.mplayerhq.hu/.&lt;br /&gt;
&lt;br /&gt;
===x264===&lt;br /&gt;
&lt;br /&gt;
''x264'' – это свободная библиотека для кодирования видеопотоков&lt;br /&gt;
'''H264/AVC'''. Для того, чтобы ''mencoder'' мог использовать ''x264'', его, скорее всего, придется пересобрать. Конечно, предварительно нужно установить сам ''x264''. Контейнеры AVI и OGG/OGM не могут вмещать в&lt;br /&gt;
себя потоки '''H264/AVC''', поэтому для них лучше использовать '''mp4 (Mpeg4)''' либо '''mkv (Matroska)'''.&lt;br /&gt;
&lt;br /&gt;
Для мультиплексирования выходного файла можно воспользоваться&lt;br /&gt;
услугами библиотеки ''libavformat (-of lavf)'', определяющей формат файла&lt;br /&gt;
по расширению, или же задать его вручную опцией format:&lt;br /&gt;
&lt;br /&gt;
 # mencoder VTS01.vob -o home.mp4 -of lavf -ovc x264&lt;br /&gt;
&lt;br /&gt;
В мире IT всегда приходится выбирать между памятью (качеством) и&lt;br /&gt;
временем выполнения. Кодек ''x264'' обеспечивает качественное изображение и высокую степень сжатия, но работает очень медленно. Имейте это в виду, если только у вас не современный двухядерный процессор.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>