Linux и кодирование видео. Mencoder и кодеки. Установка и использование.

Что такое MEncoder

MEncoder — свободный кодировщик видео. Поддерживает большинство существующих аудиовидеокодеков и контейнеров. Является частью проекта MPlayer. К нему есть удобный GUI kmenc15

Установка

К сожалению, из за проблем с лицензиями, на данный момент не входит в официальный дистрибутив Debian. Для его установки приходится использовать дополнительные репозитарии, подключить которые можно прописав в /etc/apt/sources.list строчку

deb http://www.debian-multimedia.org etch main

А потом стандартно $apt-get install mencoder

Тут правда есть некоторые детали 1)

Перекодирование видео с наложением своего аудиотрека

Для этого используются тледующие параметры командной строки

  • -V — болтливый режим;
  • -alang — выбор языка
  • -oac — выбор кодека для звуковой дорожки
  • -audiofile — выбор аудиофайла для имплантации в видео
  • -ovc — fixme
  • -lavcopts — опции видеопотока
  • -vf — fixme
  • -o — определяем выходной файл.

Итак, для того, чтобы получить видеофайл 1.mpg, наложить на него звук из аудиофайла 1.wav и закодировать в mpeg4 с битрэйтом 2048 и разрешением 1024×768 и сохранить в 2.avi нужно набрать:

$mencoder -V -alang ru -oac lavc -audiofile 1.wav -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048:v4mv:mbd=2:trell -noskip -mc 0 -vf scale=1024:768 -o 2.avi 1.mpg

Сборка видео из набора кадров в графических файлах

В Каталоге, где собраны кадры-файлы запускаем следующую команду(последовательность кадров совпадает с по)

mencoder "mf://*.jpg" -vf scale=640:-11 -oac copy -ovc lavc -lavcopts vcodec=msmpeg4:vbitrate=2000 -ffourcc MP43 -fps 24 -o "output.avi"
  • mf://*.jpg — указывается маска файлов-кадров
  • scale=640:-11 — указываются разрешение итогового видео (640-ширина, -11 сохранение пропорций)
  • fps количество кадров в секунду

Так же можно подключить звуковую дорожку с помощью параметра -audiofile

Объединение нескольких видеофайлов разного формата в один

Чисто практическая задача. Сегодня возникла. Есть множество коротких видео, снятых на камеру, на фотоаппарат, на мобильник. Все онилежат в /home/user/videos. Требуется объединить всё это в один видеофайл с заданным расширением.

$mencoder -V -alang ru -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048:v4mv:mbd=2:trell -vf scale=1024:768 -o 2.avi /home/users/videos/*

Есть и недостатки. Представляете как будет выглядеть видео, снятое на мобильник, и потом растянутое до 1024×768

Обрезка видеофайла(выделение фрагмента определённой длины, начиная с заданной позиции) в формате flv.

mencoder -V -alang ru -oac lavc -ovc lavc -lavcopts vcodec=flv:v4mv:mbd=2:trell -ss 5 -frames 2400 -o output_file.flv input_file.flv
  • -ss 5 — пропустить с начала 5 секунд
  • -frames 2400 — выделить фрагмент в 2400 кадров
  • vcodec=flv:v4mv:mbd=2:trell — указание кодека выходного файла(параметры устанавливаются по умолчанию как у входного)

Покадровая нарезка видео-файла.

mplayer input_file.wmv -vo jpeg:quality=95:outdir=frames
  • *input_file.wmv* обрабатываемый видео-файл *
  • -vo — выбор видео-драйвера
  • jpeg — выводить кадры в формате JPEG
  • quality=95 — качество JPEG — 95
  • outdir=frames — писать кадры в каталог /frames/

Извлечение определённой главы с DVD.

mencoder -dvd-device /dev/cdrw3 -V -alang ru -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048:v4mv:mbd=2:trell -o chapter40.avi dvd://1-1 -chapter 40-40

Обращаю внимание, что если не указать диапазон через тире, в chapter40.avi будут извлечены все главы, начиная с 40-й

Поворот, обрезка и масштабирование видео.

Дано:

Видеофайл, продолжительностью около 10 секунд, размером картинки 480×272

Требуется:

— Повернуть его по часовой стрелке на 90гр, получив картинку 272×480 — Обрезать сверху и снизу полоски по 272×139, чтобы получилась картинка 272×202 — Масштабировать до 640×480.

mencoder -vf rotate=1,crop=272:202:0:139,scale=640:480 -oac pcm -ovc lavc -lavcopts vcodec=msmpeg4:vbitrate=2000 -o output.avi IMG_0301.MOV
  • *-vf* — опция, показывающая, что далее будет список видеофильтров через запятую (применяются последовательно)
  • *rotate=1* — перевернуть на 90 гр. по часовой (доступны и другие углы, согласно man mplayer 0 — Поворот на 90 градусов по часовой стрелке и отражение, 1-Поворот на 90 градусов по часовой стрелке, 2 — Поворот на 90 градусов против часовой стрелки, 3- Поворот на 90 градусов против часовой стрелки и отражение)
  • *crop=272:202:0:139* — отображать из исходноговидео прямоугольник 272×202, начиная с точки (0,139)
  • *scale=640:480* — масштабировать до разрешения 640×480

Перекодирование в кодек XVID.

mencoder -V -alang ru -oac copy -ovc xvid -xvidencopts bitrate=2048 -o 104_klen.avi 004_klen.avi

Перекодирование файлов с одного «фотоаппарата».

mencoder -V -alang eng -oac pcm -lavcopts acodec=pcm_s8 -ovc lavc -lavcopts vcodec=flv:trell:vbitrate=1024 -vf scale=600:-11 -noskip -mc 0 -o 2012.02.12_volley_training_small_02.flv 2012.02.12_voley_training_02.mov

Перекодирование видео для просмотра на видеоплейере LG

mencoder -V -alang ru -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:trell:vbitrate=512 -ffourcc divx -noskip -mc 0 -o gadnii_ya.player.mp4 gadkii_ya.mp4

Ссылки по теме


Добавить комментарий