Моей команде поручено создать полноэкранное приложение в стиле киоск для воспроизведения мультимедийных файлов. Первоначально нам нужно поддерживать WMV/MP4, а также некоторые изображения в полном размере 1080p, хотя по этой линии нам нужно будет расширить его, чтобы охватить другие форматы (различные форматы видео, а также отображение HTML, SWF и т. Д.).Кросс-платформенный мультимедийный киоск
Приложение также содержит приличную часть бизнес-логики, относящуюся к планированию, протоколированию, мониторингу производительности, а также сетевому коду, чтобы разговаривать с центральным сервером через веб-службы (или, возможно, TCP) и потенциально действовать как сам сервер.
Для воспроизведения видео в формате WMV/MP4 аппаратное ускорение будет огромным бонусом. На целевом оборудовании есть слабые процессоры, но мощные графические карты.
Вот кикер: мы являемся магазином .NET (наше существующее приложение является интеллектуальным клиентом WinForms) и чрезвычайно опытным и продуктивным в C# и стеке .NET. Первоначально приложение будет нацелено на Windows Embedded (.NET 3.0), , но нам также понадобится версия для Linux. Между нами есть опыт работы на C/C++ и некоторый опыт работы с Linux, но мы не ожидаем хорошей производительности на этой платформе.
Так что я вымогательство рекомендации specfically по следующим пунктам:
видео. В Windows мы видели хороший успех с помощью DirectShow.NET. На совместимом оборудовании WPF MediaElement также работает хорошо. Что мы должны использовать в Linux? libavcodec кажется общим выбором. Это аппаратное ускорение на графических картах NVidia в Linux? Какие еще существуют варианты для Linux? Что-то кросс-платформенное, что я мог бы рассмотреть?
Стек. a) В идеале мы могли бы написать все это в .NET, а затем запустить под Mono в Linux. Воспроизведение видео и, предположительно, некоторые другие компоненты (например, мониторинг производительности) не поддерживаются в Mono. Думаю, мы могли бы переписать эти элементы, скажем, на C++; но я предполагаю, что большинство вещей на стороне бизнес-логики будут работать. б) Может быть, лучше отказаться от нашей производительности перед версией Windows для чего-то, что является кросс-платформой вне ворот. Как насчет Java? У нас есть разные варианты, когда дело доходит до видео? Как насчет другой структуры? Что-то вроде QT? Может ли кто-нибудь еще предложить что-то кросс-платформу, которое было бы актуальным?
Вообще говоря, с учетом требований, что бы вы использовать?
Я ценю всех, кто может иметь.
Это замечательный материал, спасибо за ответ. Я внимательно посмотрю на Банши. Для удовольствия я попытался воспроизвести один из моих медиафайлов в Linux, и он попросил меня найти кодек; который он загрузил и установил (он был подключен gstreamer), а затем воспроизведен файл. Я понимаю, почему общие кодеки не включены в дистрибутивы Linux, но я думаю, мне не ясно, как Fluendo взимает плату за плагины на своем сайте, но ОС может просто захватить их и использовать. Возможно, это еще один вопрос! Еще раз спасибо. – TheNextman
Все зависит от того, хотите ли вы попасть в судебный процесс с MPEGLA или нет. Диалоговое окно «автоматически загружать кодеки» содержит некоторые довольно отрывочные формулировки, которые большинство пользователей дома игнорируют, но это может быть не то, что вы хотите игнорировать для коммерческого продукта. –