2009-02-04

Кодирование видео: mencoder и поиск совершенства

Продолжая исследовать вопрос кодирования видео никак не могу найти универсальный вариант, чтобы написать скрипт конвертирования для Nokia N810 раз и навсегда. AVI - одним методом, MP4 другим, MKV - вообще третьим. То изображение жужжит как ненастроенный телевизор, то звук не совпадает с видео, то картинка бешено мчится вперед... Хотел все сделать одной командой для mencoder с набором параметров, но в итоге отказался от этого по ряду причин. И вот что решил: кодировать надо с несколько этапов. Для начала раздель видео и звук, и работать с ними отдельно. Потом получившиеся дорожки, а при необходимости и субтитры собирать в один MKV-файл.
Вот что получилось: [файл "~/bin/video2nokia"]

#!/bin/bash

# Получение аудиодорожки. Используется mplayer с опциями
mplayer "$1" -vo null -vc null -ao pcm:fast:file=audio.wav

# Кодирование аудиодорожки в mp3.
lame -V0 -h -b 160 --vbr-new audio.wav audio.mp3

# Кодирование видеодорожки без звука, в два прохода
mencoder -o /dev/null \
-nosound \
-ovc xvid
-xvidencopts vhq=1:bitrate=700:autoaspect:pass=1 -vf pullup,softskip,hqdn3d,scale=-2:240 "$1"
mencoder -o video.avi \
-nosound \
-ovc xvid -xvidencopts vhq=1:bitrate=700:autoaspect:pass=2 -vf pullup,softskip,hqdn3d,scale=-2:240 "$1"

# Слияние в файл MKV-файл
mkvmerge -o $1.mkv --language 0:und --default-track 0:yes -d 0 -A -S video.avi --default-track 0:yes -a 0 -D -S audio.mp3 --track-order 0:0,1:0

# Удаление отработанных файлов
rm audio.wav audio.mp3 video.avi


Итог: работет как надо. Все конвертирую одним скриптом, паример:
video2nokia file.avi

2009-02-03

Установка планшета Genius WizardPen в Ubuntu

Жена порадовала. Решила перейти на линукс, причем сама. В связи с этим приходится искать ответы на вопросы, которые меня раньше не волновали. Например, как работать со сканером, или вот - как установить графический планшет, чтобы рисовать в GIMP (классная кстати книжка попалась в книжном магазине про него - автор известный, Денис Колесниченко). Ну так вот, собственно о теме.
Планшет у нас - Genius WizardPen, модель точно не помню, вроде бы что-то связанное с 5x4. При подключении автоматом не подключается. Ходят слухи, что с Wacoom такой проблемы нет, но такой планшет не всем по карману. Ну мир не без добрых людей, и решение есть. Я нашел пути для 8.04 и 8.10, меня интересовал второй. Кто свободно читает английский - прямая дорога по ссылкам, я же приведу мой перевод, чтобы русскоязычным было легче.

1) Копируем файл http://specificcrap.arbitrarycrap.com/wizardpen_drv.so в /usr/lib/xorg/modules/input/
2) Подключаем устройство если оно все еще отключено.
3) Находим имя устройства в системе: grep -i name /proc/bus/input/devices
4) Создаем файл /etc/hal/fdi/policy/99-x11-wizardpen.fdi и записываем в него такое содержимое:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains="ИМЯ ВАШЕГО УСТРОЙСТВА, ПОЛУЧЕННОЕ В ШАГЕ 3">
<merge key="input.x11_driver" type="string">wizardpen</merge>
<merge key="input.x11_options.SendCoreEvents" type="string">true</merge>
<merge key="input.x11_options.TopX" type="string">5619</merge>
<merge key="input.x11_options.TopY" type="string">6554</merge>
<merge key="input.x11_options.BottomX" type="string">29405</merge>
<merge key="input.x11_options.BottomY" type="string">29671</merge>
<merge key="input.x11_options.MaxX" type="string">29405</merge>
<merge key="input.x11_options.MaxY" type="string">29671</merge>
</match>
</device>
</deviceinfo>
5) Перезагрузка

У меня все прошло на ура, без эксцессов. Если у вас возникли проблемы - в оригинальных статьях есть еще пути разрешения всяких нестыковок, но мне они не понадобились, надеюсь, вам тоже не пригодятся.
Ну а дальше уже надо настроить GIMP для использования планшета. Правка - Параметры - Устройства ввода - Настроить дополнительные устройства ввода. Выбираем устройство, справа от него в выпадающем списке выбираем "Экран", сохраняем. В настройках инструмента "Динамика кисти" для кистей ставим галку "Размер", для карандаша и резинки галку "Непрозрачность". Пожалуй, всё.

P.S. После выхода Ubuntu 9.04 в оригинале появилась пометка:
"The tutorial currently still works with Ubuntu 9.04 (Jaunty Jackalope)". Ну и прекрасно.

Update от 15 июля 2010 года
Отлично работает на Ubuntu 10.04 метод 1 со статьи
https://help.ubuntu.com/community/TabletSetupWizardpen

2009-01-30

Ubuntu-софт: интересные находки

Хотчу отметить некоторые из программ, которые открываю для себя в ходе эксплуатации Ubuntu, и которые не входят в стандартную комплектацию.


rapache - GUI программа для настройки сервера Apache. Помогает ленивым разработчикам в быстром создании виртуальных хостов для своих проектов. Автоматически добавляет строку типа "127.0.0.1 servername" в /etc/hosts. Если в интернет выходите через прокси-сервер, не забудьте в настройках браузера добавить имя созданного хоста в исключения. Ставится из стандартного репозитария.


gnome-color-chooser - программа для расширенной настройки цветовых схем Gnome. Можно добиться очень приятных глазу результатов, стоит только приложить творческой подход. Ставится из стандартного репозитария.


Aegisub - предназначена для создания и редактирования субтитров в различных форматах. Считаю ее одной из лучших, а я их перепробовал немало, было дело. Есть версия для Windows. Берется здесь: http://www.getdeb.net/app/Aegisub


PlayOnLinux - проект, призванный помочь в wine-изации приложений. Очень рекомендую во избежании ненужной головной боли с настройкой wine. Предоставляет готовые настройки для множества windows-программ, ну и конечно, как и говорит название - игр. Брать на сайте проекта:
http://www.playonlinux.com

2009-01-23

Печать из консоли с опциями || Кому нужны эти GUI

Ну вот, я и добрался до своего блога после Рождественских праздников. Судя по всему, только я и читаю свой блог, ну да и ладно. Сегодня я напишу о том, как прекрасно можно и нужно использовать консольные команды для печати на принтерах, особенно из скриптов (bash или к примеру python).
В сети можно найти множество советов по этому вопросу, и как правило они сводятся к цитатам из man lpr. Да, конечно же мы будем использовать lpr. К сожалению, "man lpr" рассказывает только базовые опции, такие как имя принтера для печати, просмотр установленных принтеров и их статуса и т.п. Но есть там один любопытный намек:
lpr -o options
... и тишина! Если не попытаться искать ответ на вопрос, что же это за options, то lpr покажется довольно бедной по возможностям. Мне, к примеру, потребовалось отпечатать текст на поверхности CD, и мануал мне не помог в этом ни на процент. Так вот, дорогие мои, как-раз самое вкусное в man не положили. А в этом то вся сила lpr и проявляется. Можно отправлять на печать в любой лоток, указывать размеры, расположение и многое, многое другое!
Эх... требуют работать. Ладно, подробнее напишу позже. А пока вот для размышления, вчитывания и тестирования:

http://www.cups.org/documentation.php/doc-1.4/options.html

Уверен, вам понравится!

P.S. Вскоре открыл глаза и просматривая info lpr нашел, что документации полно и на локальном компьютере. Она прячется на 631 порту. Например, то-же, что и выше можно найти тут:
http://localhost:631/help/options.html?QUERY=options
А также многое другое.

P.P.S
О печати в сети, Драйвера для принтеров

2008-12-26

MySQL Query Browser: работа с удаленной БД через SSH

Имеем: удаленный сервер MySQL, в моем случае это база данных сайта на masterhost.
Хотим: работать с данными не через phpMyAdmin по http, а используя удобный и привычный MySQL Query Browser и MySQL Administrator на локальном компьютере.
Нужно: клиент SSH, ну и соответственно логины-пароли доступа к удаленому аккаунту.
Легко:
1) Если на локальном компьютере установлен сервер MySQL - отключаем, освобождая порт:
$ sudo /etc/init.d/mysql stop
2) Подключаемся по протоколу SSH, вводя пароль когда попросят:
$ ssh -C uXXXXXX@uXXXXXX.ssh.masterhost.ru -L 3306:uXXXXXX.mysql.masterhost.ru:3306
3) Открываем MySQL Query Browser, вводим host - localhost (или 127.0.0.1), порт - 3306, логин, пароль и имя базы данных на сервере.
Пользуемся с удовольствием.