Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Сборка мультимедиа плейера mplayer (Emb Linux)
Jury093
Добавлено 20.07.2010 14:13
0
Сообщение: 1
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
тема посвящена сборке/пересборке mplayer под различные платформы АРМа.
видимо тема не актуальна тем, у кого ФС основана на Busybox и Buildroot - там своя кухня. И д.б. интересна пользователям Дебьяна (возможно Юхбухты и тыпы) :)
на данный момент:
- для 9260 сборка прошла успешно - есть звук (tlv320), изображение (pcf8833, 132x132-16bpp), все синхронно;
- для mnuk950 сборка прошла почти успешно - есть звук (alc655), изображение (640x480-16, 480x272-16), увы рассинхрон звука и видео;

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

вот ссылка на готовый бинарник mplayer 9260 libmad ~3MB
сложить на плату бинарник ну и попробовать типа
Код
./mplayer -vo fbdev -ao oss -ac mad mycoolvideo.mpeg

эти же настройки можно прописать в домашнем каталоге типа
Код
armets:~# cat ./.mplayer/config
# Write your default config options here!
vo=fbdev
ao=oss
ac=mad

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.07.2010 14:24 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

- для mnuk950 сборка прошла почти успешно - есть звук (alc655), изображение (640x480-16, 480x272-16), увы рассинхрон звука и видео;


Чтобы смотреть слайды синхронно со звуком можно добавить опцию -framedrop :-)
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 14:41 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
а ничего хорошего не получилось - тогда плейер выпадал с криками типа "хилая машина" и "неожиданно OOPS.." :)
я это пробовал.. и кеш нарезал..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 15:08 Редактировалось 21.07.2010 17:32 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
перед сборкой mplayer необходимо собрать библиотеку libmad. если исходники библиотеки (Debian) можно взять с офф сайта
(на текущий момент libmad_0.15.1b.orig.tar.gz), то с кросскомпиллером вероятно будет сложнее. Дело в том, что современные CC не понимают опций типа -fforce-mem (зачем она и можно ли отключить - не знаю). Я воспользовался более старым CC (arm-linux-gcc_3.4.1). Лежит по пути /usr/local/arm/3.4.1
Исходники распаковать, далее или в строке или создать скрипт
Код
#!/bin/sh

./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --build=arm-linux --host=i386 --enable-fpm=arm --enable-speed

после успешной проверки и конфигурирования создается Makefile
далее команда Make
в результате должно получиться вот такое содержимое
Код
../libmad/libmad-0.15.1b/.libs/ -l
total 196
-rw-r--r-- 1 root root 188860 2010-07-20 13:29 libmad.a
lrwxrwxrwx 1 root root 12 2010-07-20 13:29 libmad.la -> ../libmad.la
-rw-r--r-- 1 root root 749 2010-07-20 13:29 libmad.lai

которое копируется в /usr/local/lib (/me уточнить)
update уточнение в сообщение №9

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

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 20.07.2010 21:59 Редактировалось 20.07.2010 22:00 Сообщение: 5
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Спасибо огромное, Jury093!!!!
После прочтения появилось несколько вопросов
-1 - arm-linux-gcc_3.4.1 где брать? Сборка как я бонял производится на большом брате?
-2 -
Цитата
которое копируется в /usr/local/lib (/me уточнить)
-это бинарник собранный для арм надо положить к бинарникам,сознанных для х86?

Так для справки : я пытался собрать на плате.ОЗУ-64 метра.Простояла плата весь день и вечером ей нехватила памяти и компиляция прикратилась со следующими криками-
Код

CC dsputil.o
{standard input}: Assembler messages:
{standard input}:177591: Warning: partial line at end of file ignored
gcc: Internal error: Killed (program cc1)
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 22:13 Редактировалось 20.07.2010 22:16 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
да ладно - этот этап почти халява, буду дальше вспоминать - со сборкой плейера не все так просто..
1. он легко вылавливается через гугль "arm-linux-gcc-3.4.1" - вторая ссылка выводит на ссылку на handhelds - почтенный сайт
ссылка на ссылку
да, для ускорения все делается на ББ
2. да, надо сгенеренную либу пристроить в правильное место. помню, что пихал в подходящие места пока не увиделись конфигуратором.. перепроверю и напишу - куда класть..

у /me тоже 64метра, развлекаясь собирал ядро прямо на плате, разложив все на винчестере и подключив физический своп-файл на 128МБ - все как у взрослых :)

кстати, при сборке плейера на ББ компиляция тоже нередко обрывалась с невразумительными криками - повторный запуск и как ни в чем не бывало компилялось дальше..

завтра постараюсь написать продолжение сборки (если вспомню что к чему) :)

update а что, бинарник не попробовали?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 20.07.2010 22:25 Редактировалось 20.07.2010 22:27 Сообщение: 7
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Спасибо,более менее все складывается..
Да мне интересен сам процесс..Бинарники хороши будут если не получится.
Не пробывал так как недописал fb драйвер и ядро несобрал по новой.Случайно забыл о FB_SYS_FILLRECT и подобных фичах..
Кстати про мплеер-почитал на офф сайте про вывод видео через fb - там ничего не сказанно о глубине цвета.Написанно что с 16 цветами работает-может и в ч/б режиме заработает.Народ посмешить в 21век самое то))))
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 23:09 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
так экран то - монохром или градации серого? если второй тип, то вполне неплохо будет видно. хуже если ЧиБ - впрочем для определенных задач его можно пристроить - статистику выводить, пиктограммы..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 21.07.2010 10:10 Редактировалось 21.07.2010 10:12 Сообщение: 9
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
часть вторая. сборка собственно mplayer для АРМ 9260
важное уточнение, содержимое ../libmad/libmad-0.15.1b/.libs/ -l
копируется в каталог LIB кросскомпилятора!
например для 3.4.1 (в моей конфигурации) выглядит вот так:
Код
ls /usr/local/arm/3.4.1/arm-linux/lib/libmad* -l
-rw-r--r-- 1 root root 188860 2010-07-20 13:29 /usr/local/arm/3.4.1/arm-linux/lib/libmad.a
lrwxrwxrwx 1 root root 12 2010-07-21 09:26 /usr/local/arm/3.4.1/arm-linux/lib/libmad.la -> ../libmad.la
-rw-r--r-- 1 root root 749 2010-07-20 13:29 /usr/local/arm/3.4.1/arm-linux/lib/libmad.lai

заодно проверил - можно ли подсунуть готовые либы - не получилось. конфигуратор отверг..
далее с офф сайта берем исходники mplayer (на текущий момент mplayer_1.0~rc2.orig.tar.gz)
Исходники распаковать, далее или в строке или создать скрипт
Код
#!/bin/sh

./configure --disable-mencoder --disable-dvdnav --disable-dvdread --disable-dvdread-internal --disable-libdvdcss-internal --host-cc=gcc --cc=/usr/local/arm/3.4.1/bin/arm-linux-gcc --enable-cross-compile --target=arm --enable-static --enable-fbdev

после успешной проверки и конфигурирования создаются Makefile config.h config.mak
для проверки того, что либа libmad увиделась надо посмотреть
Код
cat config.mak |grep mad
EXTRA_LIB = -Wl,-z,noexecstack -lmad -lpthread -ldl -rdynamic -static -lm

Код
cat config.h |grep MAD
#define USE_LIBMAD 1

если схожих строчек нет, то смотреть где и чего не хватает..
если конфигуратор отработал успешно, то команда make
должна результировать бинарником:
Код
ls -l mplayer
-rwxr-xr-x 1 root root 6715811 2010-07-21 09:35 mplayer

его скопировать на плату кита, права на запуск, ну и собственно запустить:
Код
./mplayer -vo fbdev -ao oss -ac mad mycoolvideo.mpeg

в целом примерно как-то так :)

Важно - по поводу libmad, для компиляции mplayer вроде требуется присутствие в системе хидера mad.h. он есть в каком-то из этих пакетов:
Код
debarm:/# dpkg -l libmad*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-=========================-=========================
ii libmad0 0.15.1b-4 MPEG audio decoder library
ii libmad0-dev 0.15.1b-4 MPEG audio decoder development library

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 21.07.2010 12:26 Сообщение: 10
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Странно-делаю все по инструкции-затыкаюсь на
Код

cat config.mak |grep mad

Все вроде бы как у вас..
Код

[dima@laptop mplayer-export-2010-07-19]$ ls /usr/local/arm/3.4.1/arm-linux/lib/libmad* -l
-rw-r--r-- 1 dima users 188384 Июл 21 12:58 /usr/local/arm/3.4.1/arm-linux/lib/libmad.a
lrwxrwxrwx 1 root root 12 Июл 21 13:00 /usr/local/arm/3.4.1/arm-linux/lib/libmad.la -> ../libmad.la
-rw-r--r-- 1 dima users 749 Июл 21 12:58 /usr/local/arm/3.4.1/arm-linux/lib/libmad.lai
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux