пятница, 26 июня 2009 г.

Samsung YP-T10: конвертация видео

Если по жуткому стечению обстоятельств Вы тоже стали обладателем этого замечательного чудо-девайса (или ему подобного), то, вероятно, Вы столкнулись с проблемой пережатия видео в совместимый формат. Оказалось, ест этот плеер далеко не все что называется wmv и xvid, как обещано списком поддерживаемых форматов. Разумный компромисс цены и качества, но уважаемые производители, блин... Напишите же, чем его кормить! Ведь не все пользователи хотят запускать ваши говно-программки, прилагаемые к диску.

Довольно длительные и упорные поиски в англоязычном сегменте интернета таки были вознаграждены правильными советами. Обсуждаемый плеер с удовольствием кушает правильно и старательно приготовленный AVI: только с нравящимися ему ингридиентами, и только под авторским соусом.

В качестве кухонного комбайна я взял ffmpeg. Он есть в репозиториях.

$ sudo aptitude install ffmpeg


Чтобы сконвертировать видео в нужный формат, можно выполнить вот такую команду:

$ ffmpeg -y -i ljudi_x.mkv -cropleft 120 -cropright 120 -croptop 28 -cropbottom 28 -f avi -vcodec libxvid -s 320x240 -b 400kb/s -r 30 -aspect 4:3 -acodec libmp3lame -ab 192kb/s -ac 2 x_mans.svi


Немного пояснений.

-y - Перезаписываем файл назначения, если по какой-то причине мы начали процесс заново.
-i - Имя исходного файлы в любом поддерживаемом ffmpeg формате.
-cropleft, cropright, croptop, cropbottom, padleft, padright, padtop, padbottom - Обрезаем края и добавляем черные полоски. Это нужно, когда соотношение сторон кадра в исходном видео отличается от 4:3. Если не обрезать, то морды будут вытянутые или сплюснутые. Чтобы подобрать правильные числа, необходимы знания элементарной математики. Обрезание происходит до преобразования, так что манипулировать нужно именно с исходным размером. Узнать их можно, например, запустив конвертацию (после чего ее можно тут же оборвать комбинацеий Ctrl+C). ffmpeg выведет в первых строках своего письма основные данные об исходном формате. Если же вы не умеете считать или просто влом, можете упустить эти параметры.
-f - Формат файла назначения.
-vcodec - Кодек для кодирования видео. Нужен именно libxvid.
-s - Размер кадра на выходе. В примере - разрешение нашего плеера.
-b - Количество данных в секунду - по сути качество. Мне с таким размером хватило 400kb/s. Хотя кто-то предлагал 2000.
-r - количество кадров в секунду. Можно попробовать убрать, чтобы частота кадров не менялась. Не помню, работает ли с другими значениями.
-aspect - соотношение сторон на выходе.
-acodec - Кодек для звука. Нужен именно libmp3lame.
-ab - Количество данных в секунду для звука. По сути качество звука. Рекомендуют три варианта значения, из которых я взял максимальное: 192kb/s. Делать меньше никакого смысла не вижу. Итак нихрена не видно на мелком экране, пусть хоть звук будет нормальный :)
-ac - Количество каналов звука (2 для стерео).

Вот такие настройки работают. Шаг вправо, шаг влево - и может уже не читать.

Если во время конвертации вы хотели бы иметь возможность делать на вашем компьютере что-то еще, читайте про ограничение использования процессора процессом

4 комментария:

  1. вместо использования cpulimit можно в начало команды добавить nice -19 ffmeg ...
    Тогда будут отъедаться только незанятые ресурсы процессора..

    ОтветитьУдалить
  2. Спасибо! Не знал такого способа установки приоритета :)

    Однако, nice лично у меня не решает проблему полностью, все равно система медленно откликается, плюс на винт ведь nice не поставишь.

    А почему именно 19?

    ОтветитьУдалить
  3. Я уже в соседнем посте отписался. ionice.

    А почему 19 и прочее man nice
    man ionice
    Там все подробно описано, честно!

    ОтветитьУдалить