Mencoder описание

Page 1

MEncoder Содержание

• • • • • • • • • • • • • • • • •

MEncoder Описание Установка Сборка из исходников Основные ключи Примеры Полезные фильтры Примеры x264 (-x264encopts) Разбор опций Xvid (-xvidencopts) Разбор опций MP3 (-lameopts) Разбор опций lavc (-lavcopts) Шаблоны Ссылки

Описание MEncoder - это кросплатформенный инструменты для кодирования видео. Данная статья предназначена не для полного описания всех его возможностей, а только самых распространенных и часто используемых. Естественно что большинство графических кодировщиков могут делать тоже что и mencoder, но он дает преимущество при пакетном кодировании, или кодировании на серверах.

Установка Достаточно найти mencoder в Центре Приложений Ubuntu, или в Sinaptic, и установить. Можно и через консоль: sudo apt-get install mencoder

Сборка из исходников #Устанавливаем все зависимости sudo apt-get build-dep mencoder #Устанавливаем svn, для получения последней версии исходников sudo apt-get install svn #Качаем исходники svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mencoder #Переходим в папку с исходниками cd mencoder #Конфигурируем ./configure --disable-mplayer --prefix=/usr #Собираем make #Устанавливаем sudo make install


Основные ключи Ключ

Описание

-ovc help

Список всех доступных видео кодеков

-oac help

Список всех доступных аудио кодеков

-vf help

Список всех доступных аудио/видео фильтров

-of help

Список всех доступных выходных форматов

-ss <sec>

Начальное время кодирования

-endpos <sec>

Конечное время кодирования

-mc <sec>

Максимальная величина корректировки A-V синхронизации на один кадр

-noskip

Запрет на пропускание кадров. Помогает при рассинхроне

-novideo

Отключение видео

-nosound

Отключение звука

-nosub

Отключение субтитров

-ovc copy

Копирование видео (сохранение без изменений)

-oac copy

Копирование звука (сохранение без изменений)

-ofps <fps>

Количество кадров в секунду

-aid <ID>

Порядковый номер кодируемой аудиодорожки (по умолчанию 0)

-alang <language>

Язык кодируемой аудиодорожки (две буквы для DVD и три для MKV)

-sid <ID>

Порядковый номер субтитров

-slang <language>

Язык субтитров

-subcp <encoding>

Кодировка субтитров

Примеры •

Кодировать 60 секунд начиная с 100-й секунды: -ss 100 -endpos 60

Помогает при рассинхроне: -noskip -mc 0

Выбираем кодировку субтитров: -subcp cp1251

Полезные фильтры Фильтр

Описание

-vf <filter>=hel Получаем справку по фильтру (если она есть) p


crop=w:h:x: Обрезает изображение до указанного размера, отбрасывая остальное. y Начальная позиция обрезаемого изображения, по умолчанию, в центре scale=w:h

Масштабируем изображение

dsize=w:h

Задаем размер/пропорции отображаемого видео (не путать с размером кадра). Фильтр сам по себе ничего не делает, он всего лишь указывает как масштабировать дальше

rotate=0

Поворот на 90 градусов по часовой стрелке и отражение (по умолчанию)

rotate=1

Поворот на 90 градусов по часовой стрелке

rotate=2

Поворот на 90 градусов против часовой стрелки

rotate=3

Поворот на 90 градусов против часовой стрелки и отражение

flip

Зеркально отражаем изображение по вертикали

mirror

Зеркально отражаем изображение по горизонтали

harddup

Дублирующиеся кадры будут принудительно кодироваться на выходе. Необходим, если вы после кодирования планируете редактировать видеофайл. Следует размещать в самом конце списка фильтров

Примеры * фильтры разделяются запятой •

Масштабировать видео до 640pix по ширине: -vf dsize=640:-2,scale=640:-2

Обрезать видео, c шириной 720 и высотой 400: -vf crop=720:400:0:0

x264 (-x264encopts) Двухпроходное кодирование: #первый проход mencoder "your_movie" -ovc x264 -x264encopts pass=1:turbo:qp=22:threads=0:bframes=3 -nosound -o /dev/null #второй проход mencoder

"your_movie"

-ovc

x264

-x264encopts

pass=2:qp=22:subq=7:8x8dct:trellis=2:threads=0:frameref=3:bframes=3:weightb -oac lavc -lavcopts acodec=aac:abitrate=384 -o "movie_out.avi" * значение bframes должно совпадать для обоих проходов. Кодирование в один проход: mencoder

"your_movie"

-ovc

x264

crf=22:subq=7:8x8dct:trellis=2:threads=0:frameref=3:bframes=3:weightb

-x264encopts -oac

lavc

-lavcopts

acodec=aac:abitrate=384 -o "movie_out.avi" *предпочтительнее в большинстве случаев.

Разбор опций •

Устанавливаем средний битрейт. Чем выше - тем лучше качество (понятное дело что не выше исходного bitrate=<value>

); чем ниже - тем хуже. Нужно выбирать или битрейт, или квантователь.


Задаем качество макроблока, квантователь. По сути задаем качество выходного изображения. Где 0 оригинал, а любое значение выше - ухудшение качества. Полезные значения в районе 20-40. qp=<0-51>

Задействует режим постоянного качества и выбирает его уровень. Эта опция позволяет каждому кадру использовать собственный QP, основанный на сложности кадра. crf=<1-50> * необходимо использовать: или bitrate, или qp, или crf.

Номер прохода. В двухпроходном варианте 1-й проход собирает информацию о качестве видео; сильно нагружающие CPU опции можно убрать. -nosound -o /dev/null - игнорируем звук и выходной файл. Также применяют 3-х проходный вариант, но это в большинстве случаев бесполезно. pass=<1-2>

Ускорение первого прохода. Только при первом проходе, в двух и более проходном режиме! turbo

Этот параметр контролирует соотношение между качеством и скоростью вносимыми в процессе принятия решений об оценке движения. 1-5 - высокая скорость, худшее качество. 6-7 максимальное качество, долгое кодирование. Время кодирования с subq=7 может быть практически до 2-х раз дольше subq=1. Но при subq=1 ухудшение картинки очень заметно. subq=<1-7>

Разрешает умное использование преобразований 8×8 в I-кадре. Адаптивное 8×8 дискретное косинусное преобразование (DCT). 8x8dct

Полезно для динамичного видео, для по большей части статичного видео - бесполезна. Падение в скорости кодирование до 15%. partitions=all

Улучшает затухания и градиенты цвета (небо и т.п.). weightb

Треллис квантование для повышения эффективности сжатия. Вариант «на макроблоках» (1) - хороший компромисс между падением скорости и повышением эффективности. Лучше всего «везде» (2), но при условии совместной работы с psy-trellis, иначе происходит незначительное замыливание мелких деталей. На всех решениях скорость падает очень сильно. При равном 0 - отключено. Для мультипликации, аниме, скринкастов лучше выключить. trellis=<0-2>

Устанавливает максимальное число параллельных B-фреймов. Большое значение может привести к значительному улучшению эффективности степени сжатия. B-фреймы хранят данные об изменениях относительно прошлого кадра и разницы с будущим. Рекомендуемое значение: 2-5. Для анимэ можно и 6-12. bframes=<1-16>

Чем больше референсных кадров, тем медленнее кодирование. При 5-ти и более референсных кадров качество повышается незначительно. Для аниме, скринкастов и прочего «статичного» видео можно и больше. 4 - максимальное для видео для 1080p, и 9 - максимальное для 720p (следуя спецификациям level 4.1, для поддержка бытовой техники). frameref=<0-16>

Порождает потоки для параллельного кодирования на нескольких CPU (по умолчанию: 1). Имеет незначительный негативный эффект на качество сжатия. 0 или auto говорит x264 определить количество имеющихся у Вас CPU и подобрать соответствующее количество потоков.


threads=<0-4> •

Метод оценки движения полного пикселя. Рекомендуется использовать umh. me=<dia,hex,umh,esa>

Определяет максимальное количество попыток (с измененными данными) нахождения оптимального варианта при поиске вектора движения макроблока. Чем больше, тем лучше качество. me_range=<4-64>

Отключение

опции

предварительной

DCT

трансформации

сигнала

непосредственно

перед

кодированием. Лучше не включать эту опцию при кодировании в режиме постоянного качества CRF, так как серьезно увеличивается размер файла при незначительном улучшении видео. dct_decimate=<0,1> •

При кодировании изображение разбивается на блоки размерами 8х8 пикселей и каждый такой блок кодируется отдельно. При недостаточном битрейте, эти блоки становятся заметными. Включение данной опции поможет решить проблему. Рекомендуется использовать даже при высоких битрейтах (по умолчанию: 0,0). deblock=<-6..6>,<-6..6> * Опции включенные по умолчанию не описаны.

Xvid (-xvidencopts) Примеры: •

Кодирование с указанием битрейта: mencoder

"your_movie"

-ovc

chroma_opt:vhq=2:bvhq=1:quant_type=mpeg:bitrate=2000

xvid -oac

mp3lame

-xvidencopts -lameopts

cbr:br=192

-o

"movie_out.avi" •

Кодирование с указанием квантователя: mencoder

"your_movie"

-ovc

chroma_opt:vhq=2:bvhq=1:quant_type=mpeg:fixed_quant=3

xvid -oac

mp3lame

-xvidencopts -lameopts

cbr:br=192

-o

"movie_out.avi" * Двухпроходный Xvid все равно не даст тоже качество что у x264, так что для высококачественных рипов лучше выбрать именно x264.

Разбор опций •

Указываем проход в двухпроходном режиме. pass=<1-2>

Быстрый первый проход. turbo

Устанавливаем средний битрейт. Чем выше - тем лучше качество, чем ниже - тем хуже. Нужно выбирать или битрейт, или квантователь. Отрицательное значение соответствует размеру выходного файла в килобайтах. bitrate=<value>

Выбираем уровень квантования. Чем больше - тем ниже качество выходного видео. fixed_quant=<1-31>

Повышение качества, с понижением скорости кодирования. Алгоритм минимизирует эффект лестницы на границах цветов. chroma_opt

Устанавливаем используемый тип квантователя. При большем битрейте MPEG квантование сохранит больше деталей. Для низкого битрейта H.263 даст меньший блочный шум.


quant_type=<h263|mpeg> Эта опция влияет на алгоритм принятия решений о макроблоке, чем выше значение, тем точнее будут

решения. Значения 3-4 сильно понижают скорость. Если качество не особо важно, то лучше выбрать значение 0. vhq=<0-4> Тоже что и vhq, только для В-кадров. Имеет незначительное влияние на скорость и слегка улучшает

качество. bvhq=<0-1> Задаем количество потоков, для выполнения оценки движения (по умолчанию: 0). Максимальное

количество потоков, которые можно использовать, равно высоте изображения, деленной на 16. threads=<0-n>

MP3 (-lameopts) Пример: mencoder "your_movie" -ovc copy -oac mp3lame -lameopts cbr:br=192 -o "movie_out.avi"

Разбор опций •

Переменный битрейт. abr

Постоянный битрейт. cbr

Задаем битрейт(kbit/s). br=<32-320>

lavc (-lavcopts) Расширение возможностей mencoder за счет использования libavcodec кодеков. Основные преимущества: сохранение не только в avi, но также и в mkv, mp4; больший набор кодеков, по сравнению с оригинальным набором mencoder'а. Полный перечень. Пример: mencoder

"your_movie.avi"

-ovc

lavc

-oac

vcodec=msmpeg4v2:vbitrate=2000:acodec=aac:abitrate=256 -o "movie_out.avi" •

Аудио кодек. acodec=<value>

Кодек видео. vcodec=<value>

Количество потоков декодирования. threads=<1-8>

Битрейт аудио. abitrate=<value>

Битрейт видео. vbitrate=<value>

Номер прохода. vpass=<1-3>

Ускорение первого прохода. turbo

lavc

-lavcopts


Квантование поиском по решетке. Найдет оптимальное кодирование для каждого блока 8×8. trell

Допускает 4 вектора движения на макроблок (немного лучшее качество). v4mv

Алгоритм принятия решения о макроблоке (режим высокого качества). Указывает кодировать каждый макроблок всеми режимами и выбирать лучший. Это работает медленно, но дает лучшее качество и меньший файл. mbd=<0-2>

Соотношение между качеством и скоростью вносимыми в процессе принятия решений об оценке движения. subq=<1-8>

Количество рефреймов. refs=<1-8> * lavc плохо документирован, по этому его не желательно использовать. Его преимущества только в сохранение аудио в acc и ac3, работе с контейнерами mkv и mp4.

Шаблоны •Проиндексировать видео. Помогает, если в видео не работает перемотка: mencoder "your_movie.avi" -forceidx -oac copy -ovc copy -o "movie_out.avi" •Сохранение в mkv: mencoder "your_movie.avi" -ovc copy -oac copy -of lavf -lavfopts format=mkv -o "movie_out.mkv" •Извлечение первой(нулевой) аудио дорожки(прежде нужно узнать формат аудио): mplayer -aid 0 -dumpaudio 'your_video' -dumpfile out.mp3 •Извлечение видео дорожки(прежде нужно узнать формат видео потока): mplayer -dumpvideo 'your_video' -dumpfile out.h264


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.