Просмотр видео на Nokia N810

Аватар пользователя Tigro

На днях мне в голову пришла мысль, а нельзя ли по дороге на работу не только читать книжки, но и смотреть фильмы. Недавно я приобрёл 4 Гб miniSD, так что место придостаточно. Обычные фильмы Nokia играть либо просто отказывается, либо делает это по кадру в несколько секунд. Однако если отмасштабировать видео, так чтобы оно не превышало 400 пикселей по горизонтали и 240 по вертикали (сохраняя пропорции) оно нисколько не тормозит.

При помощи mencoder мы можем сделать DVDrip, или если рип сделали до нас, то можем просто отмасштабировать видео. О том, как правильно делать DVDrip есть множество статей, например, эти (ч. 1, ч. 2) или эта. Они конечно поучительные, однако во первых по примерам из man mencoder получаются рипы не хуже, а во вторых нам нужно всего лишь “маленькое” видео, которое будем смотреть в дороге и бороться за качество нам как-то смысла особого нет.

Раунд 1. Делаем DVDrip


У вас может быть либо DVD диск, либо каталог с его внутренностями (возможно iso-образ). Что нам нужно сделать сперва, – обрезать всё лишнее. Это относится к чёрным полям вокруг картинки. Для определения того, что нужно обрезать мы воспользуемся mplayer’ом и фильтром cropdetect. Для этого отдаём команду

mplayer dvd://цифра -vf cropdetect

Какая должна быть цифра? Может 1, может 2, может 3. Нужно поэкспериментировать и определить именно тот заголовок, с которого начинается сам фильм.

Если у вас не DVD-диск, а образ (или просто каталог с файлами), в нужно сперва его подмонтировать (пропускаем, если у вас просто каталог с файлами)

mount file.iso /mnt/iso -o loop

а затем обратиться к точке монтирования, как к DVD диску, указав опцию -dvd-device /mnt/iso (в дальнейших примерах я буду опускать этот параметр).

mplayer -dvd-device /mnt/iso dvd://цифра -vf cropdetect

Полистаем фильм немного вперёд (стрелкой вверх или кнопкой PageUp) и посмотрим на вывод в консоли. Он должен быть примерно такой:

[CROP] Crop area: X: 3..708 Y: 77..500 (-vf crop=704:416:4:82).0
[CROP] Crop area: X: 3..708 Y: 77..500 (-vf crop=704:416:4:82).0
[CROP] Crop area: X: 3..708 Y: 77..500 (-vf crop=704:416:4:82).0
[CROP] Crop area: X: 3..708 Y: 77..500 (-vf crop=704:416:4:82).0

Значение crop=704:416:4:82 как раз то, что нам нужно. Можно запустить mplayer с этим параметром и убедиться, что чёрные поля обрезаны:

mplayer dvd://цифра -vf crop=704:416:4:82

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

VO: [xv] 704x432 => 1001x432 Planar YV12

Итак разрешение нашего фильма в оригинале (уже обрезанном) 1001×432. Нам необходимо его уменьшить так, чтобы по горизонтали оно не превышало 400, а по вертикали 240. Придётся вспомнить математику и посчитать. Сперва примем вертикальное разрешение равным 240. Горизонтальное в нашем случае будет равняться:

1001 * 240 / 432 = 566

Да, 566 явно больше чем 400, в таком случае, приняв горизонтальное разрешение равным 400, вертикальное будет:

400 * 432 / 1001 = 172

В принципе mplayer умеет пропорционально рассчитывать вертикальное разрешение если задать ему только горизонтальное (опция -xy 400). Наоборот к сожалению он делать не умеет.

Относительно звука. На DVD он как правило хороший. Но на таблетке нам явно не нужен Dolby Digital, занимающий лишнее место. Так что есть смысл его урезать, перекодировав при помощи кодека mp3lame (-oac mp3lame -lameopts vbr=0:br=128:mode=0).

Относительно видео. В качестве кодека возьмём mpeg4 и среднее значение битпотока 500 (можете поставить побольше для улучшения качества, можете поменьше для уменьшения размера). Как ни странно, но N810 прекрасно крутит видео с потоком 1800, лишь бы разрешение было не больше 400×240, так что битпоток подберите на свой вкус.

Итак, мы знаем как обрезать изображение, перекодировать звук и установили новое разрешение. Теперь приступим к перекодированию:

mencoder -o video.avi dvd://цифра -oac mp3lame -lameopts \
vbr=0:br=128:mode=0 -vf crop=704:432:8:74,scale=400:172 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500

или с опцией -xy

mencoder -o video.avi dvd://цифра -oac mp3lame -lameopts \
vbr=0:br=128:mode=0 -vf crop=704:432:8:74,scale -zoom \
-xy 400 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500

В результате получим файл video.avi, который нужно будет перекинуть на таблетку.

Раунд 2. Воруем ворованное – масштабируем файл


Очень часто к нам фильмы попадают уже в формате DivX или Mpeg и обычно они отвратительного качества. Все выдержки из предыдущего раунда остаются в силе. Возможно придётся обрезать чёрные поля, возможно нужно будет подправить звук (если до вас уже не подправили), и уж точно придётся отмасштабировать заново.

Команды будут практически идентичными, только параметр dvd://цифра нужно будет заменить на имя файла.

Чем просматривать видео на таблетке


Выбор большой и небольшой одновременно. Стандартный плеер может отказаться играть один mpeg4 и прекрасно играть другой. Можно смотреть видео при помощи Canola2, но она как хочет, так его и растягивает. Многие приложения используют для своей работы MPlayer, так что я думаю он и будет правильным выбором.

Заключение


В этой статье я не затрагиваю всевозможные финты, такие как накладывание различных звуковых дорожек, субтитров, начало и окончание кодирования в определённых местах. В указанных мною статьях есть некоторые сведения об этом, хотя, судя по всему, с ошибками. А изложенного материала я думаю вполне хватит большинству пользователей.

No votes yet

Комментарии

Аватар пользователя MiraVida

Re: Просмотр видео на Nokia N810

подтормаживает слегка, в чем может быть дело?

RSS-материал