Уголок СУ-11 на просторах вселенной

пятница, 26 октября 2007 г.

Кодирование видео с помощью MEncoder

Нашел гдето в инете, мне очень пригодилось

Кодирование с помощью MEncoder.
Mplayer.hu Перевод - Selena, 6.07.2003

- Несов Артем: Okay, so what do you need for this translation, besides a miracle?
- Selena: Dictionaries. Lots of dictionaries.
7. Кодирование с помощью MEncoder.

Полный список доступных параметров и примеров применения MENCODER смотрите в man page. Ряд жизненных примеров использования параметров в командной строке и детальные руководства по использованию нескольких перекодировочных параметров - читайте в encoding-tips, собранном из нескольких листов рассылки пользователей mplayer. Обсуждение всех аспектов применения и проблем, связанных с кодированием с помощью MEncoder, можно найти в архиве.
7.1 Кодирование MPEG-4 ("DivX") в 2 или 3 прохода.

Кодирование в 2 прохода: название происходит оттого, что при этом методе файл кодируется дважды. При первом кодировании (предварительный проход) создаётся несколько временных файлов (*.log) с размером в несколько мегабайт, не стоит удалять их пока (вы можете удалить AVI). При втором проходе конечный файл двойного прохода создаётся с использованием данных битрейта временных файлов. В результате качество картинки в конечном файле будет намного лучшим. Если вы впервые сталкиваетесь с этим, вам следовало бы обратиться к руководствам, доступным в сети.

В данном примере показано, как перекодировать DVD в MPEG-4 ("DIVX") AVI в 2 прохода. Для этого потребуются только две команды:

rm frameno.avi - удаление файла, который мог остаться от предыдущего кодирования в три прохода.
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi

Кодирование в 3 прохода: это расширенный вариант кодирования в 2 прохода, при котором кодирование звука происходит отдельно. Этот метод позволяет оценить битрейт удобный для записи видео на CD. В отличии от кодирования в 2 прохода звук кодируется только один раз. Схема использования:

1. Удалите мешающий временный файл:

rm frameno.avi

2. Первый проход:

mencoder -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi

Создаётся звуковой avi-файл, содержащий только требуемую звуковую дорожку. Не забудьте -lameopts, если вам необходимо установить параметры кодека. Если вы кодировали длинный фильм, MEncoder выведет рекомендуемые значения битрейта для получения конечного файла требуемых размеров (650 Мб, 700 Мб, 800 Мб), после этого проход завершается.

3. Второй проход:

mencoder -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=

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

4. Третий проход:

mencoder -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=

Это второй проход кодирования видео. Если вы не знаете, что делать, укажите тот же битрейт, что и в предыдущем проходе. При этом проходе звук из frameno.avi будет добавлен в конечный файл.. вот и всё!

Пример кодирования в 3 прохода:

rm frameno.avi - удаление файла, который мог остаться от предыдущего кодирования в три прохода.
mencoder -dvd 2 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
7.2 Перекодирование в формат MPEG

MEncoder может создавать файлы формата MPEG (MPEG-PS). Это может быть возможным лишь с кодеком mpeg1video из libavcodec, потому что большинство проигрывателей - исключая MPlayer - воспринимают только MPEG1 видео, и звуковые дорожки MPEG1 layer 2 (MP2) в файлах MPEG.

Перекодирование в MPEG с помощью кодека mpeg1video может показаться совершенно ненужным, к тому же реализованным, возможно, со множеством ошибок, но оно важнее, чем кажется, потому что MEncoder на данный момент не может кодировать звук в MPEG1 layer 2 (MP2), который другие проигрыватели ожидают увидеть в MPEG.

Чтобы изменить формат конечного файла MEncoder, используйте опцию -of mpeg.

Пример:
mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy media.avi -o output.mpg
7.3 Перемасштабирование

Часто возникает потребность в изменении размера изображения. На это может быть множество причин: уменьшение размера файла и др. Многие люди прибегают к перемасштабированию даже при преобразовании DVD или SVCD в DivX, что не очень хорошо. Если вы всё же решили сделать это, прочитайте раздел Сохранение пропорций.

Процесс перемасштабирования осуществляется с помощью 'scale' видео фильтра: -vop scale=width:height. Его качество может устанавливаться с помощью опции -sws. Если она не установлена, MEncoder будет использовать 0: fast bilinear.

Пример:

mencoder input.mpg -ovc lavc -lavcopts vcodec=mpeg4 -vop scale=640:480 -oac copy -o output.avi
7.4 Копирование дорожек

MEncoder может поступать с исходными дорожками двумя путями: перекодировать или копировать их. Этот раздел о копировании.

* Видео дорожка (опция -ovc copy): можно много чего сделать :)
Так, например, можно вставить (без перекодирования) FLI или VIVO или MPEG1 видео в AVI файл. Конечно, только MPlayer сможет проигрывать такие файлы :) И это, вероятно, не будет ни какой пользы. Есть и рациональное применение: копирование видео дорожки может быть полезным, например, когда нужно перекодировать только звуковую дорожку (например, несжатый PCM в MP3).
* Аудио дорожка (опция -oac copy): очень просто. Можно взять внешний аудио файл (MP3, Vorbis) и смешать его со звуковой дорожкой. Используйте для этого опцию -audiofile .

7.5 Исправление AVI файлов с испорченными заголовками или interleaving

Проще простого. Мы просто копируем видео и аудио дорожки, а MEncoder генерирует заголовок. Конечно, это не может устранить возможные ошибки на видео и/или аудио дорожках. Так же можно исправить файлы с испорченным interleaving, таким образом опция -ni больше не требуется.

Пример:

mencoder -idx input.avi -ovc copy -oac copy -o output.avi
7.5.1 Соединение нескольких AVI файлов

Как побочный эффект восстановления испорченных AVI файлов можно отметить возможность MEncoder соединять 2 (или более) AVI файлов.

Пример:

cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -

Примечание: При этом подразумевается, что в файлах 1.avi и 2.avi используются одинаковые кодеки, разрешения, битрейт и т.д., и по крайней мере 1.avi не должен быть повреждён. Может возникнуть потребность сперва исправить исходные AVI файлы, как это описано выше.
7.6 Кодирование с помощью семейства кодеков libavcodec

libavcodec позволяет кодировать во множество интересных видео и аудио форматов (на данный момент аудио кодеки не поддерживаются). Вы можете использовать следующие кодеки:

* mjpeg - Motion JPEG
* h263 - H263
* h263p - H263 Plus
* mpeg4 - ISO standard MPEG-4 (DivX 5, XVID compatible)
* msmpeg4 - pre-standard MPEG-4 variant by MS, v3 (aka DivX3)
* msmpeg4v2 - pre-standard MPEG-4 by MS, v2 (используется в старых asf файлах)
* wmv1 - Windows Media Video, version 1 (aka WMV7)
* rv10 - старый RealVideo кодек
* mpeg1video - MPEG1 video :)
* huffyuv - сжатие без потерь

Первый столбец содержит название кодека, которое должно быть указано после vcodec, как, например: -lavcopts vcodec=msmpeg4

Пример с сжатием MJPEG:

mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
7.7 Создание видео файла из нескольких файлов JPEGs, PNGs или TGAs

MEncoder способен создавать видео файлы из одного или более файлов JPEGs, PNGs или TGAs. Простым копированием кадров создаются файлы MJPEG (Motion JPEG), MPNG (Motion PNG) или MTGA (Motion TGA).

Процесс выглядит следующим образом:

1. MEncoder декодирует исходное изображение с помощью libjpeg (когда декодируется PNG, используется libpng).
2. Затем MEncoder отправляет изображение в выбранный видео компрессор (DivX4, XviD, ffmpeg msmpeg4, и т.д ...).

Примеры:

Объяснение опции -mf вы можете найти на man page.

Создание файла DivX4 из всех файлов JPEG в текущей директории:
mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi *.jpg

Создание файла DivX4 из некоторых файлов JPEG в текущей директории:
mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o output.avi frame001.jpg,frame002.jpg

Создание файла Motion JPEG (MJPEG) из всех файлов JPEG в текущей директории:
mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o output.avi *.jpg

Создание несжатого видео файла из всех файлов PNG в текущей директории:
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb -o output.avi *.png

Примечание: Ширина должна быть целым числом, кратным 4, это ограничение формата RAW RGB AVI.

Создание файла Motion PNG (MPNG) из всех файлов PNG в текущей директории:
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy -o output.avi *.png

Создание файла Motion TGA (MTGA) из всех файлов TGA в текущей директории:
mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy -o output.avi *.tga
7.8 Извлечение субтитров из DVD в файл Vobsub

MEncoder способен извлекать субтитры из DVD в файлы формата Vobsub. Они сотоят из пары файлов с расширением .idx и .sub и обычно помещаются в единый архив .rar. MPlayer может проигрывать субтитры с помощью опций -vobsub и - vobsubid.

Вы указываете названия конечных файлов (без расширения .idx или .sub) с помощью -vobsubout и индекс субтитров в конечных файлах с помощью -vobsuboutindex.

Если исходный материал взят не с DVD вы должны использовать -ifo, чтобы указать файл .ifo, необходимый для создания конечного файла .idx.

Если исходный материал взят не с DVD и у вас нет файла .ifo вам потребуется опция -vobsubid, чтобы указать какой идентификатор языка помещается в файл .idx.

Если файлы .idx и .sub уже существуют, то они будут дописываться. Итак вы должны удалить эти файлы.

Примеры:

Копирование двух субтитров с DVD при кодировании в 3 прохода
rm subtitles.idx subtitles.sub
mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3
mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts pass=1
mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts pass=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
7.9 Сохранение пропорций

Файлы DVD и SVCD (т.е. MPEG1/2) содержат значения пропорций, описывающие, как проигрыватели должны масштабировать видео данные, вот почему люди не выглядят яйцеголовыми (пр.: 480x480 + 4:3 = 640x480). Однако вам следовало бы знать, что при перекодировании в AVI (DivX) эти значения в его заголовках не сохраняются. Перемасштабирование видео выходит отвратительным и занимает время, должен быть иной путь!

И он есть.

MPEG4 обладает уникальным свойством: в видео данных могут содержаться необходимые значения пропорций. Да, так же как и файлы MPEG1/2 (DVD, SVCD). К сожалению, нет проигрывателей, поддерживающих эти атрибуты. За исключением MPlayer.

Эта особенность может быть использована только с кодеком libavcodec mpeg4. Имейте в виду: хотя MPlayer и будет верно проигрывать созданный файл, другие проигрыватели будут использовать неверные пропорции.

Вы должны обрезать чёрные полосы сверху и снизу изображения. О фильтрах cropdetect и crop вы можете прочитать на man page.

Пример:

$ mencoder sample-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:aspect=16.0/9.0 -vop crop=714:548:0:14 -oac copy -o output.avi

Перевод осуществлен Selena ( moonselenity@yandex.ru) при очень небольшой поддержке Pr.
Творческий вдохновитель: Несов Артем.

пятница, 19 октября 2007 г.

Оказывается они существуют...


для тех кто заинтересовался - http://www.mcst.ru/prod_s.shtml

вторник, 16 октября 2007 г.

Проблема запуска VMWare Player под Slackware Linux 12

Наткнулся на забавную пролему при запуске vmware player
bash-3.1$ /opt/vmware/player2/bin/vmplayer
/opt/vmware/player2/lib/vmware/bin/vmplayer: symbol lookup error: /opt/vmware/player2/lib/vmware/lib/libvmwareui.so.0/libvmwareui.so.0: undefined symbol: _ZN3Gtk13RecentManager11get_defaultEv
решение было найдено на форуме vmware:
необходимо в начало файла vmplayer вставить экспорт одной из переменных, на ваш вкус
export VMWARE_USE_SHIPPED_GTK=yes
или
export VMWARE_USE_SHIPPED_GTK=force

Вчера вечером игрался с фотоаппаратом





вторник, 9 октября 2007 г.

Лада Калина - сделано на глаз!

Недавно ехав в районе огородного проезда в Москве заметил очень смешную рекламу.
На плакате большими буквами было написано - "Лада Калина - сделано на ГЛАЗ"
Прочитав слоган я даже както не поверил, что автоВАЗ сознались во всем! и немного притомрозил для более детального изучения плаката. На фоне были нарисованы разные роботы, я конечно понял что имели в виду авторы: сборку калины, якобы, ныне осуществляют роботы и все очень точное с мнимальными доупсками.
Но за надпись "Лада Калина - сделано на глаз" автор рекламы получает двойку в номинации "реклама" и однозначную пятерку за честность.
Уже с детства видя щели в кузовных элементов жигулей, я подозревал что их делают на Глаз! Теперь я знаю всю правду.
P.S. а вот так выглядит реклама на пять балов

Я пиглашу на танец память и мы закружимся в двоем ...



... и тихо скажет - до скорой встречи, и уйдет

суббота, 6 октября 2007 г.

Мой осенний отпуск в Москве в Лосином острове

Осенний отпуск 2007



Жмем на картинку и открываем галерею с фтографиями

Небольшой коментарий к фотографиям. Катался и снимал 4, 5 октября 2007г. Все фотографии сделаны в Лосином острове на территории Москвы. За МКАД ехать не хотелось по разным причнам. Многие любят уезжать в отпуск за границу, вообще бежать из Москвы, я преследовал немного другие цели. За последнее время я здорово устал от работы ,которую я хоть и люблю, но и от нее нужно отдыхать. Погода выдалась хорошая, бабье лето заканчивалось, на работе затишье. Мне очень давно хотелось просто погулять по улицам, покататься на велсипеде, как несколько лет назад, когда я учился в иснтитуте и был относительно свободен от 8ми часового рабочего дня. Очень хотелось вспмонить эти ощущения, запах студенческих лет. В четверг утром я отправился в Москву, попутно заехал посомтреть на реконструкцию института после пожара - ничего нового, но настроение стало просто сказочным о тпредчувствия отпуска. По необьяснимой причине до Москвы на машине я добрался за 20 минут без пробок. Далее в гараже был подготовлен велосипед, по старой привычке подкачал колеса и натянул тросик тормозов. Надо признаться, что первые пол дня меня все еще приследовали мыли о работе, всели там в порядке, с парой мелких вопросов звонил Максим. Но усилием воли я прогнал эти назойливые соображения, да и вобще я был уверен в своих серверах, особенно в линуксе. В лосиный остров заехал по той тропинке по которой много лет назад много, лет подряд ходил в школу. В лесу мало что изменилось, разьве что стало еще более грязно - пластиковые бутылки со временем не гниют. По дороге был облаян какойто дикой псиной с хозяйкой пофигистического вида. Решил спланировать маршрут катания-воспоминания на несколько дней в перед. На четверг был запланирован полегон, далее по прямой до МКАДа и на лево к инфекционной больнице, затем домой. Также было ограничение, хотелось ехать там где не будет людей, хотелось побыть в мыслях, в одиночсетве. Солнышко светило ярко, сразу скажу что поездка удалась на пять баллов. Были и небольшие трудности: в самом начале развалилась колодка передних тормозов, пришлось подручным инстурментом открутить их вобще. Так же забавный казус произошел на полегоне. Горку, как мне кажется искусственного происхождения, окупировали пионеры и псотроили всякие трамплины. Я как и раьше решил прокатится по хребту с ветерком, в итоге когда я увидил трамплин было уже поздно, чуть в штаны не наложил от неожиданности. Летел с велосипедом вниз голвой, пока переднее колесо не уткнулось в землю, думаю что спас передний амортизатор. Пока он сжимался при ударе заднее колесо с моим задом успело приземлится на землю. Вообще я немного расстроился от мысли, что наверное начал стареть, т.к. раньше увидив такое ябы еще раза три прокатилсябы пока у велсипеда что нибудь не отвалилосьбы или же я что нибудь не сломалбы. Но сейчас я решил ограничиться в прыжках. К мыслях о старости еще сделал неприятное для себя наблюдение, я начал толстеть, т.е. у меня отрос небольшой живот, в котоырй иногда впивался широкий ремень штанов. Буду худеть. Нельзя столько есть, особенно на ночь. Дальше все прошло без приключений и на удивленеи гладко, я тольк один раз заехал в крупное болото, т.к. стал уже забывать лесные тропинки и немного заблудился. Лес без животных - это не лес. В лесу я повстречал, в очередной раз, пару лосей. Я не знаю кто из них опасался больше - я их или они меня, но пока я их не отфотографировал и не уехал, лоси старались не шевелится. Возмоно делали вид, что они это не они. Утром я подзабыл купить новую батарейку в спидометр и ездил без него, вернувшись домой, пркиинул по навигатору, получилось около 25км. Для первого дня отпуска помоему не плохо. Про второй день сказать особо нечего, испртилась погода. Но я успел пару часиков покататься и немного пофотографировать. На следующую неделю запланировал посетить могилу солдата времен войны 41-45, описание которой видил на геокешинге. И хочу посмотреть заброшеную мебельную фабрику, что сейчас там. Раньше было довольно жудковатое место. Также хочу покататься в лесу за МКАДОМ в строну медвежьих озер, если погода не подведет - прокачусь.
Пожлауй и все :)