LINUX.ORG.RU

Разработка GUI для проекта media player ?

 , , , ,


0

1

Всем привет!

Народ помогите советом. В общем задача следующая:

Необходимо на базе одноплатного ПК (типа RasPi) сделать сетевой медиаплеер, который подключается к ТВ. Соответственно там должен быть простенький интерфейс (выбор файлов, базовые настройки, воспроизведение контента, типа XMBC).

Казалось бы ставь XBMC или openELEC и будь счастлив, но задача заключается в том что плееров будет несколько и ими необходимо удаленно управлять. Т.Е. в последствии будет написана софтина (скорей всего на Qt\C++), которая будет управлять девайсами и контентом который они воспроизводят.

Изначально в качестве медиа ядра предполагалось использовать VLC и управлять им через http-api (путем обработки json\xml ответов от него).

Но стала задача использовать минимальный набор графических компонентов linux. Т.Е. желательно не использовать никакую desktop enviroment (чтобы снизить нагрузку на аппаратные ресурсы), а значит vlc попытаться запустить сразу через x11-server (но не уверен что это правильное решение). Но возникает вопрос как тогда обернуть это все в GUI чтобы было более менее похоже на XBMC? Запускать в Х-сах браузер типа firefox и через js+hmtl5 ловить http-sream от VLC?). Но мне кажется это извращение. :( Или сразу смотреть в сторону Qt+Webkit, или python+SDL (чтобы вообще без X11).

Короче, сломал всю голову т.к. раньше кодил на .Net, А теперь нужно осваивать программирование под Linux.


А какое рабочее окружение вдруг тянет за собой VLC? Если в него встроен HTTP-сервер — пользуйтесь его API из самописного GUI (на C++/Qt). Web-окна не нужны, разбирайте HTML самостоятельно. Если есть более низкоуровневое IPC типа DBus — выберите его. Можно также взглянуть на семейство mplayer'ов, которые управляются командами через стандартные потоки и даже встраиваются в GUI стороннего процесса.

Dendy ★★★★★
()
Последнее исправление: Dendy (всего исправлений: 1)

Тебе для видео так и так придется либо иксы поднимать (голым SDL ты не обойдешься), либо с фреймбуффером возиться. Фреймбуффер будет тормознее нормальных иксов, если дрова на видео нормальные, да и GUI красивый будет сделать сложно. Всё зависит от железа (не факт, что vlc не будет тормозить), возможно лучше обернуть плеер под названием mpv (если там наконец застабилизировали API для управления окном - замена slave mode в Mplayer). Посмотри, что на конкретно необходимом железе будет меньше лагать и тормозить. По быстрому для «посмотреть» воткни туда простенький оконный менеджер, типа Openbox-а, но без свистелок и перделок, вроде прозрачностей, иначе есть немалые шансы узреть тиринг - разрывы на FullHD и HD видео. Если памяти на твоём одноплатнике достаточно, то можно его так и оставить (жирный Openbox, собранный со всеми флагами и настроенный для удобства потребляет у меня 8 Мб оперативной памяти), а окошко твоего плеера принудительно разворачивать на полный экран при запуске (но можно и через голые иксы попробовать, хотя не ручаюсь за то, что разрывов на видео не будет).

но задача заключается в том что плееров будет несколько и ими необходимо удаленно управлять

А с этого момента поподробнее... Каких плееров? Железных? Программных? Как удаленно? Через сеть?

PS

Подобную задачу делать не приходилось, так что не могу быть уверенным на все 100% во всём, выше написанном.

PPS

На Linux есть mono, правда полноценный Windows Forms в него не входит, используют костыль для Gtk или Qt, но ресурсов будет жрать побольше чем C/C++, всё же управляемый код.

peregrine ★★★★★
()

похоже на XBMC

У Kodi (XBMC) есть аддоны для управления им через сеть. Стоит либо искать готовый аддон с нужными функциями, либо делать свой, на основе одного из веб-интерфейсов.

i-rinat ★★★★★
()

Короче, ты хочешь с нуля отгрохать коммерческий проект и выехать на открытом софте, и чтобы за тебя придумали архитектуру на уровне программных компонентов (при этом embedded-ready), потому что ты совсем не в теме. Хорошее начало.

(чото в меня вселился человек-русскийфорум, да)

Krieger_Od ★★
()
Ответ на: комментарий от peregrine

А с этого момента поподробнее... Каких плееров? Железных? Программных? Как удаленно? Через сеть?

Да именно через сеть. Причем плеер может быть как в локалке так и за её приделами.

zebox
() автор топика

Т.Е. в последствии будет написана софтина (скорей всего на Qt\C++), которая будет управлять девайсами и контентом который они воспроизводят.

можно просто взять smplayer для удалённого управления, а на самом одноплатном ПК запускать mplayer, stdin-ы/stdout-ы первого и второго можно соединить через сеть

Harald ★★★★★
()
Ответ на: комментарий от i-rinat

А вот это уже более реально. Покапаю в эту сторону. Спасибо!

zebox
() автор топика
Ответ на: комментарий от Krieger_Od

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

потому что ты совсем не в теме.

Да. Поэтому и пытаюсь разобраться что к чему. Но самое главное, что есть задача (и заказчик на неё) + желание реализовать. Плохо если желание\идея так и останется на уровне бла-бла-бла...

zebox
() автор топика

Коммерческое (проприетарное) решение рассматриваете? Никаких браузеров, иксов и других ненужных прослоек. С нашей железкой будет аппаратно ускоренная графика и аппаратное декодирование видео/аудио

annulen ★★★★★
()
Ответ на: комментарий от ossa

нет не советовали ... обязательно посмотрю

zebox
() автор топика
Ответ на: комментарий от zebox

написанная с нуля оболочка (на чем она кодилась)?

Ага. Qt.

annulen ★★★★★
()
Ответ на: комментарий от zinfandel

сегдня запустил все таки mplayer в консоли, но не очень мне нравиться api. У VLC хоть есть json\xml api, мне она больше импонирует...буду дальше разбираться ...

zebox
() автор топика
Ответ на: комментарий от zinfandel

Как оказалось vlc можно запускать и без иксов.

vlc -I dummy myvideo.avi

В таком режиме даже http api работает и даже статус отдает в xml или json

На голых иксах тоже стартует без проблем...

Хоть разобрался что есть FrameBuffer. Всем спасибо!

zebox
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.