Основы использования MEncoder
Полный список доступных опций MEncoder и примеры
смотрите на странице руководства man.
Ряд наглядных примеров и подробные руководства по использованию отдельных
параметров кодирования, можно узнать прочтя
советы по кодированию, которые мы
собрали из отдельных нитей[threads] рассылки MPlayer-users. В архивах
здесь
и, особенно по поводу старых вещей,
здесь
найдется множество дискуссий, посвященных всех аспектам и проблемам кодирования
при помощи MEncoder.
Выбор кодеков и формата файлов
Аудио и видео кодеки для кодирования выбираются опциями
и , соответственно.
Наберите для примера:
mencoder -ovc help
чтобы получить список всех видео кодеков поддерживаемых
версией MEncoder, установленной на вашей машине.
Доступны следующие варианты:
Аудио кодеки:
Название кодекаОписаниеmp3lameКодируйте в VBR, ABR или CBR MP3 с LAMElavcИспользуйте один из кодеков библиотеки libavcodecfaacFAAC AAC аудио кодерtoolameMPEG Audio Layer 2 кодерtwolameMPEG Audio Layer 2 кодер, основанный на tooLAMEpcmНесжатый PCM звукcopyНе перекодировать, просто копировать сжатые кадры
Видео кодеки:
Название кодекаОписаниеlavcИспользуйте один из кодеков библиотеки libavcodecxvidXvid, MPEG-4 Advanced Simple Profile (ASP) кодекx264x264, MPEG-4 Advanced Video Coding (AVC), AKA[он же] H.264 кодекnuvnuppel видео, используемое некоторыми приложениями реального времениrawНесжатые видео кадрыcopyНе перекодировать, просто скопировать сжатые кадрыframenoИспользовался для 3-х проходного кодирования (не рекомендуется)
Формат выходных файлов выбирается опцией .
Наберите:
mencoder -of help
чтобы получить список всех форматов, поддерживаемых версией
MEncoder, установленного на вашей машине.
Доступны следующие варианты:
Форматы файлов:
Название форматаОписаниеlavfОдин из форматов, поддерживаемых библиотекой
libavformatavi'Слоеное' Аудио-ВидеоmpegMPEG-1 и MPEG-2 PSrawvideoсырой видео поток (без мультиплексирования - только видео поток)rawaudioсырой аудио поток (без мультиплексирования - только аудио поток)
AVI является родным форматом для MEncoder,
что означает наилучшую его поддержку,
MEncoder изначально разрабатывался для этого формата.
Как замечено выше, другие форматы тоже пригодны, но
вы можете столкнуться с проблемами при их использовании.
форматы файлов библиотеки libavformat:
Если вы выбрали libavformat для
мультиплексирования выходного файла (используя ),
подходящий формат файла будет определен по расширению выходного файла.
Вы можете заставить использовать конкретный формат опцией
библиотеки
libavformat.
название формата libavformatОписаниеmpgMPEG-1 и MPEG-2 PSasfAdvanced Streaming Formatavi'Слоеное' Аудио-ВидеоwavWaveform АудиоswfMacromedia FlashflvMacromedia Flash видеоrmRealMediaauSUN AUnut
открытый формат NUT (экспериментальный и пока не полностью соответствующий спецификации)
movQuickTimemp4MPEG-4 форматdvSony Digital Видео формат
Как видите, libavformat
позволяет MEncoder мультиплексировать во
множество форматов.
К сожалению, поскольку MEncoder изначально не разрабатывался
для поддержки форматов, отличных от AVI, вам следует относиться к результирующему
файлу с определенной долей паранойи. Убедитесь, что в порядке Аудио/видео синхронизация, и
файл воспроизводится не только в MPlayer.
Кодирование в формат Macromedia Flash
Создание видео Macromedia Flash, подходящего для воспроизведения в веб браузере плагином
Macromedia Flash:
mencoder input.avi -o output.flv -of lavf \
-oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
Выбор входного файла или устройстваMEncoder может кодировать из файлов или непосредственно
с DVD или VCD диска.
Просто укажите имя файла в командной строке для кодирования из файла,
или номер_ролика или
номер_дорожки для кодирования
DVD ролика или VCD дорожки.
Если вы уже скопировали DVD на жесткий диск (може воспользоваться утилитой вроде
dvdbackup, доступной на многих системах),
и желаете кодировать из копии, вледует по-прежнему использовать
синтаксис, вместе с
с последующим путек к корню копии DVD.
Опции и также могут
быть использованы для переопределения путей к файлам устройств для
чтения прямо с диска, если значения по-умолчанию
/dev/dvd и /dev/cdrom не подходят для
вашей системы.
При кодировании с DVD, часто бывает желательно выбрать раздел или диапазон
разделов для кодирования. для этой цели можно использовать опцию
.
Например, 1-4
будет кодировать только разделы DVD с 1-го по 4-й.
Это особенно полезно при кодировании 1400Мб с целью уместить их на 2 CD,
так как вы можете разбить фильм точно на границе раздела, вместо
середины некоторой сцены.
Если у вас есть поддерживаемая карта TV захвата, вы также можете
кодировать с TV входа.
Используйте номер_канала в качестве
имени файла, и опцию для настройки различный параметров захвата.
DVB вход работает аналогично.
Двухпроходное кодирование MPEG-4 ("DivX")
Название происходит из того факта, что кодирование файла производится
дважды.
Первое кодирование (дублирующий проход) создает несколько временных файлов
(*.log) размером в несколько мегабайт, не удаляйте их пока
(вы можете удалить AVI или вообще не создавать видеофайл, перенаправив его
в /dev/null). На втором проходе, с использованием данных о
битпотоке из временных файлов, формируется готовый выходной. Получившийся файл
будет иметь намного лучшее качество картинки. Если слышите об этом в первый раз,
обратитесь к руководствам, которые можно найти в интернет.
копирование звуковой дорожки
Кодирование (двухпроходное) второй дорожки DVD в MPEG-4 ("DivX") AVI с
копированием звуковой дорожки.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
-oac copy -o output.aviкодирование звуковой дорожки
Кодирование (в два прохода) DVD в MPEG-4 ("DivX") AVI с кодированием
звуковой дорожки в MP3. Будьте аккуратны, используя этот метод, так как в некоторых случаях
это может привести к рассинхронизации аудио/видео.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
-oac mp3lame -lameopts vbr=3 -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
-oac mp3lame -lameopts vbr=3 -o output.aviКодирование в Sony PSP видео форматMEncoder поддерживает кодирование в видео формат
Sony PSP, но, в зависимости от ревизии программного обеспечения PSP,
с различными ограничениями. Можете не беспокоиться, если не будете
нарушать следующие ограничения:
Битовый поток: не должен превышать 1500кбит/с,
тем не менее, последние версии очень хорошо поддерживали любой битрейт, пока
заголовок не требовал черезчур большого значения.
Размеры: ширина и высота PSP видео должна быть
кратна 16, а произведение ширина * высота не должно превышать 64000.
В некоторых случаях возможно воспроизведение видео большего размера.
Звук: частота дискретизации должна быть
24кГц для MPEG-4, и 48кГц для H.264.
Кодирование для PSP
mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -of lavf \
-oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \
-lavfopts format=psp:i_certify_that_my_video_stream_does_not_use_b_frames \
input.video -o output.psp
Заметьте, что можно задать заголовок видео опцией
.
Кодирование в MPEG форматMEncoder может создавать файлы формата MPEG (MPEG-PS).
MPEG-1 или MPEG-2 обычно используют по причине кодирования в более
ограниченные форматы, такие как SVCD, VCD или DVD.
Особые требования для этих форматов описаны в
руководстве по созданию VCD и DVD
section.
Чтобы сменить формат выходного файла MEncoder, используйте
опцию .
Пример:
mencoder input.avi -of mpeg -ovc lavc -lavcopts
vcodec=mpeg1video \
-oac copy other_options -o output.mpg
Создается файл MPEG-1 пригодный для воспроизведения на системах с минимальной поддержкой
мультимедиа, таких как только что установленные Windows:
mencoder input.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \
-o output.mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
-lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
То же, но используя libavformat MPEG
мультиплексор:
mencoder input.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \
-lavfopts format=mpg:i_certify_that_my_video_stream_does_not_use_b_frames \
-oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
-lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0
Подсказка:
Если по каким-то причинам видео после второго прохода вас не устраивает,
можно снова запустить кодирование с другими значениями битпотока, при
условии, что вы сохранили статистику предыдущего прохода.
Это возможно, потому что основная задача файла со статистикой - записывать
сложность каждого кадра, которая жестко с битпотоком не связана.
Следует иметь в виду, что, несмотря на это, лучшее качество получается если
значения результирующего битпотока всех проходов не сильно отличаются.
Масштабирование фильмов
Часто возникает потребность изменить размер изображения у фильма.
Причин может быть много: уменьшение размера файла, пропускная способность сети,
и т.д. Большинство производят масштабирование даже при конвертации DVD или SVCD в AVI.
Если есть желание провести масштабирование, прочтите раздел
Сохранение пропорций.
Процесс масштабирование осуществляется плагином scale:
.
Качество может быть установлено опцией .
Если не указано, MEncoder будет использовать 2: бикубическое.
Использование:
mencoder input.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \
-vf scale=640:480 -o output.aviкопирование потокаMEncoder может обрабатывать входные потоки двумя способами:
кодировать или копировать
их. Этот раздел о копировании.
Видео поток (опция ):
можно делать классные вещи :) Вроде помещения (не преобразования!) FLI или VIVO или
MPEG-1 видео в AVI файл! Конечно, проиграть такие файлы сможет только
MPlayer :) И, возможно, никакого реальной пользы в
этом нет. Реально: копирование видеопотока может быть полезно, если надо кодировать только
аудио поток (например, несжатый PCM в MP3).
Аудио поток (опция ):
straightforward. Возможно взять внешний файл (MP3, WAV) и уплотнить[mux] его в выходной
поток. Воспользуйтесь опцией ,
чтобы сделать это.
Использование для копирования из одного формата в другой
может потребовать указания для сохранения тэга аудио формата
из оригинального файла. Например, если вы преобразовываете NSV файл со звуком AAC
в формат AVI, аудио формат будет неверен и должен быть изменен. Чтобы получить список
тэгов аудио формата проверьте codecs.conf.
Пример:
mencoder input.nsv -oac copy -fafmttag 0x706D \
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o output.aviКодирование из нескольких входных файлов изображений (JPEG, PNG, TGA, SGI)MEncoder может создавать фильмы из одного или более
JPEG, PNG, TGA или других файлов изображений. Простым копированием кадров он может создавать MJPEG
(Motion JPEG), MPNG (Motion PNG) или MTGA (Motion TGA) файлы.
Разъяснение процесса:MEncoderдекодирует изображение(я) с помощью
libjpeg (при декодировании PNG, он будет
использовать libpng).
MEncoder затем скармливает декодированное изображение выбранному
видео компрессору (DivX4, Xvid, FFmpeg msmpeg4, и .т.д).
примеры
The explanation of the option is in the man page.
Создание файла MPEG-4 из всех JPEG файлов текущего каталога:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \
-lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
Создание файла MPEG-4 из некоторых JPEG файлов текущего каталога:
mencoder mf://frame001.jpg,frame002.jpg -mf w=800:h=600:fps=25:type=jpg \
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
Создание файла MPEG-4 из явного списка JPEG файлов (list.txt в текущем каталоге содержит
список файлов, используемых в качестве источника, по одному в строке):
mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
Вы можете смешивать различные типы изображений независимо от используемого
метода — отдельные файлы, маска или файл со списком — при условии,
конечно, что они имеют одинаковое разрешение.
Так что вы можете, например, взять титульный кадр из PNG файла, а затем
поместить слайдшоу из JPEG фотографий.
Создание файла Motion JPEG (MJPEG) из всех JPEG файлов текущего каталога:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi
Создание несжатого файла из всех PNG файлов текущего каталога:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi
Ширина должна быть целым числом, кратным 4, это ограничение формата RAW RGB AVI.
Создание файла Motion PNG (MPNG) из всех PNG файлов текущего каталога:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi
Создание файла Motion TGA (MTGA) из всех TGA файлов текущего каталога:
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.aviИзвлечение DVD субтитров в файл VOBsubMEncoder способен извлекать субтитры из DVD в файлы формата
VOBsub. Они состоят из пары файлов, оканчивающихся на
.idx и .sub и обычно
упакованы в один .rar архив.
MPlayer может воспроизводить из при помощи опций
и .
Вы указываете базовое имя (т.е. без расширения .idx или
.sub) выходных файлов с помощью
и индекс этих субтитров в результирующем файле
при помощи .
Если источником является не DVD следует использовать для
указания указания файла .ifo, необходимого для создания
результирующего .idx файла.
Если источником является не DVD и у вас нет .ifo файла,
используйте опцию для указания, какой ид языка
следует записать в .idx файл.
При каждом запуске субтитры будут добавляться в конец файлов, если
.idx и .sub уже существуют.
Так что вам следует удалять их перед началом.
копирование двух субтитров из DVD при выполнении двухпроходного кодирования
rm subtitles.idxsubtitles.sub
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
-vobsubout subtitles -vobsuboutindex 0 -sid 2
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
-vobsubout subtitles -vobsuboutindex 1 -sid 5Копирование французских субтитров из MPEG файла
rm subtitles.idxsubtitles.sub
mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles -vobsuboutindex 0 \
-vobsuboutid fr -sid 1 -nosound -ovc copy
Сохранение пропорций
DVD и SVCD (т.е. MPEG-1/2) файлы содержат информацию о пропорции, которая описывает
как проигрыватель должен масштабировать видео поток, чтобы люди не становились яйцеголовыми.
(напр.: 480x480 + 4:3 = 640x480). Хотя при кодировании в AVI (DivX) файлы вы избавлены от этой
проблемы, т.к. заголовки AVI не содержат это значение.
Масштабирование изображения отвратительно и расточительно, есть лучший путь!
There is
MPEG-4 имеет уникальную возможность: видео поток может хранить требуемые ему пропорции.
Да, в точности как MPEG-1/2 (DVD, SVCD) и H.263 файлы. К сожалению, немного проигрывателей
кроме MPlayer поддерживают этот MPEG-4 атрибут.
Эта возможность может использоваться только с
libavcodec'овским
mpeg4 кодеком. Имейте в виду: хотя
MPlayer корректно воспроизведет файл, другие
проигрыватели могут использовать неверные пропорции.
Вы серьезно должны обрезать черные полосы выше и ниже изображения.
Смотрите страницу руководства man по использованию cropdetect и
crop плагинов.
Использование:
mencoder sample-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \
-lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o output.avi