Основы использования <application>MEncoder</application> Полный список доступных опций MEncoder и примеры смотрите на странице руководства man. Ряд наглядных примеров и подробные руководства по использованию отдельных параметров кодирования, можно узнать прочтя советы по кодированию, которые мы собрали из отдельных нитей[threads] рассылки MPlayer-users. В архивах здесь и, особенно по поводу старых вещей, здесь найдется множество дискуссий, посвященных всех аспектам и проблемам кодирования при помощи MEncoder. Выбор кодеков и формата файлов Аудио и видео кодеки для кодирования выбираются опциями и , соответственно. Наберите для примера: mencoder -ovc help чтобы получить список всех видео кодеков поддерживаемых версией MEncoder, установленной на вашей машине. Доступны следующие варианты: Аудио кодеки: Название кодека Описание mp3lame Кодируйте в VBR, ABR или CBR MP3 с LAME lavc Используйте один из кодеков библиотеки libavcodec faac FAAC AAC аудио кодер toolame MPEG Audio Layer 2 кодер twolame MPEG Audio Layer 2 кодер, основанный на tooLAME pcm Несжатый PCM звук copy Не перекодировать, просто копировать сжатые кадры Видео кодеки: Название кодекаОписание lavc Используйте один из кодеков библиотеки libavcodec xvid Xvid, MPEG-4 Advanced Simple Profile (ASP) кодек x264 x264, MPEG-4 Advanced Video Coding (AVC), AKA[он же] H.264 кодек nuv nuppel видео, используемое некоторыми приложениями реального времени raw Несжатые видео кадры copy Не перекодировать, просто скопировать сжатые кадры frameno Использовался для 3-х проходного кодирования (не рекомендуется) Формат выходных файлов выбирается опцией . Наберите: mencoder -of help чтобы получить список всех форматов, поддерживаемых версией MEncoder, установленного на вашей машине. Доступны следующие варианты: Форматы файлов: Название форматаОписание lavf Один из форматов, поддерживаемых библиотекой libavformat avi 'Слоеное' Аудио-Видео mpeg MPEG-1 и MPEG-2 PS rawvideo сырой видео поток (без мультиплексирования - только видео поток) rawaudio сырой аудио поток (без мультиплексирования - только аудио поток) AVI является родным форматом для MEncoder, что означает наилучшую его поддержку, MEncoder изначально разрабатывался для этого формата. Как замечено выше, другие форматы тоже пригодны, но вы можете столкнуться с проблемами при их использовании. форматы файлов библиотеки libavformat: Если вы выбрали libavformat для мультиплексирования выходного файла (используя ), подходящий формат файла будет определен по расширению выходного файла. Вы можете заставить использовать конкретный формат опцией библиотеки libavformat. название формата libavformatОписание mpg MPEG-1 и MPEG-2 PS asf Advanced Streaming Format avi 'Слоеное' Аудио-Видео wav Waveform Аудио swf Macromedia Flash flv Macromedia Flash видео rm RealMedia au SUN AU nut открытый формат NUT (экспериментальный и пока не полностью соответствующий спецификации) mov QuickTime mp4 MPEG-4 формат dv Sony Digital Видео формат mkv Открытый аудио/видео контейнер Matroska Как видите, 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 \ 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 -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 субтитров в файл VOBsub MEncoder способен извлекать субтитры из DVD в файлы формата VOBsub. Они состоят из пары файлов, оканчивающихся на .idx и .sub и обычно упакованы в один .rar архив. MPlayer может воспроизводить из при помощи опций и . Вы указываете базовое имя (т.е. без расширения .idx или .sub) выходных файлов с помощью и индекс этих субтитров в результирующем файле при помощи . Если источником является не DVD следует использовать для указания указания файла .ifo, необходимого для создания результирующего .idx файла. Если источником является не DVD и у вас нет .ifo файла, используйте опцию для указания, какой ид языка следует записать в .idx файл. При каждом запуске субтитры будут добавляться в конец файлов, если .idx и .sub уже существуют. Так что вам следует удалять их перед началом. копирование двух субтитров из DVD при выполнении двухпроходного кодирования rm subtitles.idx subtitles.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.idx subtitles.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