Slip 25.09.2009 01:40
Жизнь в консоли — MEncoder
Итак, как я и обещал, сделал подборку наиболее нужных вариантов использования MEncoder.Что такое MEncoder?
Как гласит Wikipedia:
MEncoder — свободный кодировщик видео. Поддерживает большинство существующих аудиовидеокодеков и контейнеров. Является частью проекта MPlayer.
Mencoder поддерживает множество типов файлов:MPEG/VOB, AVI, ASF/WMA/WMV, RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, FLV.
Как же им пользоваться? Пойдем от простого к сложному.
Команда для конвертирования MPG-файла в AVI-формат:
mencoder file.mpg -o file.avi -ovc lavc -oac lavc
Опции -oac и -ovc указывает на желаемые аудио и видео кодеки.
Вы можете посмотреть список доступных кодеков при помощи команды mencoder -ovc help и mencoder -oac help
Можно указать желаемый формат аудио при помощи опции acodec:
mencoder file.mpg -o file.avi -ovc lavc -oac lavc -lavcopts acodec=pcm
Если вы используете mp3-сжатие, можно также указать битрейт:
mencoder file.mpg -o file.avi -ovc lavc -oac lavc -lavcopts acodec=libmp3lame:abitrate=128
Еще с помощь lameopts можно создавать файлы с переменным битрейтом:
mencoder file -o file.avi -ovc lavc -oac mp3lame -lameopts vbr=2:q=3
гду q - это любое число в диапазоне от 0 до 9
Также можно работать и с аудиодорожкой из видеофайлов:
mencoder file.mpg -o file.avi -ovc lavc -oac lavc -lavcopts acodec=libmp3lame:abitrate=128 vcodec=xvid
Если вы не хотите использовать видеокомпрессию, используйте vcodec=copy.
С этой опцией видеопоток будет просто скопирован байт в байт из исходного файла.
Можно использовать DivX и xvid напрямую, без опции lavc:
mencoder -ovc xvid -oac mp3lame -o destination.avi source.avi
Для указания более подробных параметров вы можете использовать опции xvid
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate=878 -o destination.avi source.avi
Теперь сделаем DVDRip с Xvid кодеком.
Сначала mencoder анализирует файл, затем, на основе полученных данных, перекодирует DVD-поток.
Использование двух фаз ненамного дольше, но на выходе вы получите более качественный файл.
Выглядеть это будет так:
mencoder dvd:// -oac mp3lame -ovc xvid -xvidencopts pass=1 -o /dev/null
mencoder dvd:// -oac mp3lame -ovc xvid -xvidencopts pass=2:bitrate=800 -o xvidfile.avi
Также можно задавать не битрейт, а выходной размер файла, в килобайтах, например:
mencoder dvd:// -ovc xvid -oac mp3lame -xvidencopts bitrate=-700000 -o file.avi
даст нам file.avi размером в 700 Мб.
Из личного опыта скажу, что размер может варьироваться. Но, как правило, не сильно и в основном в меньшую сторону.
Если имеется множество маленьких виедофалйов и вы хотите сделать из них один большой,
то mencoder может помочь вам.. Переименуйте исходные файлы так, чтобы они отсортировывались
в необходимом вам порядке. Затем используйте:
mencoder * -o output.avi
Честно говоря, до этого момента я для этой цели использовал cat
Чтобы добавить аудиодорожку к видеофайлу:
mencoder source.avi -o destination.avi -ovc copy -oac mp3lame -audiofile file.wav // для несжатых файлов
mencoder source.avi -o destination.avi -ovc copy -oac copy -audiofile file.mp3 // для сжатых файлов
Подготовим видео для iPodLinux:
mencoder -ovc raw -ofps 15 -oac pcm -vf scale=176:-2,expand=176:132,format=bgr16 input.file -o output.avi
Для PocketPC:
mencoder -oac mp3lame -lameopts mode=3:preset=24 -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=384:keyint=250 -vop expand=”320:240? -o outputfile.avi inputfile.avi
или
mencoder input.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=200:abitrate=48 -vop scale=320:240 -oac copy -o output.avi
Вторая команда масштабирует фильм до размера экрана PocketPC - 320?240 пикселей.
Команда:
mencoder tv:// -tv driver=v4l:device=/dev/video0:width=640:height=480:forceaudio -ovc lavc -oac lavc -lavcopts vcodec=mpeg4:acodec=mp3 -ffourcc divx -o test.avi
записывает весь вывод /dev/video0 в файл с разрешением 640х480 и mp3-звуком.
Для объединения нескольких изображений в видеоролик с наложением звуковой дорожки можно использовать:
mencoder mf://*jpg -mf w=640:h=480:fps=10:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
добавляем звуковую дорожку:
mencoder -oac copy -ovc copy -audiofile sound.mp3 output.avi -o video.avi
Вырезать небольшой фрагмент фильма можно такой командой:
mencoder FILM.AVI -ss $START_TIME -frames $LENGTH_IN_FRAMES -oac pcm -channels 2 -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=600 -o FRAGMENT.AVI -mc 0 -noskip
где START_TIME="16:10" - время начала фрагмента.
LENGTH_IN_FRAMES="1500" - число требуемых секунд помноженное на частоту кадров в секунду (обычно 24 или 25)
Перевернуть видео-клип в портретный вид( и не только)
mencoder -vf rotate=1 -oac copy input.avi -o output.avi
-vf rotate=1 повернуть видео-изображение на 90 градусов по часовой стрелки.
0 Поворот на 90 градусов по часовой стрелке и отражение (по умолчанию).
1 Поворот на 90 градусов по часовой стрелке.
2 Поворот на 90 градусов против часовой стрелки.
3 Поворот на 90 градусов против часовой стрелки и отражение.
Мне не удалось найти толкового рецепта для 3gp с использованием исключительно mencoder'a, только в паре ffmpeg. Если у кого-то будет толковый универсальный вариант - с удовольствием добавлю в топик.
Еще одна замечательная особенность консольных программ-их всегда можно приостановить по Ctrl+Z и продолжить их работу по fg(bg). MEncoder не исключение(см. скрины).
UPD
Совсем забыл: официальный ман
Front-ends(на всякий случай):
Kmencoder
Konverter
Kmenc 15
GMencoder
AcidRIP
MenGUI
drujebober 25.09.2009 02:34 #
+ 0 -
а можно примеры создания ogg и mkv?
я об этом догадывался, просто думал, мало ли может я упустил момент когда менкодер этому научился
Mencoder поддерживает множество типов файлов:MPEG/VOB, AVI, ASF/WMA/WMV, RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, FLV.
Не понимаю - и MKV и OGG присутствуют в списке, тогда почему же нельзя?И еще - можно ли с помощью mencoder сделать DVD-Rip в mkv (ну, допустим рип менкодером, а потом смерджить mkvmerge)?
потому что mkv это контейнер, думаю можно перегнать, но как он сожмет тебе? это же делает h.264 (х264) кодек.
avi тоже контейнер но менкодер его осиливает, так что ничего удивительного если бы он мог и мкв с огг
Спасибо. А то я как-то все больше ffmpeg'ом пользуюсь, так хоть посмотреть как mencoder работает.
интересно, а внешние субтитры на картинку наложить можно? А то я ковырялся в своё время, ничего не вышло
ой, это встраивает, а так просто задай имя сабам идентичное видео файлу и в туже папку положи
нужен именно хардсаб
например, для просмотра на КПК или телефоне
очень долго колдовал с опциями и ничего не вышло при помощи mencoder
хотя там даже опция есть вроде -vf ass (сейчас точно не помню) и ничего
например, для просмотра на КПК или телефоне
очень долго колдовал с опциями и ничего не вышло при помощи mencoder
хотя там даже опция есть вроде -vf ass (сейчас точно не помню) и ничего
О. Ну, наконец-то. Я давно просил, чтобы кто-нибудь описал подобную вещицу поподробнее. :)
С видео почти никогда не работал, поскольку не возникало такой необходимости. А сейчас лежит мертвым грузом папочка со снятым на камеру видео с одного события. Папка весит примерно 15 гигов. Видео было просто с камеры, никак далее не обрабатывалось. Хотелось бы просто ужать все это хотя бы до 4.7 гигабайта и залить на болванку, но так, чтобы качество максимально сохранить. Как мне может помочь с этим mencoder? Вопрос конечно ламерский, но мне это настолько редко нужно, что нормально разбираться жалко времени... если кому не лень, подскажите пожалуйста.
Видео одним файлом?
Если нет, то сначала нужно отсортировать их в нужном порядке и :
mencoder * -o source.avi
Потом можно сделать примерно так:
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate\=-4500000 -o output.avi source.avi
Если же не хотите соединять файлы в один, то прикиньте в среднем, во сколько раз они должны быть сжаты, и для каждого выполните второй пункт, и вместо 4500000 подставляйте размер в Кб. И так с каждым файлом.
Если нет, то сначала нужно отсортировать их в нужном порядке и :
mencoder * -o source.avi
Потом можно сделать примерно так:
mencoder -ovc xvid -oac mp3lame -xvidencopts bitrate\=-4500000 -o output.avi source.avi
Если же не хотите соединять файлы в один, то прикиньте в среднем, во сколько раз они должны быть сжаты, и для каждого выполните второй пункт, и вместо 4500000 подставляйте размер в Кб. И так с каждым файлом.
Спасибо, обязательно попробую, только такой вопрос. Я все же что то умудрился прочитать про сжатие, и помню, что обычно для хорошего качества применяют многопроходное сжатие, то есть сначала анализ, потом непосредственно ужимание. У Вас об этом в посте тоже чутка есть. Так вот, реально ли вообще пережать это видео считай в 3 раза, а чтоб качество осталось таким же? Какой кодек лучше подходит для этих целей? И нужно ли мне проводить сжатие в много проходов или это в данном случае не имеет смысла?
Честно говоря, никогда сам не использовал pass>1. Поэтому о разнице судить не могу. Кодек-тоже дело привычки/вкуса/потребностей. Я пользуюсь xvid, так как его понимает мой DVDшник.
Вот тут можно прочитать про кодирование в 2(3) подхода.
Вот тут можно прочитать про кодирование в 2(3) подхода.
Все-таки это отдельная тема, которая так просто тоже не делается, спасибо попробую и так и так.