Posts Tagged ‘k800i’

Бюджетно GPS решение

Monday, May 31st, 2010

0. Какво очакваме от такова решение.
Не очаквам рутиране. Трябва да може да ми показва къде съм, гледка от птичи поглед. Да може да пази маршрути и тракове. Да ме насочва към контролни точки (waypoints). Трябва цялата система да е компактна и да се събира в джоб. Трябва да работи с телефона, който в момента имам (Sony Ericsson K800i), т.е. софтуера да е Java. Естествено, трябва да има карти (включително импорт от картинка) и възможност сам да си ги правя лесно.

1. Телефон (Java/Symbian)
Трябва ви какъвто и да е телефон с поддръжка на MIDP-2.0 и CLDC-1.1. Телефона ви трябва да има поне 500KB оперативана памет и доста повече за карти. В момента карта на регион с размери 3 на 3 км (Пловдив) с приближение от 11 до 18 заема 16МВ на телефона ми. Карта на цяла България с приближение от 8 до 13 заема 55МВ.

2. GPS приемник
Всякакъв приемник, който се свързва по Bluetooth е подходящ. Доста разпространен и евтин модел е Holux M-1000. Нов струва около 80лв, а моя го взех от Ebay за 20. Малък е (като кибритена кутия), събира се във всякакви джобове. Батерията му държи към 10+ часа (из нета пишат за 20+ часа) и приемането му е добро, дори когато сте в кола, влак и т.н. MTK чипсет. В комплекта има зарядно за кола и USB кабел, който може да се използва пак само за зареждане на батерията. Батерията е Nokia-съвместима, така че за под 10 лв може да си вземете втора от руския пазар. Скоростта не се дава много коректно – разлика от до 5 km/h е допустима във кола. Във влак, където няма неравномерни ускорения като че ли е малко по-точно. За пешеходци текущата скорост варира между 0-10 km/h и не може да се гледа. Но ако правите трак накрая може да видите средна аритметична скорост.
3. Софтуер
– MapNav – http://mapnav.spb.ru/site/download.php?list.3 – изисква регистрация (става бързо и безплатно) – това се инсталира на телефона ви.
– mobile map creator – http://mapnav.spb.ru/site/download.php?list.4 – също – това се инсталира на компютъра ви (дори работи с Wine)
– Ozi Explorer – http://www.oziexplorer.com/ – програмата струва $95, но който държи да си пиратства – има я из торентите. Програмата служи за калибриране на растерни карти и не е необходима, ако не мислите да правите това. Също се инсталира на компютъра (и пак работи с Wine)

MapNav
1. Features
– език на интерфейса – руски, английски, български и др.
– 18 нива на приближение, като на най-високото разделителната способност е около метър на пиксел.
– правене на трак, като слага точките по изминато разстояние, минало време или при промяна на посоката. Без проблеми прави трекове с 3000+ точки, като има опция за олекотяване да показва само последните 100 точки. Дава профили на на пътя по височина и по скорост. Траковете могат да се експортват/импортват в GPX, KML или Ozi формат.
– компас, който показва посоките релативно на посоката на движение.
– водене по маршрут или контролни точки – waypoints.
– заключване на клавиатурата
– затъмняване на екрана – върши добра работа за пестене на батерия
– смяна на картите по време на работа.
– използване на ваши карти (в MNO формат – правят се с mobile map creator, виж по-долу) или онлайн такива (ако имате мобилен интернет).
– спортен режим на засичане на обиколки – не съм го пробвал.
– в основния екран се показват картата, текущата позиция на нея, координати, скорост, надморска височина и др.
– слагане на измерителна скала върху картата
– ръчно задаване на път
– слагане на белязки, които после може да ползвате за waypoints или Points Of Interest
– импорт и експорт на трaкове, waypoints, маршрути и др. Поддържа GPX формат и няколко други.
– настройки за всичко, което можете да се сетите.
– правене на скрийншот
– описание на mapnav на английски – http://mapnav.spb.ru/site/page.php?15 и на руски – http://mapnav.spb.ru/site/page.php?10

Карти
1. Калибриране с Ozi
1.1. В Ozi Explorer (бих пуснал снимки, ако притежавах програмата)
File -> Load and Calibrate Map Image
Избиране на растерната карта.
Избиране Point 1 -> клик в единия ъгъл на картата; в дясно на Degrees & mins се попълват координатите на точката
Избиране Point 2 -> клик в друг ъгъл на картата; попълват се новите координати
Point 3 – по същия начин
Save -> избирате къде да бъде запазен .MAP файла – това е информацията за калибровката на картата и ще се използва в следващата стъпка.
1.2. В Mobile Map Creator
Горе трябва да е избран таба Convertor.
Кликате на първата иконка (текста на нея е нещо като Select map to convert).
mobilemapcreator-1
В нея зареждате .MAP файла, който имате от Ozi-то. Внимание: ако сте свалили МАР файл от нета, отворете го и оправете пътя до растерното изображение да сочи правилно към изображението което имате (C:\Ozi\superdupermap.map при един ще е D:\Documents And Settings\usr\My Documents\plovdiv.map при друг). Пътя до изображението е на третия ред във МАР файла, който се отваря като текстов с Notepad. Ако сам сте си направил МАР файла, няма нужда от подобна манипулация.
Зареждате МАР файла и избирате къде да запазите крайните карти. Ще получите два файла с разширения MNM и MNO. Този с разширението MNМ се използва като вътрешна карта, която може да вградите в самата програма MapNav, но авторите й препоръчват да не се прави така. Използвайте MNO файла и си работете с външна карта.
2. Сваляне на уеб карти (Virtual Earth)
Горе трябва да е избран таба Map.
mobilemapcreator-2
Първия плъзгач е за zoom level-a на избраната карта. Картата източник се избира от падащото меню. В момента са налични VirtualEarth, Google, OSM и др. Могат да се добавят още с директно редактиране на maps.ini. В прозореца с картата можете да влачите докато намерите областта, която ви интересува. Кликате на Set to map и избирате с мишката района. Трябва да се появи с инвертиран цвят. Под този бутон се намира Map Zoom – стойността вътре показва какво приближение ще имате в получената карта накрая. С бутона “+” добавяте селекцията в компилацията. Внимание: изберете всичките приближения, които искате да имате после в MapNav-a! Примерно ако искате да имате от ниво 11 до ниво 13, задавате ниво 11, кликате “+”, задавате ниво 12, кликате “+”, задавате ниво 13, кликате “+”.
mobilemapcreator-3
Цифрите ви показват колко плочки (tiles) ще се свалят от нета. Това е и горе долу показател за размера на картата накрая. Когато сте доволни от селекцията, кликате Compile Map и избирате къде да се запазят двете карти MNO и MNM.

Инструменти за визуализиране на трекове
1. Онлайн
http://www.everytrail.com/
– може да ъплоудвате тракове в GPX формат – public (всеки може да гледа трака) и private (само вие можете да го гледате) режими
– дава профил на терена по скорост и по височина
– ъплоудване на снимки и геотагване
– пътепис
– търсене и браузване на тракове
2. Десктоп
– Google Earth – да се провери какво става там. Вероятно трябва да работи с KML.

Мобилен SSH клиент

Thursday, April 2nd, 2009

Трябва ви компютъра вкъщи, а сте надалече? Наоколо няма интернет или услужлив човек с компютър? Използвайте телефона си 🙂 MidpSSH е много добър SSH клиент, който ще ви свърже и ще сте мобилни винаги. Естествено ще ви липсва бързината на писане по нормална qwerty клавиатура и свястен поглед върху конзолата… освен ако не сте собственици на телефон с VGA дисплей, машинописна клавиатура, тостер и отварачка за бира. Какви са някои от готините неща, които MidpSSH може да прави:
– да се свързва на нестандартен порт – добавете :PORT след името на хоста
– последната експериментална версия може да променя големината на шрифта – дефаултния е доста очебоден
– да запзва някои въведени команди (или аргументи на команди) като макроси и да ви спестява част от писането
– да ви показва цветен bash prompt (export PS1=’\[\033[1;31m\](\t)\[\033[0m\][\u@\[\033[1;33m\]\w\[\033[0m\]]\$ ‘ 🙂 )
– да въвежда CTRL, ALT, ESC и други специални символи
– да ви логва без username + password, а само по ключ
Една уловка: ако виждате съобщението “Session error\nWriter:”, вероятно ползвате CSD достъп. На много места из нета хората казват че може да се ползва само GPRS data account.

SE k800i Linux Modem Part 2

Sunday, February 22nd, 2009

В миналата част си поговорихме как да закачим телефона към компютъра така че да се работи с USB CDC драйвъра. Сега ще стане дума как да си пуснете реален интернет на компютъра. Тук имам само карта към МТЕЛ и съм писал за него, така че всички читатели които ползват услугите на евентуален друг оператор ще трябва леко да си редактират настройките.
PPP
Трябва ви point-to-point protocol поддръжка под някаква форма. Дали вградено в ядрото или на модул – по ваш избор. Нужните отметки в конфигурацията на ядрото са следните:

  • Device Drivers —>[*] Network device support —> PPP (point-to-point protocol) support
  • Device Drivers —>[*] Network device support —> PPP support for async serial ports

Ако решите да ги компилирате като модули, първия модул ще се казва ppp_generic, а втория ppp_async. Трябват ви и двете неща, иначе ще получавате странни грешки от рода на:

The PPP daemon has died: Fatal pppd error (exit code = 1)
1 An immediately fatal error of some kind occurred, such as an
essential system call failing, or running out of virtual mem-
ory.

Wvdial
Хубавото на Wvdial е че само си открива поддържаните настройки от модема и само си създава конфигурационен файл. Освен това не е нужно да се мъчите с /etc/ppp/* скриптове и настройки и даже не е нужно да сте прочели и ред от pppd man-страницата 🙂
Създаване на конфигурационен файл:

# wvdialconf
Editing `/etc/wvdial.conf’.

Scanning your serial ports for a modem.

WvModem<*1>: Cannot set information for serial port.
ttyS0<*1>: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyS0<*1>: ATQ0 V1 E1 — and failed too at 115200, giving up.
WvModem<*1>: Cannot set information for serial port.
ttyS1<*1>: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyS1<*1>: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyS1<*1>: ATQ0 V1 E1 — and failed too at 115200, giving up.
Modem Port Scan<*1>: S2 S3
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 — OK
ttyACM0<*1>: ATQ0 V1 E1 Z — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 — OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
ttyACM0<*1>: Modem Identifier: ATI — Sony Ericsson K810
ttyACM0<*1>: Speed 4800: AT — OK
ttyACM0<*1>: Speed 9600: AT — OK
ttyACM0<*1>: Speed 19200: AT — OK
ttyACM0<*1>: Speed 38400: AT — OK
ttyACM0<*1>: Speed 57600: AT — OK
ttyACM0<*1>: Speed 115200: AT — OK
ttyACM0<*1>: Speed 230400: AT — OK
ttyACM0<*1>: Speed 460800: AT — OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 — OK
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 — failed with 2400 baud, next try: 9600 baud
ttyACM1<*1>: ATQ0 V1 E1 — failed with 9600 baud, next try: 115200 baud
ttyACM1<*1>: ATQ0 V1 E1 — and failed too at 115200, giving up.

Found an USB modem on /dev/ttyACM0.

Отваряме /etc/wvdial.conf и редактираме редовете Phone, Username, Password. Добавяме и ред Init3. Това е крайното състояние при мен (за МТЕЛ) :

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,”IP”,”inet-gprs.mtel.bg”
Modem Type = USB Modem
ISDN = 0
Phone = *99#
Modem = /dev/ttyACM0
Username = dada
Password = dada
Baud = 460800

По принцип интернета на МТЕЛ се използва с каквито и да е Username и Password, но wvdial не ви позволява да оставяте тези полета празни. Из нета на разни места пишат че може и да се сложи следния ред:
Stupid Mode = 1
ако wvdial не може да си комуникира добре с модема ви. За k800i нямаше нужда.
Connect
Стартирането на pppd, което става автоматично от wvdial изисква отново да сте root.

# wvdial
–> WvDial: Internet dialer version 1.60
–> Cannot get information for serial port.
–> Initializing modem.
–> Sending: ATZ
ATZ
OK
–> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
–> Sending: AT+CGDCONT=1,”IP”,”inet-gprs.mtel.bg”
AT+CGDCONT=1,”IP”,”inet-gprs.mtel.bg”
OK
–> Modem initialized.
–> Sending: ATDT*99***1#
–> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }9}#}%B#}%}(}”}’}”}”}&} } } } }%}&VKD}1[7f])~
–> Carrier detected. Starting PPP immediately.
–> Starting pppd at Sun Feb 22 19:48:09 2009
–> Pid of pppd: 26823
–> Using interface ppp0
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> local IP address 10.161.47.249
–> pppd: 8[07][08]X¢[07][08][07][08]
–> remote IP address 10.64.64.64
–> pppd: 8[07][08]X¢[07][08][07][08]
–> primary DNS address 213.226.7.34
–> pppd: 8[07][08]X¢[07][08][07][08]
–> secondary DNS address 213.226.7.35
–> pppd: 8[07][08]X¢[07][08][07][08]
^CCaught signal 2: Attempting to exit gracefully…
–> Terminating on signal 15
–> pppd: 8[07][08]X¢[07][08][07][08]
–> Connect time 1.5 minutes.
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> pppd: 8[07][08]X¢[07][08][07][08]
–> Disconnecting at Sun Feb 22 19:49:38 2009

CTRL+C спира връзката.
Има няколко важни неща, които трябва да се видят тук. Това че сте свързан към GPRS access point при оператора ви все още не означава че компютъра ви може да ползва интернет. Трябва да се добави default route, със следния gateway:
–> remote IP address 10.64.64.64
Съответно:
# route add default gw 10.64.64.64
Ако преди това сте бил свързан към друг доставчик явно ще трябва да махнете default gw, който ви е от него.
При спирането на връзката може да забележите следния ред, който показва за колко време сте били connected:
–> Connect time 1.5 minutes.
Други статистики може да видите от ifconfig ppp0:

ppp0 Link encap:Point-to-Point Protocol
inet addr:10.161.47.249 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:64 errors:0 dropped:0 overruns:0 frame:0
TX packets:317 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:7125 (6.9 KiB) TX bytes:53884 (52.6 KiB)

Конкретно това което ви интересува е RX и TX bytes, защото те струват пари. Не съм сигурен дали оператора отчита трафика по същия начин, за това не бих приел тези цифри много твърдо.

И финалния най-важен въпрос: колко бърз интернет можете да си пуснете – при мен стигна до четвърт мегабит:

wget http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz
–19:54:57– http://mirrors.unixsol.org/linuxpackages//Slackware-12.0/ken/google-earth-4.2.205-i486-1kjz.tgz
=> `google-earth-4.2.205-i486-1kjz.tgz’
Resolving mirrors.unixsol.org… 193.110.159.35
Connecting to mirrors.unixsol.org|193.110.159.35|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 22,863,884 (22M) [application/x-tar]

1% [> ] 442,690 37.82K/s ETA 10:23

Това зависи от мрежата, която ви покрива. Максималните скорости са съответно:

  • CSD (WAP dial-up) – 9.6 Kbps
  • GPRS – 90 Kbps
  • EDGE – 236 Kbps
  • UMTS – 384 Kbps
  • HSDPA – 14.4 Mbps downlink

Внимание: всичко различно от WAP CSD може сериозно да ви бръкне в сметката! MTEL дават 1MB трафик за 2.50 лв. Тарифата за WAP е 11 ст. на минута. Горното howto е писано за всичко от GPRS нагоре. За чист WAP ще експериментирам и тези дни вероятно ще пусна Part 3 на това howto.

Update: Операторката от телефон 1010 ми съобщи че MTEL от една година насам не предлагат CSD достъп, а само GPRS.

SE k800i Linux modem

Wednesday, February 18th, 2009

Фен съм на GSM-модемите. Това е идеалната и най-проста backup линия за връзка с домашното (или сървърното) ви PC. Предполага се че това PC е винаги в зоната на покритие на някой от GSM операторите, така че телефона ви винаги ще е online. По-старите телефони с RS-232 комуникация имат един недостатък – батерията им пада с времето и трябва да пачвате буксата за да я вържете в постоянно включено в контакта зарядно. Иначе какъв backup е ако телефона ви остане без ток на третия ден 🙂 Този недостатък го няма в по-съвременните телефони с USB кабели, където батерията постоянно се дозарежда през кабела. (От USB порта може да се извади максимум до 100mA ток, което е повече от колкото може да извади зарядното ви.)
Удивително успях да се свържа с модема на k800 за по-малко от час ръчкане. Ето нужните стъпки:
0) Телефона се свързва с кабел към компютъра. На екранчето излиза меню, което ви пита в какъв режим да работи телефона. Избирате “Phone Mode”. Във “File transfer” режим телефона се рестартира и се mount-ва като флаш драйв, а това не ви трябва в момента.
1) Трябва ви CDC ACM драйвър, който служи като виртуален сериен порт под USB. Драйвърът обикновено върви в комплект с линукс кернела. Когато телефона ви е свързан с кабел към компютъра трябва да виждате устройства /dev/ttyACM*. Ако не виждате такива устройства вероятно нямате ACM драйвър. Може да се разминете без прекомпилиране на кернела, ако го добавите драйвъра като модул:
Device Drivers —> USB support —> USB Modem (CDC ACM) support (за кернел 2.6.25.6)
След това следват:
$ make modules
# make modules_install
при което ще бъде компилиран и инсталиран само този модул.
Можете да го заредите с:
# modprobe cdc_acm
Ако все още не се появяват устройства /dev/ttyACM*, проверете какво се вижда в lsusb. Трябва да виждате нещо като това:
Bus 5 Device 16: ID 0fce:d0a1 Sony Ericsson Mobile Communications AB
2) По подразбиране само root потребителя може да работи с тези устройства. При засичане на модем, драйвъра автоматично си създава ttyACM*, но режима на достъп обикновено е root:root 0600. Едно временно решение е:
# chmod a+rw /dev/ttyACM*
Но след презакачане на телефона udev ще възстанови 0600 режима.
За да направите така че всеки потребител да има достъп по всяко време, добавете следния ред в /etc/udev/rules.d/50-udev.rules:
KERNEL=”ttyACM*”, NAME=”%k”, GROUP=”uucp”, MODE=”666″
3) След като имате виртуалните серийни портове, можете да използвате любимата си програма за серийна комуникация. Обикновено трябва да зададете порт с който да се свърже и настройки. Тук идва интересната част, защото при мен се появяват обикновено няколко виртуални порта (ttyACM0, ttyACM1, ttyACM2) на всяко свързване. Може да експериментирате с всеки от портовете докато откриете къде ви е модема. Слава богу поне не се грижите да следите на какъв default baud rate работи модема, защото той е умен и се синхронизира към скоростта на вашето предаване.
Полезна програмка, която можете да използвате и за dialing е wvdial. Хубавото в нея е че изследва какво имате вързано по портовете и сама се конфигурира.
За финал – написвате си daemon програмка, която следи за състоянието на модема и при дадено събитие изпълнява нещо. Например аз следя за входящо повикване от другия си номер и когато се появи, изпълнява командата `xmms -f` и сменя песните в XMMS-a. Ето на това му викам полезен backup и дистанционно за случаите когато ме мързи да стана от леглото 🙂
Друго примерно приложение е при получаване на SMS да се изъплнява шелска команда, която се съдържа в него. За целта обаче първо трябва да си разкодирате SMS-а, което е готина задачка. Прочетете повече за PDU формата на съобщенията тук.
Ето ви и едно примерно съобщение, с което можете да си поиграете за домашна работа (цялото съобщение е на един ред без интервали, които го разбиват):
AT+CMGL=4
+CMGL: 1,1,,86
07915389080003F104048111110000902061904403805146F9BBAD034DE
961777ACE0EDB413CFA7B3E9FC96280733B9C66BBC6EFB60F442DE3E93A
10A8999ECFD36F3768FC6EC3D9657A991C025DC3697ADA7D0699DF72D05
B4E2ECB4320
OK

P.S. Документацията с АТ командите може да си дръпнете от девелоперската секция в сайта на Sony Ericsson.

P.S.2. Подозирам че горното писание важи за всеки телефон с USB връзка и модем, не само за k800 🙂

Енкодване на клипове за k800 с mencoder и ffmpeg

Monday, September 1st, 2008

От месеци се мъчех да си смачкам някое друго видео, което да мога да си го гледам на телефона. GSM е Sony Ericsson k800. По спецификации поддържа:
– видео 3GPP (H263, H264), MP4, Real8
– аудио MP4 (AAC, AAC+, E-AAC+), MP3, M4A, WMA, 3GP, AMR, WAV, G-MIDI 1, Real 8
– максимална разделителна способност 320х240
– максимален битрейт – 400 kb/s – като това е общо видео битрейт + аудио битрейт
До сега имам поне към 500 неуспешни опита да енкодна видео с mencoder и то да тръгне на телефона. Във файловия мениджър се появява една иконка с пакетче и контекстен бутон Send (като на всички непознати файлове) и толкоз. Никакъв опит за по-съществен дебъг. Какво не му харесва? Тук вече става въпрос за много сложна комбинация от видео енкодер, аудио енкодер, видео формат, видео контейнер, аудио кодек, битрейти…
Ето някой от неуспешните опити с mencoder:

mencoder input.avi -ovc lavc -lavcopts acodec=ac3:abitrate=64:vcodec=mpeg4:vbitrate=300 -oac mp3lame -lameopts br=64 -vf scale=320:240 -of lavf -lavfopts format=mp4 -o output.mp4

Сега като го гледам този, не ми е чудно че не тръгва. Опитвам се да ползвам за аудио кодек АС3, а телефона май не го поддържа

mencoder input.avi -ovc x264 -x264encopts bitrate=350 -oac mp3lame -lameopts br=64 -vf scale=320:240 -o output.mp4

Едно време си мислех че x264 == MPEG-4, сега си мисля че не е точно така. Вече почнах да се обърквам кое е енкодер, кое е кодек и кое е контейнер…
Та това са само последните два от няколкостотин опита и килограми изхабени нерви по mencoder. Не искам да кажа че mencoder си върши работата зле – виновно е задклавиатурното устройство 🙂 В други случаи mencoder върши чудесна работа, примерно това рипване на DVD:

mencoder dvd://3 -dvd-device /mnt/cdrom/ -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=”800″ -oac mp3lame -lameopts br=128 -o dvd.avi

По едно време ми писна и се залових за алтернативния софтуер – ffmpeg. Не ми хареса man страницата му, където са описани по-малко от половината опции. Въпреки това, работата горе долу стана.
Първо пробвах да преобразувам клипчето в 3GP, но се оказа че формата има комплект валидни разделителни способности, най-високата от които да ми върши работа беше 176х144. Не мерси.
Съсредоточих се върху MP4:

ffmpeg -i input.avi -ar 8000 -ac 1 -acodec libfaac -vcodec mpeg4 -s 320×240 -r 24 -b 300000 -ab 48000 -t 30 output.mp4

Видеото излезе с подходящия thumbnail в мениджъра на телефона, даже и тръгна. Единствения кусур беше звука, който беше с отвратително качество.
Ето подобрение:

ffmpeg -i input.avi -ar 44100 -ac 1 -acodec libfaac -vcodec mpeg4 -s 320×240 -r 24 -b 250000 -ab 64000 output.mp4

Аудио енкодера не ми даде да вдигна аудио битрейта докато не вдигнах и sampling rate-а. Намалих и видео битрейта, понеже на някои места видеото забавяше и се получаваше framedrop ефект. Накрая всичко тръгна на сто процента 🙂