Прикупил я себе вот такую игрушку - Cubieboard. Плата на основе SOC (system-on-chip) Allwinner A10. Такие чипы стоят во многих андроид-планшетах начального уровня - ARM Cortex A8, GPU Mali 400. Имеются 2 USB 2.0 host, один USB OTG, 100 MBit Ethernet, HDMI, SATA. Симпатичный корпус.
(Извините, но у Вас нет доступа в Галерею)
| (Извините, но у Вас нет доступа в Галерею)
|
Планирую сделать на его основе аудио рендерер и/или сервер, с использованием UPnP AV. Вкратце о том, что это такое. Universal Plug and Play (UPnP) - это набор сетевых протоколов для использования в локальной сети. Эти протоколы позволяют различным устройствам, таким как компьютеры, принтеры, точки доступа, и т.п., автоматически обнаруживать друг друга и устанавливать соединения для передачи данных. Нас интересует UPnP AV - расширение UPnP для построения сетей передачи аудио/видео контента. В первом приближении, основные компоненты UPnP AV - это сервер (Media Server), рендерер (Media Renderer) и устройство управления (или точка управления, Control Point).
В задачи сервера входит хранение библиотеки мультимедиа, индексация, поиск, выдача контента клиентам, возможно, с конвертацией форматов. Многие функции необязательны. Например, простые реализации сервера могут не иметь функции поиска. Или сервер может самостоятельно не хранить контент, а лишь индексировать внешний источник.
Рендерер отвечает за преобразование цифровых данных в собственно звук и/или изображение. Современные модели телевизоров например могут иметь функцию UPnP AV рендерера.
Устройство управления используется для поиска контента на одном или нескольких серверах, и выдачи команд на воспроизведение рендереру. А также может управлять параметрами рендерера - громкость, перемотка и т.п.
Компоненты могут располагаться как на разных физических устройствах, так и на одном в различных комбинациях.
В данный момент меня интересует только воспроизведение аудио. Я провел некоторые эксперименты по использованию Cubieboard в качестве рендерера и сервера. Результаты вполне положительные. На данный момент я могу воспроизводить аудиофайлы, хранящиеся на ноутбуке, через USB ЦАП, к ноутбуку непосредственно не подключенный, и вообще расположенный в другой комнате. Хочу попробовать довести это до логического завершения, и в итоге иметь набор программ, который можно записать на карту памяти, воткнуть в Cubieboard - и получить готовый к использованию рендерер или сервер (или и то и другое в одном флаконе).
Планируемые функции
- ✔ - все работает
- ✝ - в основном работает, или еще нет, но реализация очевидна. Принципиальных проблем нет
- ? - пока неясно как реализовать, просто не думал над этими моментами
✔ | Работа в качестве сервера UPnP AV
|
✔ | Работа в качестве рендерера UPnP AV
|
✔ | Работа с устройствами управления UPnP AV Поверялось с программой BubbleUPnP под андроидом. Возможно управление из-под Windows (foobar2000) или Linux (rhythmbox) |
✔ | Использование проводной сети
|
✝ | Использование беспроводной сети Нужно тестирование с разными адаптерами, пока наверняка можно сказать только, что работает с тем что есть у меня |
✔ | Вывод звука через встроенный аудиокодек Проверено на FLAC 16/192 |
✝ | Вывод звука через USB ЦАП. Тестировалось до 16/48. Нужно проверять с хайрез ЦАПами |
✝ | Вывод звука через HDMI. Не тестировалось |
✝ | Различные форматы файлов Проверены WAV, MP3, FLAC |
✝ | Сервер может читать файлы с HDD или USB флэшки Теоретически ясно как сделать, практически не проверял |
? | При использовании в качестве сервера, контент можно заливать через сеть Нужно выбрать способ. Вероятнее всего SAMBA - проще всего монтировать. Но надо рассмотреть варианты |
? | Использование ИК ДУ Приемник ДУ имеется на плате, есть поддержка в ядре. Пока неясно, как привязать к архитектуре UPnP |
? | WEB-интерфейс для настройки Принципиальных сложностей не предвидится. Сначала нужно окончательно устаканить основные программые компоненты |
Жду вопросов, комментариев, предложений
PS Наверняка существуют готовые решения. Но мы не ищем легких путей