Пока я не нашел проигрыватель для PocketPC, позволяющий смотреть субтитры, передо мной периодически вставала задача конвертации большого количества (не меньше 26) avi-файлов с уменьшением разрешения и внедрения в него субтитров. Обычно в таких случаях я набирался терпения, запускал VirtualDub и вручную набивал кучу job'ов, а потом запускал их на обработку. С появлением у меня плейера Digma DS2410 проблема появилась снова.
У этого гаджета не слишком мощный процессор для проигрывания файлов с высоким битрейтом, да и стандартная прошивка умеет декодировать только xvid. Так что ему необходима предварительная подготовка файлов, благо с дигмой в комплекте идет программа с немудреным названием AVIConverter.
Программа замечательно справляется со своей основной задачей: конвертировать AVI в формат xvid 320x240 22 FPS. Интерфейс у программы тоже простой — выбираешь файлы, выставляешь качество кодирования и конвертируешь. Скорость работы меня сразу впечатлила — на глаз в два раза быстрее VirtualDub'a, но результат оказался как всегда кривой: видео при проигрывании на плейре рассинхронизировалось со звуком.
Пришлось залезть в потроха программы, которые тоже оказались немудреными. AVIConverter на самом деле просто оболочка для опенсорсного конвертера видеофайлов mencoder, хорошо знакомого любителям опенсорсных операционных систем (он входит в состав проигрывателя mplayer).
Настройки программы хранятся в файле converter.ini. В секции [parameter] записаны опции с которыми запускается mencoder и для исправления проблемы с запаздыванием видео достаточно заменить -xvidencopts bitrate=500 на -xvidencopts bitrate=400. Т.е. уменьшим битрейт полученного видеофайла и дигма будет успевать разворачивать кадры.
Кстати mencoder с успехом можно запускать из командной строки, а погуглив можно найти маны с описанием всех его команд, что я и сделал. Оказалось, что у mencoder'а есть куча возможностей, в том числе есть нужные мне функции:
- умеет декодировать DVD и матрешку (matroska), а с этим в VirtualDub'е большие проблемы;
- прошивает субтитры в формате .srt.
В результате изысканий появился батник следующего содержания:
md pda
for %%i in (*.avi) do "c:\Program Files\AVIConverter\mencoder.exe" "%%i" -ofps 22 -vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=400:max_bframes=0:quant_type=h263:me_quality=4 -oac lavc -lavcopts acodec=mp2:abitrate=128 -sub "%%~Ni.srt" -subcp cp1251 -subpos 95 -subfont-autoscale 2 -font "%SystemRoot%\fonts\arialbd.ttf" -o ".\pda\%%~NXi"
Батник перед запуском нужно поместить в папку с файлами. Файлы субтитров должны быть с тем же именем, что и AVI и иметь раcширение SRT. Результат будет помещен в папку pda. Для более мощных устройств можно увеличть FPS до 25 и битрейт. Для других типов файлов достаточно изменить маску.
Работает mencoder на удивление быстро. Пока я пишу эту заметку в фоне конвертируется сериал со средним FPS 100 кадров в секунду (процессор CeleronD/3гГц).
Кстати, эксперимента ради я скачал последнюю версию mencoder'а (версия 4.3.2) — нормально кодировать отказывается. Звука нет, сабов нет, и видео какое-то кривое. И дело не в новых кодеках, т.к. подмена в папке с новым mencoder'ом exe'шника на файл версии 4.1.0 из комплекта AVIConverter'а исправила проблему.
В принципе AVIConverter можно легко найти в гугле, но если не получается, то пишите — выложу у себя.
Заметки по теме:
Почему удаляется мой комментарий … Выложите прогу в паблик!
Удаляется – потому что заслуженный спамер. Удивляюсь тому, что не все твои комменты убиваются фильтром.
приветствую, можешь выложить программу тут, а то приобрел MP3 плейер RizOne и ни как не могу на него видео сконвертировать.
Работает mencoder на удивление быстро !!!
Не понимаю зачем нужны фильмы с субтитрами. Что мало всети нормальных фильмов.Может для активно изучающих английский они продойдут. А основной массе пользователей они не нужны