Linux

Anime + MPlayer = Любовь

MPlayer - свободный медиаплеер. Аналог Windows Media Player, Light Alloy, Zoom Player и пр. Особенно прекрасен MPlayer большим количеством изначально поддерживаемых кодеков, малой требовательностью к ресурсами огромным сообществом.

mplayer

По просмотру аниме в MPlayer уже есть очень хорошая статья, называемая “Смотрим аниме в Linux (MPlayer для анимешника)”. Посмотреть её можно, например, тут: http://otaku.glazov.ru/mplayer.htm.

Существует много GUI для MPlayer: gmplayer, kmplayer, smplayer. Прелесть в том, что “родные” горячие клавиши и конфигурируемость почти всегда оставляют доступными. Тем более, для просмотра видео, если честно, GUI не очень то и нужен (не стоит сразу бросать в меня помидоры - сначала попробуйте).

SMPlayer

Все следующие действия производились под Debian Linux (testing-ветка), но будут работать и на других *nix-системах. Для Windows, возможно, тоже найдёте что-нибудь интересное :)

Для начала процитирую Razor’a, а именно список наиболее часто используемых горячих клавиш:

  • Esc / q – выход из программы (прежде чем начать что-то изучать, нужно всегда знать как это закрыть, нэ?)
  • Space / p – пауза. Отжимается при нажатии любой клавиши.
  • 9 / 0 – уменьшить/увеличить громкость
  • стрелка вправо / влево – перемотать видео на 10 сек. вперед/назад
  • стрелка вверх / вниз – перемотать видео на 1 минуту вперед/назад
  • Page Up / Page Down – перемотать видео на 10 минут вперед/назад
  • f – на полный экран / обратно в обычный режим
  • o (англ. буква “o”) – информативность. Можно скрыть все показания плеера, выводить только прошедшее время или прошедшее+полное время фильма

Сразу перейду к самой наболевшей проблеме: субтитрам. Вот как они могут выглядеть:

Opening к Death Note - не настроенные субтитры

Знакомая картинка, не правда ли? И тут извечная проблема Linux - кодировки… А вот как этот же кадр выглядит с нормально настроенными субтитрами:

Opening к Death Note - настроенные субтитры

Решение номер раз: в лоб. Можно каждый раз при запуске Mplayer прописывать кодировку (-subcp кодировка):

$ mplayer -subcp utf8 ./Death_Note_-_08.avi
$ mplayer -subcp cp1251 ./Death_Note_-_08.avi

Главный недостаток данного метода - неудобство. Быстро надоедает перед просмотром каждого файла прописывать кодировку. Ведь её не только указать, но ещё и угадать надо!

Решение номер два: заставить MPlayer угадывать кодировку самостоятельно! Для этого надо установить программу Enca (Extremely Naive Charset Analyser). В Debian, например, это можно сделать так:

# aptitude install enca

Не буду долго мучать теорией, лучше сразу покажу свой ~/.mplayer/config:

nolirc = yes
subcp = "enca:ru:utf8"
ass = true
stop-xscreensaver = yes
nojoystick = 1

Первая строка - чтоб не получать каждый раз при запуске ошибку “Failed to open LIRC support.”. Последняя - постоянно зажимаю книгами какую-нибудь кнопку на джойстике, предпочёл его отключить.

Строка “enca:ru:utf8” означает, что кодировку должна попытаться угадать enca. Ей говорится, что субтитры скорее всего на русском языке. И если enca не сможет угадать кодировку будет использована utf8. Однако за 2 года использования enca меня ещё ни разу не подвела :)

Строка “ass = true” подводит нас к следующей проблеме Linux - шрифты. Да, со включенной опцией “ass” MPlayer сразу сможет делать форматирование текста: цвета, начертания, расположения. Однако периодически вылазят косяки типа накладывающегося текста, или текста уходящего за экран. Не сложно догадаться, что наверное саббер подразумевал использование другого шрифта. Это также видно по сообщениям MPlayer:

[ass] fontconfig: Selected font is not the requested one:
'Bitstream Vera Sans Oblique' != 'CyrillicOld'
[ass] Glyph 0x42F not found, selecting one more font for (CyrillicOld, 80, 110)
[ass] fontconfig: Selected font is not the requested one:
'DejaVu Sans Oblique' != 'CyrillicOld'

Здесь видно, что MPlayer не может найти шрифт “CyrillicOld” и пытается подобрать вместо него другой. Однако начертания и размеры шрифтов далеко не всегда совпадают…

Решение - “против лома нет приёма” - установим шрифты прямо в систему. Я не использую сервер шрифтов (XFS), поэтому устанавливал шрифт стандартными средствами X11. Для этого создал папку /usr/share/fonts/truetype/dexp , куда складываю все свои TTF-шрифты:

# mkdir /usr/share/fonts/truetype/dexp
# cp /mnt/downloadedFonts/*.ttf /usr/share/fonts/truetype/dexp/

Далее нужно перейти в папку шрифтов и вызвать mkfontscale и mkfontdir:

# cd /usr/share/fonts/truetype/dexp/
# mkfontscale 
# mkfontdir

Этим мы полностью подготовили директорию шрифтов к подключению к X-серверу. Теперь осталось прописать путь к нашей директории в конфиги иксов (обычно это /etc/X11/xorg.conf):

Section "Files"
   ...
   FontPath	"/usr/share/fonts/truetype/dexp"
EndSection

После добавления строки FontPath "/usr/share/fonts/truetype/dexp" останется только перезагрузиться и система увидит новые шрифты. Посмотреть их можно в программе xfontsel.

Про горячие клавиши и подгонку субтитров также процитирую Razor’a:

А что делать, если субтитры не совпадают по таймингу с вашим видео? Такие случаи лечатся следующими клавишами:

  • y – пролистать одну фразу вперед
  • g – пролистать одну фразу назад

Для точной временнОй подгонки субтитров используются клавиши Z и X.

  • z – сдвинуть фразу на 100ms назад
  • x – сдвинуть фразу на 100ms вперед

Возможность пролистывать и сдвигать фразы, не залезая при этом в настройки является очень удобной. Насколько мне известно, в Windows такой возможностью может похвастаться только один плеер – crystal player (в нем клавишами можно сдвигать сабы по времени). А чтобы тайминговать VobSub’ом (зелёная вывернутая стрелочка в панели инструментов, правая кнопка мыши > DirectVobSub > вкладка Timing > Subtitle Timing, millisec), надо быть или мазохистом (большинство пользователей) или провидцем, точно знающим, на сколько миллисекунд и куда сдвигать субтитры.

Также субтитры можно двигать по экрану вниз-вверх:

  • r – сдвинуть вверх
  • t – сдвинуть вниз

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

И еще несколько трюков:

  • b – отключить/показать субтитры
  • j – переключиться на следующие субтитры. Например, у вас есть ogm-файл, имеющий встроенные английские субтитры, а русские лежат отдельно (но в том же каталоге, и имеют такое-же имя, как и сам файл). Открыв этот ogm-файл в мплеере, вы может с помощью кнопки “j” легко переключаться между русскими и английскими сабами. А если надоест – то и вообще отключить их с помощью клавиши “b”. То же относительно DVD, обычно имеющих сразу пять-шесть встроенных субтитров раных языков.

Ещё одна мегафича MPlayer’a - поддержка бинарных кодеков. Скачать готовый набор можно на странице http://www.mplayerhq.hu/design7/dload.html#binary_codecs. Распаковать архив надо в /usr/local/lib/codecs/ или в /usr/local/lib/win32/. После этого MPlayer при запуске будет писать что-то вроде:

115 audio & 237 video codecs

Кстати, если файл был недокачан, то MPlayer по умолчанию всё-равно сможет его воспроизвести. Однако перемотка будет недоступна. Если она всё-же нужна, то можно запустить mplayer с опцией -idx.

Напоследок хочу сказать: man mplayer - очень занимательное чтиво. Оно на русском языке, описывает все хоткеи и поможет решить больше половины проблем. Ну или, например, для переключения звуковой дорожки изредка можно использовать и GUI (когда лениво лезть в мануал) :)

Приятного просмотра!

Leave a comment

(after comment you will be redirected back here)