/ Статьи / Видео / Работа с видео в Linux. Часть 4. Mencoder, Avimerge, Mkvtoolnix, Vorbis - рецепты. /

Работа с видео в Linux. Часть 4. Mencoder, Avimerge, Mkvtoolnix, Vorbis - рецепты.

Дата публикации: June 14, 2010, 8:35 p.m.
Теги: видео, linux, mplayer, mencoder,
Автор: Brainsburn

работа с видео в линукс

Краткое содержание: как добавить вторую звуковую дорожку в видео; как удалить определенную звуковую дорожку из видео; как склеить два видеофайла; восстановить индекс; изменить пропорции AVI видео; убрать черные поля; изменить разрешение видео; изменить формат видео без пересжатия и другие


Как добавить вторую звуковую дорожку в видеофайл:

Имеется в виду добавление дополнительной звуковой дорожки без замены уже существующей и без пересжатия видео. Если честно, ответ этот вопрос у меня вызвал некоторые затруднения. В Интернете можно найти решение:

$ avimerge -i video.avi -p input.wav -o output.avi
Но в моем дистрибутиве эта программа не хочет работать:
[avilib.c] critical: AVI open: avilib - Not an AVI file
понять причину и исправить эту ошибку мне так и не удалось. В том же самом Интернете есть еще один способ добавить звук в видео:
$ mencoder video.avi -audiofile sound.wav -oac copy -ovc copy -o output.avi

Но, в этом случае, разумеется, mencoder не добавит еще одну звуковую дорожку, а лишь перезапишет существующую. Это будет полезно, если вам надо лишь добавить звук к "немому" видео.

Больше никаких вариантов я не нашел, но вдруг наткнулся на утилиту mmg (mkvmerge) из набора утилит mkvtoolnix. Mmg - графический вариант, mkvmerge - консольный. Это - замечательная утилита для редактирования видеофайлов, которая может сохранять их в формат MKV (без пересжатия, разумеется). Я точно не знаю, какие видеоформаты она поддерживает, но кроме родного MKV, она отлично открывает AVI.
Таким образом, открываете в mmg видеофайл (кнопка Добавить) и добавляете звук (этой же кнопкой). Внизу выбираете имя для выходного файла и жмете "Начать мультиплексирование".
Процесс, обычно, занимает от нескольких секунд до нескольких минут.

Как оставить определенную звуковую дорожку в видеофайле (как удалить лишние звуковые дорожки)

Например, у вас имеется видео в формате AVI с двумя звуковыми дорожками - одна на русском, вторая - на китайском. Дорожка на русском вам, конечно, не нужна и вы хотите ее удалить, облегчив тем самым размер файла. Открываете видео в уже упомянутой выше утилите mmg и в списке "Дорожки, главы и теги" снимаете галки с лишних звуковых дорожек, оставляя одну нужную. Сохраняете видео и вуаля! - появляется видеофайл в формате MKV с только нужной звуковой дорожкой.

Разрезать AVI видеофайл на несколько частей

Для этого можно воспользоваться утилитой avisplit из пакета transcode:

$ avisplit -i 1.avi -s 100
Опция -s 100 означает, что видео будет разрезано на куски, размером 100МБ.

Как Склеить два видеофайла:

$ mencoder -ovc copy -oac copy -o out.avi 1.avi 2.avi
Эта команда склеит 1 и 2 видео файлы в один - out.avi. Но, будьте осторожны - в некоторых случаях может перестать работать перемотка. Чтобы это исправить, используйте опцию -idx.

Еще один способ сделать один видеофайл из двух:

$ cat video1.avi video2.avi|mencoder - -oac copy -ovc copy -o output.avi

Восстановить индекс (если не работает перемотка):

$ mencoder input.avi -idx -ovc copy -oac copy -o out.avi
Эта команда заново сгенерирует индекс, но не надейтесь, что она исправит другие ошибки видео.

Исправить/изменить пропорции у AVI файла:

Для переопределения пропорций в видео, используйте опцию -force-avi-aspect:

$ mencoder input.avi -ovc copy -oac copy -o out.avi  -force-avi-aspect 4/3

Обрезать границы видео (убрать черные поля)

Если вы создаете dvdrip и вам нужно убрать черные поля у видео, вы можете использовать фильтр cropdetect для автоопределения. Запускаете mplayer из терминала таким образом:
$ mplayer dvd://3 -vf cropdetect
и перематываете видео, хотя бы до середины, с помощью стрелок. Вы увидите в выводе терминала нечто подобное:
-vf crop=681:538:10:9
Теперь, указав эти цифры фильтру crop, вы сможете обрезать картинку видео до указанных границ. Но, чтобы быть уверенным, вы можете, сперва, проверить корректность:
$ mplayer dvd://3 -vf rectangle=681:538:10:9
Mplayer отрисует прямоугольник на видео и вы сможете увидеть, корректно ли фильтр cropdetect определил границы черных рамок. После этого, можете обрезать видео, использовав фильтр crop для mencoder:
$ mencoder input.avi -o out.avi -of lavf -oac copy -ovc lavc -lavcopts vcodec=mpeg4 -vf crop=681:538:10:9

Изменить размеры (разрешение) видео

Иногда, вам может понадобиться изменить разрешение у видео. Сделать это можно с помощью mencoder и видео фильтра scale. Вы можете указать размеры полностью (-vf scale=420:260), в этом случае будьте осторожны с сохранением пропорций, а можете указать лишь одно значение scale растянет другое пропорционально. (-vf scale=420:-2)

$ mencoder input.avi -o out.avi -of lavf -oac copy -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=420:-2

Изменить формат видео файла без перекодирования

Сменить формат файла (контейнер) без пересжатия, например AVI на MKV, можно так:

$ mencoder input.avi -o out.mkv -of lavf -oac copy -ovc copy

Как повернуть видео на 90 градусов

Используйте видеофильтр rotate:
$ mencoder input.mkv -o output.mkv -oac copy -ovc xvid -xvidencopts bitrate=2000 -vf rotate=1
Не забудьте указать нужные опции сжатия для видеокодека.
rotate=0 - повернуть на 90 градусов по часовой стрелке и отразить
rotate=1 - повернуть на 90 гр. по часовой стрелке
rotate=2 - повернуть на 90 гр. против часовой стрелки
rotate=3 - повернуть на 90 гр. против часовой стрелки и отразить

Задать аудио кодек при кодировании видео

Делается это аналагично настройкам видео кодека - с помощью -lavcopts (если вы используете libavcodec):

$ mencoder input.avi -o out.mkv -ovc lavc -oac lavc -lavcopts acodec=vorbis:abitrate=128:vcodec=mpeg4:vbitrate=800
Аудио кодек задается параметром acodec, битрейт для аудио задается параметром abitrate. Для MP3 используйте acodec=libmp3lame

Указать настройки сжатия аудио кодеку MP3

Сделать это можно с помощью опции -lameopts
$ mencoder input.avi -o out.avi -ovc xvid -oac mp3lame -lameopts vbr:2:q=5
q=5 указывает желаемое качество по десятибальной шкале (от 0 до 9)

Получить звук из видеофайла:

$ mplayer video.avi -dumpaudio -dumpfile sound.mp3
Заметьте, расширение .mp3 ничего не дает - звук будет в том формате, в котором он был в самом видеофайле.

Еще один способ извлечь аудио из видеофайла:

$ mplayer video.avi -ao pcm:fast:file=sound.wav -vo null
В этом случае звук будет в несжатом PCM формате и его необходимо будет сжать (MP3 или Vorbis), прежде чем добавлять к видео, т.к. размер файла будет довольно большой.

Хитрый способ вырезать звук из видео:

$ mplayer video.avi -dumpaudio -dumpfile sound.ac3
$ mplayer sound.ac3 -ao pcm:fast:file=sound.wav -vo null
Хотя тут используются сразу две команды, этот способ может работать быстрее, если вам надо получить звук в несжатом PCM формате. К примеру, вы хотите вырезать звук из видео, причем он должен быть в формате PCM, чтобы его можно было сконвертировать в Vorbis с помощью oggenc. Способ с -dumpaudio скорее всего не подойдет, т.к. с этим способом звук будет в том же формате, в котором он был в видео, а нам нужен PCM. С помощью способа с -ao pcm:fast:file=sound.wav звуковая дорожка будет вырезаться из видео очень долгое время, особенно если это видео в высоком качестве. Тогда вы можете сначала скопировать звуковую дорожку в отдельный файл, а потом сконвертировать ее в PCM с помощью того же mplayer-а. Хитрость заключается в том, что вторая команда выполняется во много раз быстрее, если обрабатывается не видео а аудио файл.

Как извлечь определенную звуковую дорожку из видеофайла:

Все так же, как в предыдущих двух примерах, только надо указать mplayer-у номер звуковой дорожки. Получить список звуковых и видео дорожек можно, начав проигрывать видео в mplayer в терминале. Вы увидите нечто подобное:
$ mplayer 2.mkv 
MPlayer SVN-r30554-4.4.3 (C) 2000-2010 MPlayer Team
Воспроизведение 2.mkv.
[mkv] ID дорожки 1: video (V_MS/VFW/FOURCC) "nameofvideo", -vid 0
[mkv] ID дорожки 2: audio (A_MPEG/L3) "nameofaudio1", -aid 0, -alang und
[mkv] ID дорожки 3: audio (A_MPEG/L3) "nameofaudio2", -aid 1, -alang und
[mkv] ID дорожки 4: audio (A_MPEG/L3) "nameofaudio3", -aid 2, -alang und
"nameofaudio1" - имя первой звуковой дорожки. -aid 0 - идентификатор. Если вы хотите сохранить вторую звуковую дорожку в файл, команда будет такой:
$ mplayer video.avi -dumpaudio -dumpfile sound.mp3 -aid 2

Сжать звук кодеком Vorbis:

Чтобы сконвертировать несжатый WAV в Vorbis, можно воспользоваться утилитой oggenc, входящей в состав пакета Vorbis (в моей Gentoo он называется vorbis-tools)
$ oggenc sound.wav -q 3 -o sound.ogg
Опция -q 3 задает качество звука - средний битрейт получится 88-112кбит/с. Не советую, кстати, ставить выше. Не ориентируйтесь на битрейт в MP3 - в Vorbis нужен битрейт намного меньший, чем в MP3 для аналогичного качества. Т.е. звуковые файлы будут и весить меньше и звучать лучше, чем файлы в MP3.
Если вы хотите сконвертировать MP3 в Vorbis, в примере выше написано, как проиграть видео/аудио файл mplayer-ом, чтобы извлечь из него звук в формате WAV для дальнейшего кодирования. Но, можно пойти простым путем и воспользоваться утилитой mp32ogg.

Как удалить звук из видео

$ mencoder video.avi -o out.avi  -ovc copy -idx -nosound




Если вы не нашли в этом списке ответа на ваш вопрос, оставьте его в комментариях, только попытайтесь сформулировать вопрос максимально точно. Спасибо.




Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(68)

# Игорь July 15, 2010, 3:46 p.m.
Здравствуйте, помогите пожалуйста. Я скачал фильм «День независимости» в формате MKV, в нём одна звуковая дорожка, субтитров нет. Когда я начал просматривать фильм то перевод мне не понравился, к середине фильма начался пропадать перевод местами. Я скачал 2 других русских звуковых дорожки и скачал русские субтитры. Как их вставить/отредактировать видео файл, чтоб я мог в плеере отдельно переключать на любую из звуковых дорожек и подключить субтитры? Я скачал программу mkvmerge GUI 4.1.1, делал всё по инструкции, как только не пробовал, но после получения нового файла у меня смешивается всё в одно и при просмотре сразу звучат 3 разных перевода, а субтитров так и не появляется… Помогите пожалуйста, может я что неправильно делаю???

# Brainsburn July 15, 2010, 9:30 p.m.
Здравствуйте. Для добавления дополнительной звуковой дорожки Вы используете кнопку "Добавить" или "Присоединить"? Нужно использовать "Добавить". После добавления нужно просто начать мультиплексирование и все будет Ок. Попробуйте добавить звуковые дорожки без субтитров по отдельности - сначала одну, потом другую. Кстати, попробуйте другой видеоплеер, возможно, в нем проблема. Попробуйте воспроизвести в mplayer в терминале. Mplayer вначале напишет обнаруженные дорожки, вроде этого:
Воспроизведение video.mkv.
Обнаружен libavformat формат файла!
[lavf] stream 0: audio (aac), -aid 0, -alang und

[lavf] stream 1: video (h264), -vid 0


Если он увидит несколько звуковых дорожек, конкретную можно воспроизвести опцией -aid:
$ mplayer video.mkv -aid 1

# Роман Sept. 9, 2010, 11:30 p.m.
Здравствуйте. Подскажите, пожалуйста, чем и как на ubuntu 10.04 извлечь аудио из видео-файла формата flv в графическом режиме?.. Спасибо.

# Brainsburn Sept. 11, 2010, 5:56 p.m.
Роман: это можно сделать программой Avidemux. Открываете в ней видео, Audio -> Save и сохраняете имя-файла.mp3

# Роман Sept. 12, 2010, 1:09 p.m.
Увы, не получается. Файл сохраняется как mp3, но никак не воспроизводится, плеер выдаёт какую-то ошибку...

# Brainsburn Sept. 15, 2010, 2:52 p.m.
Возможно, дело в том, что при таком способе сохранения звуковой дорожки, она сохраняется в том же виде, в каком она была в видеофайле, т.е. без перекодирования. Например, вы сохраните файл с расширением *.mp3, но звук в нем будет в WAV или любом другом. Возможно, ваш плеер просто не умеет проигрывать файлы такого типа. Попробуйте открыть этот файл аудиоконвертером и конвертировать его в МР3.

# SergaNT404 Oct. 26, 2010, 11:55 a.m.
Подскажите пожалуйста, как с помощью avisplit разрезать видеофайл в нужных местах по времени воспроизведения ?

# Brainsburn Oct. 27, 2010, 9:28 a.m.
SergaNT404:
К примеру, вам надо разрезать видео на 3 части. Первая часть с 1й по 2ю минуты (т.е. с 00:00:00 по 00:01:00), вторая с 1й минуты по 2ю, третья - с 2й минуты по 3ю. В таком случае команда будет выглядеть так:
$ avisplit -i video.avi -t 00:00:00-00:01:00,00:01:00-00:02:00,00:02:00-00:03:00

Т.е. просто через запятую указывается время начала и конца вырезаемой части.

# Toma Nov. 2, 2010, 3:26 p.m.
Пожалуйста извините, но в Линуксе научилась делать только семплы пока, хочется научиться и другому. Столкнулась с такой проблемой. Уважаю только хорошее качество, но оно естественно очень много весит, поэтому может поможете...Как уменьшить размер видео файла в формате mkw путем изменения размеров картинки видео (в моем случае 1448 x 1080) на поменьше??

# Brainsburn Nov. 2, 2010, 6:34 p.m.
Toma, можно сделать по-разному. Например, так:
mencoder video.mkv -o out.mkv -of lavf -oac copy -ovc xvid -xvidencopts  \ 
bitrate=1500:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg -vf scale=-2:576
video.mkv будет сжато кодеком xvid с опциями наилучшего сжатия, битрейтом 1500, разрешение видео будет изменено и файл будет сохранен в out.mkv. -vf scale=-2:576 "-2" означает, что ширина видео будет изменена пропорционально высоте. Еще проще можно это сделать утилитой ffmpeg2theora:
ffmpeg2theora video.mkv -v 7 -y 720 -o out.mkv
Видео будет сжато кодеком Theora с качеством 7, аудио будет сжато кодеком Vorbis с дефолтными настройками. Высота видео будет изменена до 720, ширина будет изменена пропорционально высоте. 7 - высокое качество, поэтому можете сжать и с качеством 6. Тут все зависит от самого видео.

# Гость Nov. 2, 2010, 6:53 p.m.
Ооо, спасибо, не ожидала так сразу получить ответ. Незамедлительно буду пробовать. О результатах отпишусь. Знаю будут еще вопросы. Заранее прошу прощения, я еще булочка (:

# Toma Nov. 3, 2010, 8:30 a.m.
Brainsburn рип сделался, из 6,6 гигов 1448 x 1080 (видео кодек был Н264), стал 1,1 гиг 966 x 720 (с видео кодеком MPEG-4 advanced simple profile), только вот осталась одна звуковая дорожка (слава богу Дубляж) и одни сабы (англ).
Как теперь туда засунуть оригинальную дорогу и русс. сабы. Это нужно из 6, 6 все вытаскивать и в новый рип совать? Если можете распишите. Очень благодарю, обратиться то блин не к кому, одни Виндузятники.
ЗЫ: Можно как-нибудь с вами связаться иначе..аська или почта?
Тут я расписала как делать отрывки (семплы) из видеоhttp://forum.kaztorka.org/index.php?showtopic=17977

# Brainsburn Nov. 3, 2010, 3:03 p.m.
Toma, можно воспользоваться утилитой mmg из пакета mkvtoolnix. http://zenux.ru/softreview/87/
В ней можно открыть видео с одной звуковой дорожкой, потом добавить второе видео, снять галки со звуковой дорожки первого видео и видеопотока второго видео, оставив нужные дорожки. Потом файл можно сохранить в формат MKV. Видео пересжиматься не будет.

Если не получится, то можно выдрать нужные звуковые дорожки с помощью mplayer, как я писал в этой статье и, опять же, с помощью mmg добавить их к вашему видео.
Моя почта - i@zenux.ru

# smalish Nov. 9, 2010, 8:58 a.m.
Здравствуйте!

Регулярно возникает задача из большого набора файлов 3GP получить один AVI для просмотра на бытовом DVD-плеере. Каким набором команд это проще сделать без "заморочек" и тонких настроек?

# Brainsburn Nov. 9, 2010, 6:15 p.m.
smalish, на 100% я не уверен. но скорее всего подойдет такой способ:

mencoder -ovc xvid -oac mp3lame -lameopts cbr:br=160 -srate 44100 -xvidencopts bitrate=2000:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg -forceidx -o out.avi *.3gp

Эта команда из всех 3gp файлов, находящихся в текущей директории, сделает один файл out.avi с кодеком xvid. Xvid поддерживается всеми бытовыми DVD плеерами. Лишь два уточнения: все 3gp файлы должны быть одинакового разрешения и битрейт ("bitrate=2000") возможно придется увеличить, если качество будет недостаточное. Чем выше разрешение видео, тем больше нужен битрейт.

# Andrew Nov. 15, 2010, 4:24 p.m.
Здравствуйте!
Я хочу просто сменить контейнер с mp4 в mkv. Я пытался сделать так же как и в пункте страницы, но получается только это:
$ mencoder 1.mp4 -o 1.mkv -of lavf -oac copy -ovc copy

MEncoder 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
success: format: 0 data: 0x0 - 0x65e0c969
libavformat file format detected.
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang eng
VIDEO: [H264] 1280x528 24bpp 23.976 fps 1893.4 kbps (231.1 kbyte/s)
[V] filefmt:44 fourcc:0x34363248 size:1280x528 fps:23.976 ftime:=0.0417
** MUXER_LAVF *****************************************************************
REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************
OK, exit.
videocodec: framecopy (1280x528 24bpp fourcc=34363248)
Audio format 0x4134504d is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it.

Exiting...

И создается пустой файл 1.mkv
Что делать? Пробовал извлечь аудио дорожку из видео, извлек, но вот удалить из видео потом не смог. Он создал целевой файл, длительностью 2 сек. Вот:
$ mencoder 1.mp4 -o 1.mp4  -ovc copy -idx -nosound

MEncoder 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0 data: 0x0 - 0x65e0c969
libavformat file format detected.
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang eng
VIDEO: [H264] 1280x528 24bpp 23.976 fps 1893.4 kbps (231.1 kbyte/s)
[V] filefmt:44 fourcc:0x34363248 size:1280x528 fps:23.976 ftime:=0.0417
videocodec: framecopy (1280x528 24bpp fourcc=34363248)
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x9576920]stream 0, offset 0x2c2ab9: partial file
Writing index...
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.

Video stream: 115.845 kbit/s (14480 B/s) size: 30802 bytes 2.127 secs 51 frames

# Brainsburn Nov. 18, 2010, 10:35 a.m.
Andrew, в первой команде оно говорит про несовместимость аудио кодека. Попробуйте так:
mencoder 1.mp4 -o 1.mkv -of lavf -oac mp3lame -ovc copy


# SergaNT404 Dec. 2, 2010, 4:11 p.m.
скажите пожалуйста, как можно изменить/исправить пропорции .mkv файла ?

# Роман Dec. 26, 2010, 2:04 p.m.
Подскажите, пожалуйста, какие программы-архиваторы (названия) существуют для Ubuntu 10.04 и где их можно скачать бесплатно (прямые ссылки, желательно)-?.. У меня есть пара "родных" программ, но они не всегда благополучно распаковывают архивы, порой выдают ошибки...

# Павел Dec. 29, 2010, 8:32 a.m.
Здравствуйте Brainsburn, хотелось бы узнать как из ДВД видео сделать DVDRip, желательно оставив звуковые дорожки.

# james Jan. 15, 2011, 7:34 p.m.
здравствуйте, никак пока ниасилю всю эту абракадабру, если не очень сложно, не могли бы вы составить команду для кодирования любого видео в формат .AVI с mp3 звуком достойного качества для просмотра на устройстве с разрешением 800X480, и чтоб пропорции естественно сохранялись.
пути к файлам какнибудь осилю, а вот команды не могу, да и к тому-же в параметрах видео не шибко разбираюсь.
заранее спасибо.

# Brainsburn Jan. 15, 2011, 10:32 p.m.
james, AVI не формат видео, а лишь контейнер, в котором могут лежать видео и звук. Кстати, довольно устаревший контейнер и его не рекомендуется использовать. Да и когда хотят звук достойного качества, то не выбирают MP3. Но если уж просите, то будет как-то так:

mencoder video.wmv -o video.avi -of lavf -oac mp3lame -lameopts vbr:br=256 -ovc xvid -xvidencopts bitrate=1200:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg -vf scale=-2:480

PS: составил по памяти, проверить негде, но, вроде, все верно. Контейнер - avi, видеокодек - xvid, аудиокодек - mp3.

# Brainsburn Jan. 15, 2011, 10:35 p.m.
Да, если исходное видео по высоте изначально меньше 480, то "-vf scale=-2:480" не надо добавлять.

# james Jan. 15, 2011, 10:52 p.m.
# Brainsburn спасибо большое, а какой контейнер вы посоветуете? желательно конечно сэкономить на размере конечного файла но не в ущерб качеству видео. девайс читает форматы : RM, AVI, RMVB, 3GP, FLV, MP4, DAT, VOB, MPG, MPEG, MKV, MOV

# james Jan. 15, 2011, 11:03 p.m.
попробовал, гдето косяк порылся...
james@james-desktop:~$ mencoder /E/downloadsE/Ubrat_periskop_NEW_by_Alex_Shiva.avi -o /E/downloadsE/Ubrat_periskop_po sovetu.avi -of lavf -oac mp3lame -lameopts vbr:br=256 -ovc xvid -xvidencopts bitrate=1200:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg -vf scale=-2:480
MEncoder 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
Error parsing option on the command line: -lameopts

Exiting... (error parsing command line)

# Brainsburn Jan. 15, 2011, 11:05 p.m.
james, тип контейнера на качество видео не влияет. Он отвечает за кол-во возможностей (встроенные субтитры, к примеру), немного - на размер файла. Почитать можно тут: http://bit.ly/hxpQnm . В данном случае советую MKV.

# Brainsburn Jan. 15, 2011, 11:14 p.m.
Извиняюсь, надо заменить "-lameopts vbr:br=256" на "-lameopts abr:br=256". Так должно работать =)

# james Jan. 15, 2011, 11:32 p.m.
a такую же команду для .mkv можно? )))

# james Jan. 15, 2011, 11:35 p.m.
а на скорость кодирования повлиять както можно?

# james Jan. 15, 2011, 11:43 p.m.
ух, по Вашему методу скорость кодирования - 5 кадров в секунду, почти 500 минут длительность кодирования

# Brainsburn Jan. 16, 2011, 12:42 a.m.
Это опции для наилучшего сжатия. Если машина не новая, то фильм будет сжиматься довольно долго. Можно попробовать с дефолтным сжатием, но тогда качество будет чуть хуже:

mencoder video.wmv -o video.mkv -of lavf -oac mp3lame -lameopts abr:br=256 -ovc xvid -xvidencopts bitrate=1200 -vf scale=-2:480

Вообще, xvid сжимает довольно быстро. Сжатие в h264 с высокими настройками будет намного медленнее. К тому-же, для улучшения качества, часто сжимают в два прохода, а это увеличение продолжительности кодирования почти в два раза.

Если надо сжимать еще быстрее:

mencoder video.wmv -o video.mkv -of lavf -oac mp3lame -lameopts abr:br=256 -ovc xvid -xvidencopts bitrate=1200:turbo:vhq=0 -vf scale=-2:480

Но тут качество будет уже посредственное, хотя для мобильных устройств сойдет.

# ronin Jan. 17, 2011, 7:05 p.m.
Здравствуйте объясните пожалуйста почему когда я убрал звуковую дорожку из фильма (mkv) с помощью программы mkvmerge GUI то PowerDVD перестал читать его и TotalMedia.Theatre читает но когда двигаешь позунок то он стал виснуть при этом? и еще хотел бы узнать при удалении дорожки и суббтитров видео остается при этом не изменно?

# Brainsburn Jan. 18, 2011, 7:22 p.m.
ronin, могу сказать лишь, что в Mplayer и VLC у меня таких проблем не возникало. Да, на сам видеопоток удаление звуковой дорожки никак не влияет. Возможно, mkvmerge скомпоновал MKV контейнер так, что эти программы не правильно его понимают, или же они просто плохо поддерживают MKV, хотя вряд ли. Возможно, сам файл изначально был кривой, конкретнее ничего не могу сказать.

# ronin Jan. 18, 2011, 8:01 p.m.
mkvmerge GUI, а есть ли официальный сайт этой проги?

# Brainsburn Jan. 20, 2011, 6:12 a.m.

# Антон March 3, 2011, 9:52 a.m.
Здравствуйте. Мне необходимо вставить в начале и в конце видео, изображение в формате PNG. Можно ли с помощью memcoder или ffmpeg осуществить данную функцию? Если да, то не подскажите ли команду.

# miig March 15, 2011, 1:46 p.m.
Скачал себе сезон одного сериальчика в WEB-DL 720p, с целью дальше его рипнуть в WEB-DLRip с разрешением 720x400 и битрейтом видео ~2000. После поисков по гуглу и различным форумам вывел такую команду:
mencoder -vf scale=720:400 -ffourcc XVID -ovc lavc -oac mp3lame -lavcopts vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=4:dia=4:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=3:vqscale=2:mpeg_quant -lameopts cbr:br=192:aq=0 -o outputfile.avi inputfile.mkv

Первые 3 серии рипнулись как и надо: разрешение 720x400, битрейт видео ~2000.
Но вот с 4-ой серией не совладать. При выполнении данной команды получается битрейт ~1600-1700.
Попробовал, альтернативу, как посоветовали на одном из форумов:
mencoder -vf scale=720:400 -ffourcc XVID -ovc lavc -oac mp3lame -lavcopts vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=4:dia=4:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=3:vbitrate=15000:mpeg_quant -lameopts cbr:br=192:aq=0 -o outputfile.avi inputfile.mkv

Битрейт видео получается ~1400-1500 (пробовал в vbitrate выставлять и 2000, и 3000 и больше).
Хотя если выполнить команду остановшись после 300 секунд (сделал ради теста): -endpos 300.
Битрейт у отрезка почти при любом vbitrate выше 2000, получается как и нужно ~2000.
Не могу понять в чём проблема.

# Brainsburn March 19, 2011, 12:02 a.m.
Для разрешения 720х400 битрейт 2000 это очень много. Можете выставить хоть 9999 битрейт, но сжиматься будет максимум с 2000, потому-что при данном разрешении кодеку хватает битрейта 1700-2000, чтобы выдать максимальное качество. Максимальный битрейт зависит от сложности картинки, движений и тд, поэтому для разных серий сериала он отличается.

# miig March 19, 2011, 9:39 p.m.
Ясно. А можно ли как-то узнать заранее, какой битрейт максимально возможно выжать из того или иного видео во время процесса рипа?

# Brainsburn March 19, 2011, 10:53 p.m.
Нет, это зависит от картинки. Я сегодня сжимал видео 1920х960, указав битрейт 3000к, в начале видео была статическая заставка - черный фон и белый текст, и битрейт на этом месте был около 120к. Как пошла активная картинка, битрейт стал увеличиваться. Да и зачем "выжимать" битрейт? Лучше стараться подбирать оптимальный битрейт для лучшего сочетания размер/качество. Если бы и можно было сжать видео 720х400 с битрейтом 10000к, то разницы между 10000к и 2000к не было бы. Если хотите высокое качество, используйте кодек x264.

# Гость March 23, 2011, 4:01 p.m.
Спасибо большое за примеры на пальцах!
Очень помогли разобраться с нуля.

# SergaNT April 7, 2011, 8:18 a.m.
Подскажите пожалуйста, можно ли с помощью mplayer, mencoder вытащть субтитры из mkv контейнера в отдельный файл.

# Наталья April 16, 2011, 12:09 a.m.
Здравствуйте!

пытаюсь из 3gp сделать что-то нормальное - avi, mpeg, mvk...
mencoder VIDEO0019.3gp -o 19.mkv -ovc lavc -oac lavc

однако после этой команду в получающемся видео куда-то девается звук.

а если использую команду
ffmpeg -i VIDEO0019.3gp -f avi -vcodec mpeg4 -acodec copy 19.avi
то качество становится ужасным, а звук запаздывает

как быть?
спасибо!

# Brainsburn April 16, 2011, 10:55 p.m.
Наталья, качество портится потому-что вы сжимаете видео с дефолтными настройками. Если вам надо лишь сменить контейнер, то пережимать ничего не надо. Попробуйте так:
mencoder VIDEO0019.3gp -o 19.mkv -of lavf -ovc copy -oac copy

-of lavf - определяет формат выходного файла по расширению (19.mkv)
-ovc copy -oac copy - копировать видео и звук без пересжатия
Все должно работать ровно, если исходный файл сам по себе не корявый. Если не получится, то попробуйте ffmpeg:
ffmpeg -i VIDEO0019.3gp -f avi -vcodec copy -acodec copy 19.avi

# Наталья April 17, 2011, 2:57 a.m.
спасибо за ответ! однако:
1. по первой команде выдает
Audio format 0x726d6173 is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it.

если менять аудиокодек, то либо звук исчезает, либо запаздывает, либо команда не хочет выполняться

2. по второй команде качество ок, но звук опять запаздывает.

я уже перепробовала множество кодеков и видео и аудио в разных вариантах. в итоге получается либо отсутствие звука, либо хреновое качество с запаздывающим звуком, либо нормальное качество с запаздывающим звуком.

3. вообще мне всего лишь надо перевернуть видео из вертикального формата в горизонтальный:) если делать просто

mencoder -vf rotate=2 -o 19-2.3gp -ovc copy -oac copy VIDEO0019.3gp

то опять пишет
Audio format 0x726d6173 is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it

и дальше история с подбором кодеков повторяется...

мистика:)

# Brainsburn April 18, 2011, 10:54 a.m.
Честно говоря, не знаю, в чем проблема, т.к. я не особо большой специалист в этом деле :) Можно попробовать вырезать звук в отдельный файл одним из способов, описанных в этой статье, а затем видео и звук положить в контейнер. Правда, не могу сказать, решит ли это проблему с запаздыванием звука.

# Luc Aug. 19, 2011, 6:17 a.m.
Подскажите пожалуйста, порой в фильмах происходит как бы двойное звучание, диалоги нормально, а вот музычка на заднем плане звучит как бы в унисон со второй такой же. Звуковая дорожка при этом одна. В чем тут дело и как это исправить, уж очень такая тема напрягает :)

# PPN Feb. 17, 2012, 11:12 p.m.
Здравствуйте!
Подскажите, пожалуйста, как отразить видео зеркально без поворота?

# Brainsburn Feb. 18, 2012, 6:54 p.m.
PPN, mplayer -vf mirror video.mkv

# menc March 19, 2012, 11:58 p.m.
У меня вопрос по поводу mencoder`а.Есть файл в mkv,видеокодек avc,аудио - aac.Как можно с помощью mencoder`а превратить это дело в обычный mpeg,то есть dvd файл,только не vob? Хотелось бы максимально сохранить качество оригинала,если возможно,но оставить тот же размер.Или не судьба? Дело в том,что таких файлов не один,это целый сериал и он по размеру тянет на dvd9.Хочу их,если получится, подсунуть в программу авторинга,где есть смарт-рендеринг,то есть видео остается таким же и размер не увеличивается.

# menc March 19, 2012, 11:59 p.m.
У меня вопрос по поводу mencoder`а.Есть файл в mkv,видеокодек avc,аудио - aac.Как можно с помощью mencoder`а превратить это дело в обычный mpeg,то есть dvd файл,только не vob? Хотелось бы максимально сохранить качество оригинала,если возможно,но оставить тот же размер.Или не судьба? Дело в том,что таких файлов не один,это целый сериал и он по размеру тянет на dvd9.Хочу их,если получится, подсунуть в программу авторинга,где есть смарт-рендеринг,то есть видео остается таким же и размер не увеличивается.

# Cyhyraeth March 28, 2012, 5:25 p.m.
Добрый день. Помогите, пожалуйста, решить проблему с MEncoder'ом. Соединила между собой два файла в формате .flv, качество замечательное, все прекрасно. Потом к получившемуся файлу попыталась присоединить еще один, в результате чего изображение пошло квадратиками. Причем, такая фигня получается только в том случае, если один/оба соединяемых файла ранее были обработаны уже в MEncoder'е, в остальных случаях картинка хорошая. Что с этим можно сделать? Собственно, пользовалась кодом mencoder -ovc copy -oac copy -o out.flv video1.flv video2.flv

Спасибо.

# Brainsburn March 29, 2012, 2:34 p.m.
Cyhyraeth, можно попробовать склеивать видео не mencoder-ом, а в ffmpeg или avidemux.
ffmpeg -i old.flv -vcodec copy -acodec copy new.flv
Правда, у меня при смене контейнера таким способом с AVI на FLV, новое видео отказалось проигрываться mplayer-ом. Если менять не на FLV, то все ок.

# electron July 17, 2012, 1:02 p.m.
Если я правильно понял, сделать операцию -vf crop …. невозможно при -ovc copy ?

# olegggphr Oct. 8, 2012, 3:53 p.m.
Доброго времени суток! Подскажите, пожалуйста, как можно в linux скопировать часть видео и не повредить изначальный файл?

# Brainsburn Oct. 8, 2012, 5:23 p.m.
olegggphr, в комментариях я уже писал:
avisplit -i video.avi -t 00:05:00-00:10:00
Исходный файл при этом не будет затронут.

# olg Feb. 21, 2013, 1:24 p.m.
Здравствуйте.
У меня есть много файлов с регистратора в MOV. Надо их “слить” в один, а потом вырезать лишнее (или вырезать лишнее и “слить” нужное в один файл) типа, как в винде это делается в Nero Vision. Чем и как это можно сделать. Простите за наивые и глупые вопросы, но я только недавно перешёл на linux и ещё очень плохо его знаю, но очень хочу окончательно “спрыгнуть” с виндовки.

# Гость Feb. 22, 2013, 12:31 a.m.
olg, следующая команда склеит два MOV-файла в один:
mencoder -oac copy -ovc copy видео1.mov видео2.mov -o новое.mov 

Следующая команда склеит все MOV-файлы в текущем каталоге в один:
mencoder -oac copy -ovc copy -idx -o новое.mov *.mov

При написании имен файлов, помните, что Linux чувствителен к регистру букв.

Вырезать лишнее удобнее будет программий avidemux (с GUI). Там это делается просто: ставите маркер “А”, ставите маркер “B”, жмете Delete и выбранный кусок будет удален из видео.

# olg Feb. 25, 2013, 10 a.m.
Открываю файл MOV с авторегистратора avidemux и получаю сообщение:
H.264 detected

If the file is using B-frames as reference it can lead to a crash or stuttering.
Avidemux can use another mode which is safe but YOU WILL LOSE FRAME ACCURACY.
Do you want to use that mode?

Что оно означает и чем грозит?
При нажатии на кнопку Use safe mode (использовать безопасный режим - что это за режим такой) получаю очередное сообщение:
Не найден декодер звука для этого файла

Сохранение (Аудио+Видео) создаст плохой AVI файл. Сохранение только аудиопотока будет работать.

Какой нужен декодер и где его взять? VLC media player воспроизводит эти файлы без проблем и со звуком. Как мне редактировать (вырезать лишнее) из этих файлов и сохранить исходное качество.

# Гость Feb. 25, 2013, 3:47 p.m.
olg, не могу сказать, какой нужен декодер… Надо знать, какой кодек использует ваш видеорегистратор. Можно попробовать установить пакет win32codecs, возможно поможет.
Если файлов не много, можно воспользоваться консольным вариантом:
ffmpeg -i input.MOV -ss 00:00:30 -t 00:01:30 output.MOV
Данная команда вырежет кусок, начиная с 30-й секунды, длительностью 1мин 30сек и сохранит его в файл output.MOV.
В принципе, можно в kdenlive обрезать, склеить, отрендерить с высоким битрейтом и потеря качества будет незаметна.

# Гость Feb. 25, 2013, 4:23 p.m.
mediainfo даёт вот какую информацию

General
Complete name : /media/sf_V_DRIVE/Мои видеозаписи/100MEDIA/AMBA0184.MOV
Format : MPEG-4
Format profile : QuickTime
Codec ID : qt
File size : 175 MiB
Duration : 3mn 0s
Overall bit rate mode : Constant
Overall bit rate : 8 129 Kbps
Encoded date : UTC 2012-03-25 18:29:48
Tagged date : UTC 2012-03-25 18:29:48
AMBA : 

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4.0
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Format settings, GOP : M=1, N=8
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 3mn 0s
Bit rate mode : Constant
Bit rate : 8 001 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.129
Stream size : 172 MiB (98%)
Title : Ambarella AVC / Ambarella AVC
Language : English
Encoded date : UTC 2012-03-25 18:29:48
Tagged date : UTC 2012-03-25 18:29:48

Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 3mn 0s
Bit rate mode : Constant
Bit rate : 128 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 2.75 MiB (2%)
Title : Ambarella AAC / Ambarella AAC
Language

# Гость Feb. 26, 2013, 12:29 a.m.
У меня avidemux отлично понимает видео с этим кодеком (ААС). При чем, декодер он использует свой. Остается полагать, что видеорегистратор создает кривой контейнер. С бубном можно плясать долго, лучше сконвертируйте с битрейтом 10000 и не заметите потерь кач-ва.

# hexen March 23, 2013, 2:56 a.m.
Тут уже спрашивали по поводу зеркального отображения видео.
mplayer -vf mirror video.mkv
А как бы теперь сохранить? =)

# Гость March 23, 2013, 4:37 a.m.
hexen, без перекодирования не получится. Как вариант:
mencoder -oac pcm -ovc lavc  исходное.mp4 -vf mirror -o зеркальное.mp4
Настройки кодирования выбирайте сами :-)

# dm2003 June 20, 2013, 11:46 a.m.
Я пока не особо силен в Терминале, поэтому нашел несколько графических способов для извлечения звука из видео файлов. В Убунту эти методы работает нормально - http://softhelp.org.ua/?p=3973

# Дмитрий Захаров Sept. 23, 2013, 5:14 p.m.
Не могу никак найти инфу о том как перевернуть видео на 180°. Именно так, а не зеркально отразить. Нужно чтоб собрать команду для winff тоесть используется ffmpeg

# Дмитрий Захаров Sept. 23, 2013, 5:26 p.m.
Нашел, но в нерусском сегменте. На случай если кому понадобится —
Как перевернуть видео ffmpeg на 180° надо добавить опцию -vf hflip,vflip

# евгений April 26, 2016, 10:54 a.m.
Привет, а не подскажите, как наложить видео на видео. Есть какое то количество видео файлов, нужно не склеить их, что бы они не друг за другом шли, а наложить их все друг на друга, как и чем это лучше сделать?

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

Brainsburn_: “Написание в 1-й” подразумевает “в первой”, а не в... >>>
ZZZ: “Написание в 1-й” подразумевает &ldquo... >>>
SBOdin: Спасибо за полезное руководство... >>>
fanyit: Спасибо за обзор. очень полезно и доступно.... >>>
cheech: Спасибо, статья полезная )... >>>