С покупкой КПК возникла необходимость конвертировать фильмы в удобоваримый для него формат. Для пользователей офтопика, как обычно понаписана куча специализированных утилит (по крайней мере я постоянно натыкаюсь на их анонсы, пользоваться самому не доводилось). Для linux делается консольными утилитами, типа mencoder, ffmpeg, transcode и мордами к ним вроде acidrip, dvdrip и т.д. К сожалению acidrip и dvdrip умеют рипать только с DVD, как перекодировать уже сграбленный avi-файл я не нашел. Другие тулзы не пробовал, да и не интересно - интересней разобраться с консольными да и пользоваться ими удобней.
Информации по перекодированию везде хватает, в основном собирал по этому форуму, форуму на gentoo.org, документация на сайте mplayer-а и man mencoder. Какого-то полного и последовательного описания найти не удалось, так что приходилось связывать все в одно самому, ну и пробывать.
Особенности видео для КПК:
- Контейнер только avi, т.к. его понимает большинство плееров без проблем.
- Звук в mp3. Причина таже.
- Видео в mpeg4. Причина таже.
- Чем меньше результирующее разрешение видео -> тем меньше размер файла и меньше тормозов, но разумеется тем хуже качество.
В связи с этим были приняты следующие решения:
- Утилита для кодирования выбрана mencoder. ffmpeg узкоспециализирован, transcode менее популярен, да и описания по нему встретилось меньше. Возможно он чем-то лучше/хуже, но до нее у меня руки не дошли.
- Звук кодил mp3lame. CBR 96 k/bit. mono. Можно с битрейтами поэксперементировать, звук в деле конвертирования вопрос простой. Для себя я установил именно такой средний уровень. Битрейт должен быть постоянным (CBR) - особенность контейнера AVI, иначе может быть рассинхронизация с видео.
- Кодек видео libavcodec (он же lavc, является частью ffmpeg). Можно xvid - тоже хороший кандидат, но я не пробовал. msmpeg (он же divx3) устарел, x264 (H.264) более требователен к процу. Кодил в 2 прохода. Опции - mbd=2 v4mv trell, взято из man-ов как наиболее эффективное (и не слишком муторное для понимания).
- Оптимальное разрешение для себя я определил близкое к 320x240. При этом обе составляющие должны быть кратны 16 - особенность работы кодеков, требование не обязательное, но сильно желательное. Пропорции видео тоже портить нельзя. Поэтому часто перед уменьшением нужно подрезать кадр, как правило по ширине, т.к. все фильмы широкоформатные. Вообще если подрезать побольше, т.е. ближе к стандартному 4:3, то видео смотрится лучше - крупнее, но если отрезать слишком много, то можно и потерять важные детали из кадра. Как это делается на TV для меня загадка, но для себя я решил что немного подкрамсать бока бывает полезно. Комфортный битрейт на таких разрешениях также подбирается экспериментально, пока что сам я использую 400-600.
Еще об особенностях кодирования:
- Нельзя кодировать видео в отрыве от аудио. Т.е. нельзя использовать опцию nosound даже, если в дальнейшем звуковой поток будет присоединятся из другого файла и т.п. - это может привести к рассинхронизации видео. Поэтому на первом проходе я просто копировал звуковую дорожку (-oac copy), а на втором уже кодил в mp3 (-oac mp3lame). Вообще то я нигде не нашел чтобы так делали, обычно когда кодят в несколько проходах дорожку копирую на каждом, затем ее сжимают отдельно (можно тем же lame-ом), а уже затем сливают все в один файл, замещая оригинальную дорожку. Ну или типа того. Я попробовал на первом копировать, на втором кодить - так показалось удобней, побочных эффектов не обнаружил. Если у кого-то есть что возразить по этому вопросу - буду рад услышать.
- Обрезание и масштабирование делается фильтрами. Последовательность их указания соответствует последовательности применения.
- На всех проходах опции видео кодека должны абсолютно совпадать, кроме vpass.
Для примера использовал фильм "Фантастическая четверка 2". DVDRip 1,4 Gb (примерно 1000/400 видео/аудио xvid/ac3), разрешение - 720x304. Под рукой его сейчас нет, поэтому цифры по памяти.
Первый проход:
mencoder фч2.avi -o фч2_кпк.avi -oac copy -ovc lavc -vf crop=684:304:18:0,scale=288:128 \
-lavcopts vcodec=mpeg4:vbitrate=400:mbd=2:v4mv:trell:vpass=1
Второй проход:
mencoder фч2.avi -o фч2_кпк.avi -oac mp3lame -lameopts cbr=96:mode=3 -ovc lavc \
-vf crop=684:304:18:0,scale=288:128 -lavcopts vcodec=mpeg4:vbitrate=400:mbd=2:v4mv:trell:vpass=2
Или если доверить сжатие аудио lavc:
mencoder фч2.avi -o фч2_кпк.avi -oac lavc -ovc lavc -vf crop=684:304:18:0,scale=288:128 \
-lavcopts vcodec=mpeg4:vbitrate=400:mbd=2:v4mv:trell:vpass=2:acodec=mp3:abitrate=96
Но у меня почему-то lavc ругнулся на отсутствие кодека mp3 - возможно нужно что-то доустановить, разбираться не стал, тем более вариант с lame-ом работает превосходно.
В итоге получил файл размером 300 Mb (примерно 200/100), качество меня удовлетворило. На КПК проверил.
Дельные замечания приветствуются. Особенно советы по усовершенствованию процесса, так как я сам по сути с этим только начал разбираться.
P.S. Это не howto и не инструкция пользователя, это - описание моего опыта. Если кому-то будет это полезно - отлично, если кто-то может что-то подсказать мне - здорово.
Дельного
Дельного посоветовать ничего не могу, а просто коротко поделюсь тем, что делаю сам.
Иногда кодирую видео под смартфон. Использую ffmpeg и кодек xvid. Звук делаю mp3, моно, 96кб, если видео не музыкальное. Разрешение 208x176, битрейт 120 кб - для себя считаю достаточным. Готовый фильм получается до 100 мб.
Кодировал видео в формат 3gp. Получал очень даже не плохое качество и вполне приемлемый размер.
Не мог бы ты
Не мог бы ты написать опции к прогам как ты кодируешь. В точной последовательности. А то я в кодировании видио чайник... ПЛЗ.
________________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
покажи для ffmpeg
покажи для ffmpeg команду. я кодирую transcode. обычно тоже не ниже 300Mb.
пробовал mencoder тоже в пределах 300Mb.
хочу посмотреть как ffmpeg кодирует.
И вообще куда
И вообще куда mencoder пропал??? В портах нету....
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Как вот это вот
Вроде разобрался...
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
home / # mencoder
То что в последних двух строчках, Можно с ним как ни будь бороться???
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Конвертировать видео можно бесплатно прямо online
Совсем недавно открыл для себя новый ресурс www.all2convert.com, где можно совершенно бесплатно конвертировать видео фильмы музыку прямо online, при этом фильмы автоматически сохраняются на Вашем ПК. Очень удобно конвертировать видео с таких ресурсов, как youtube.com, video.google.com, break.com, lulu.tv, music.com, myspace.com.
Конвертировать видео можно в следующих форматах: AVI, MPEG, MPG, DVD, VOB, PSP, iPod, DivX, WMV, SWF, ASF, FLV, 3PG…
Всем советую эту халяву….