Основы использования <application>MEncoder</application> Полный список доступных опций MEncoder и примеры смотрите на странице руководства man. Ряд наглядных[hands-on] примеров и подробные руководства по использованию отдельных параметров кодирования, можно узнать прочтя советы по кодированию, которые мы собрали из отдельных нитей[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 сырой видео поток (без уплотнения[no muxing] - только видео поток) rawaudio сырой аудио поток (без уплотнения[no muxing] - только аудио поток) AVI является родным форматом для MEncoder, что означает наилучшую его поддержку, MEncoder изначально разрабатывался для этого формата. Как замечено выше, другие форматы тоже пригодны, но вы можете столкнуться с проблемами при их использовании. форматы файлов библиотеки libavformat: Если вы выбрали libavformat для уплотнения[muxing] выходного файла (используя ), подходящий формат файла будет определен по расширению выходного файла. Вы можете заставить использовать конкретный формат опцией библиотеки 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 Видео формат Как видите, libavformat позволяет MEncoder мультиплексировать[mux] во множество форматов. К сожалению, поскольку MEncoder изначально не разрабатывался для поддержки форматов, отличных от AVI, вам следует относиться к результирующему файлу с определенной долей паранойи. Убедитесь, что в порядке Аудио/видео синхронихация, и файл воспроизводится не только в MPlayer. Пример: Создание видео Macromedia Flash, подходящего для воспроизведения в веб браузере плагином Macromedia Flash: mencoder input.avi -o output.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050 Выбор входного файла или устройства 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. В некоторых случаях возможно воспроизведение видео большего размера. Звук: частота сэмплирования[samplerate] должна быть 24кГц для MPEG-4, и 48кГц для H.264. Пример: mencoder -oac lavc -ovc lavc -of lavf -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \ -af lavcresample=24000 -vf harddup -lavfopts format=psp:i_certify_that_my_video_stream_does_not_use_b_frames \ -ofps 30000/1001 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 -ovc lavc \ -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 Подсказка: Если по каким-то причинам видео после второго прохода вас не устраивает, можно снова запустить кодирование с другими значениями битпотока, при условии, что вы сохранили статистику предыдущего прохода. Это возможно, потому что основная задача файла со статистикой - записывать сложность каждого кадра, которая жестко с битпотоком не связана. Следует иметь в виду, что, несмотря на это, лучшее качество получается если значения результирующего битпотока всех проходов не сильно отличаются. Масштабирование фильмов Часто возникает потребность изменить размер изображения у фильма. Причин может быть много: уменьшение размера файла, пропускная способность сети, и т.д. Большинство производят масштабирование даже при конвертации 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 Создание файла 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 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -vf crop=714:548:0:14 -oac copy -o output.avi