1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/nljb-winxplay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Winxplay

Специализированный мультимедийный проигрыватель, разработанный для Raspberry Pi, но также поддерживающий Windows, Linux и Android.


Поддерживает:

  • видео;
  • аудио;
  • потоковое мультимедиа;
  • изображения;
  • камеру;
  • анимацию;
  • текст;
  • прокручивающиеся субтитры;
  • дату и время;
  • двухмерные коды (QR-коды).

Логотип


Мультимедийный проигрыватель Winxplay распространяется через облако и централизованно управляет воспроизведением на устройствах с операционными системами Windows, Linux или ARM на базе Raspberry Pi. Для получения пробного доступа свяжитесь с нами по QQ: 328292201.

Скриншот


Поддерживаемые системы
Поддерживаемые функции
Структура каталогов
Способ установки
Управление воспроизведением
Командная строка
Команды управления
Информация о лицензии


Поддерживаемые системы

Система Версия Протестировано?
Windows 10 1909 Да
Windows 10 2004 Да
Windows 10 20H2 Да
Windows 10 21H1 Да
Windows 10 21H2 Да
Windows 10 22H2 Да
Windows 11 Нет

Структура каталогов

winxplay/xplayrun.bat      Скрипт запуска (можно настроить параметры запуска)
winxplay/xplay.exe         Основная программа
winxplay/xplayctl.exe      Инструмент командной строки
winxplay/log4qt.properties Файл конфигурации журнала
winxplay/simsun.ttc        Файл шрифта по умолчанию

Поддерживаемые функции

  1. Можно настраивать разрешение и частоту кадров (FPS) проигрывателя, а также адаптировать частоту дискретизации звука (Sample Rate).
  2. Можно использовать TCP-соединение для отправки команд управления проигрывателем (воспроизведение, наложение, остановка, перемещение и т. д.).
  3. Можно воспроизводить различные типы медиафайлов: видео, аудио, потоковые мультимедиа, изображения, записи с камеры, анимацию, текст, прокручивающиеся субтитры, дату и время, двухмерные коды.
  4. Поддерживаются различные форматы видео (например, MP4, AVI, MOV и др.), аудио (AAC) и потоковых мультимедиа.
  5. Поддерживается воспроизведение потокового мультимедиа в форматах RTMP, RTSP, HTTP, H264/H265 (YUV420P/YUVJ420P).
  6. Поддерживаются форматы изображений JPG и PNG.
  7. Поддерживается формат анимации GIF.
  8. Поддерживается аппаратное декодирование видео с помощью MMAL, VAAPI, VDPAU, QSV, MediaCodec, RKMPP и NVDEC (H264).
  9. Поддерживается предварительная загрузка видео.
  10. Поддерживается однопоточное и многопоточное декодирование видео.
  11. Поддерживается камера Raspberry Pi Camera V2.
  12. Поддерживается переключение между видео и изображениями без чёрного экрана.
  13. Поддерживается последовательное воспроизведение видео и изображений.
  14. Поддерживается синхронизация аудио и видео по временным меткам кадров.
  15. Поддерживается синхронизация видео по временным меткам кадра и часам.
  16. Поддерживается многослойное (Overlay) воспроизведение различных типов медиафайлов.
  17. Можно настраивать текст (размер шрифта, цвет шрифта, цвет фона, прозрачность, выравнивание, стиль, многострочный абзац).
  18. Можно настраивать прокручивающиеся субтитры (размер шрифта, цвет шрифта, цвет фона, прозрачность, стиль, скорость перемещения, направление перемещения).
  19. Можно настраивать информационные окна (текст уведомления, успешное выполнение, предупреждение, ошибка).
  20. Можно настраивать отображение даты и времени (размер шрифта, цвет шрифта, цвет фона, прозрачность, выравнивание, стиль).
  21. Можно настраивать шрифты (с помощью пользовательских шрифтов TTC можно создавать различные эффекты текста).
  22. Можно настраивать макет (многослойные функции позволяют создавать разнообразные макеты).
  23. Можно настроить зацикливание воспроизведения видео (видео будет воспроизводиться до конца, после чего останется на последнем кадре).
  24. Можно настраивать размер медиафайлов (ширина, высота), позволяя произвольно масштабировать их.
  25. Можно задавать положение медиафайлов на экране (координаты x и y), произвольно определяя их местоположение.
  26. Можно перемещать медиафайлы на экране и изменять их размер (ширину и высоту).
  27. Можно поворачивать медиафайлы по горизонтали (на 0°, 180°) и вертикали (на 90°, 270°).
  28. Можно задать время начала воспроизведения медиафайлов, что позволяет синхронизировать их на разных проигрывателях.
  29. Поддерживается создание снимков экрана в реальном времени.
  30. Можно отключить звук при воспроизведении. | Команда | Значение по умолчанию | Возможные значения | Описание | | --- | --- | --- | --- | | -zIndex | 10 | 0–999 | Уровень | | -rect | 0, 0, 1920, 1080 | left, top, width, height | Размер и положение материала | | -screen_mode | landscape | landscape, portrait | Режим экрана (горизонтальный или вертикальный) | | -screen_rotate | 0 | 0, 180, 90, 270 | Угол поворота | | -font_ttf | Нет | Нет | Указанный шрифт | | -font_size | 18 | 12–72 | Размер шрифта | | -color | rgba(0,128,0,100%) | Нет | Цвет текста и прозрачность | | -bgcolor | rgba(0,0,0,20%) | Нет | Фон и прозрачность | | -align | center | center, right, left | Выравнивание | | -style | normal | normal, bold, italic, underline, strikethrough | Стиль текста |
Команда Значение по умолчанию Возможные значения Описание
-zIndex 10 0–999 Уровень
-screen_mode landscape landscape, portrait Режим экрана (горизонтальный или вертикальный)
-screen_rotate 0 0, 180, 90, 270 Угол поворота
-content Нет Нет Текстовое содержимое
-toast_type notice notice, success, warning, error Тип сообщения
-duration 0 Нет Время отображения (в секундах); если значение равно 0, то сообщение не исчезает
winxplay/xplayctl.exe -h # помощь
winxplay/xplayctl.exe -stop -all # остановить всё
winxplay/xplayctl.exe -query -all # запросить всё
winxplay/xplayctl.exe -stop -ids "10,11,12" # остановить указанные слои
winxplay/xplayctl.exe -snap -path "E:/snap.jpg" # сделать снимок экрана
winxplay/xplayctl.exe -change -zIndex 10 -newIndex 11 # изменить слой (переключить слои)
winxplay/xplayctl.exe -move -zIndex 10 -rect 100,100,500,500 # переместить и изменить
winxplay/xplayctl.exe -play -libName pic -path "/root/sample.jpg" # показать изображение
winxplay/xplayctl.exe -play -libName gif -path "/root/sample.gif" # показать анимацию
winxplay/xplayctl.exe -play -libName video -path "/root/sample.mp4" # показать видео
winxplay/xplayctl.exe -play -libName video -zIndex 10 -path "/root/sample.mp4" # показать видео
winxplay/xplayctl.exe -play -libName qrcode -zIndex 5 -content "www.danoonetworks.com" # показать QR-код
winxplay/xplayctl.exe -play -libName datetime -zIndex 9 -rect "0,0,500,50" -font_size 30 -align center # показать дату и время
winxplay/xplayctl.exe -play -libName toast -zIndex 3 -content "Установка прошла успешно" -toast_type success -duration 5 # показать информационное окно
winxplay/xplayctl.exe -play -libName text -zIndex 9 -rect "0,0,1920,50" -content "Мультимедийный проигрыватель, разработанный специально для Raspberry Pi" # показать текст
winxplay/xplayctl.exe -play -libName scroll -zIndex 9 -rect "0,0,-1,50" -content "Мультимедийный проигрыватель, разработанный специально для Raspberry Pi" -speed 2 -orientation horizontal # показать горизонтальную прокрутку текста
winxplay/xplayctl.exe -play -libName scroll -zIndex 9 -rect "0,0,500,-1" -content "Мультимедийный проигрыватель, разработанный специально для Raspberry Pi" -speed 2 -orientation vertical # показать вертикальную прокрутку текста
winxplay/xplayctl.exe -play -libName text -zIndex 9 -rect "0,0,1920,50" -content "Мультимедийный проигрыватель, разработанный специально для Raspberry Pi" -color "rgba(0,128,0,100%)" -bgcolor "rgba(0,0,0,20%)" -font_size 14 -align center -style bold # показать текст с указанными параметрами
winxplay/xplayctl.exe -play -libName sequence -zIndex 10 -rect "0,0,1920,1080" -path "/root/a1.mp4,/root/b1.jpg,/root/a2.mp4" -duration 5 # воспроизвести последовательность файлов с указанными параметрами
# Пример использования команды «путь»
cd E:\MyCore ; winxplay/xplayctl.exe -play -libName video -path ./sample.mp4 # эквивалентно
winxplay/xplayctl.exe -play -libName video -path E:\MyCore\sample.mp4

# Пример удалённого потокового вещания
cd E:\MyCore; winxplay/xplayctl.exe -addr 192.168.1.11:8700 -play -libName video -path ./sample.mp4 # эквивалентно
winxplay/xplayctl.exe -addr 192.168.1.11:8700 -play -libName video | **Контрольные команды**| **Описание**|
| --- | --- |
| play | воспроизведение|
| stop | остановка|
| move | перемещение|
| snap | снимок экрана|
| query | запрос|
| change | изменение|

| **Тип материала** (libName)| **Описание**|
| video | видео/потоковое мультимедиа|
| toast | информационное окно|
| camera | камера|
| pic | изображение|
| gif | анимация|
| qrcode | QR-код|
| text | текст|
| scroll | прокрутка субтитров|
| datetime | дата и время|
| sequence | последовательное воспроизведение|

// Описание команд { "id": "Z10_Play_1557737960000", // Уникальный идентификатор (пользовательский уникальный идентификатор) [необязательный] "type": "play", // Тип команды [обязательно] "start": -1, // Время начала (по умолчанию: -1, немедленное воспроизведение, местное время в миллисекундах) [необязательно] "libName": "video", // Тип материала (video, pic, sequence, camera, gif, qrcode, text, scroll) [обязательно] "params": { // Набор параметров [обязательно] "zIndex": 10, // Слой (поддерживает несколько слоёв воспроизведения, чем меньше номер слоя, тем ближе к переднему плану) [обязательно] "path": "/root/sample.mp4", // Путь к материалу [обязательно] "left": 0, // Расстояние от левого края (ось X) [необязательно] "top": 0, // Расстояние от верхнего края (ось Y) [необязательно] "width": 1920, // Ширина (ширина отображения материала, не исходная ширина материала, поддерживает масштабирование и растяжение) [обязательно] "height": 1080, // Высота (высота отображения материала, не исходная высота материала, поддерживает масштабирование и растяжение) [обязательно] "screen_mode": "landscape", // Режим экрана (горизонтальный: landscape, вертикальный: portrait, по умолчанию горизонтальный) [необязательно] "screen_rotate": 0 // Угол поворота (горизонтальный угол: 0 или 180 градусов, вертикальный угол: 90 или 270 градусов, по умолчанию горизонтальный угол) [необязательно] } } #End // Конец команды [обязательно]

// Результат команды { "ok" : false, // Ошибка выполнения команды [обязательно] "data" : "Информация об ошибке" // Информация об ошибке [необязательно] } #End

// Результат команды { "ok" : true, // Успешное выполнение команды [обязательно] "data" : ... // Формат команды [необязательно] (например: при запросе результата команды запроса, здесь возвращается результат запроса) } #End


| Воспроизведение видео (video)| Описание|
| --- | --- |
| offset | смещение (мс)|

// Воспроизведение видео { "id":"Z10_Play_1557737960000", "type":"play", "start":-1, "libName":"video", "params":{ "zIndex":10, "path":"/root/sample.mp4", "offset":5000, "left":0, "top":0, "width":1920, "height":1080, "screen_mode":"landscape", "screen_rotate":0 } } #End


| Потоковое воспроизведение видео (video) | Описание|
| --- | --- |
| timeout | тайм-аут потока (мс)|

> Тайм-аут потока: когда поток не получает данные пакеты в течение указанного времени, текущий декодер будет остановлен, и состояние декодера можно запросить с помощью команды query.

// Потоковое воспроизведение { "id":"Z10_Play_1557737960000", "libName":"video", "start":-1, "type":"play", "params":{ "path":"http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8", "timeout":5000, "height":1080, "width":1920, "left":0, "top":0, "screen_mode":"landscape", "screen_rotate":0, "zIndex":10 } }

// Отображение изображения { "id":"Z10_Play_1556637960000", "type":"play", "start":-1, "libName":"pic", "params":{ "zIndex":10, "path":"/root/cat.jpg", "top":0, "left":0, "height":1080, "width":1920, "screen_mode":"landscape", "screen_rotate":0 } } #End


| Последовательное воспроизведение (sequence) | Описание|
| --- | --- |
| path | несколько путей к материалам через запятую (,)|
| duration | время воспроизведения для не видеоматериалов (с)|

// Последовательное воспроизведение (формат один) { "type":"play", "id":"PLAY_Z10_1582276422", "libName":"sequence", "start":-1, "params":{ "zIndex":10, "path":"/root/a1.mp4,/root/b1.jpg,/root/a2.mp4,/root/b2.jpg", "duration":10, "top":0, "left":0, "width":1920, "height":1080, "screen_mode":"landscape", "screen_rotate":0 } } #End


| Последовательное воспроизведение (sequence)| Описание|
| --- | --- |
| deps[] | данные последовательности|
| deps[].path | путь к материалу|
| deps[].type | соответствующий тип libName материала (видео, картинка)|
| deps[].duration | время воспроизведения для не видеоматериалов (с)|

// Последовательное воспроизведение (формат два) { "type":"play", "id":"PLAY_Z10_1582276422", "libName":"sequence", "start":-1, "params":{ "zIndex":10, "top":0, "left":0, "width":1920, "height":1080, "screen_mode":"landscape", "screen_rotate":0 }, "deps":[ { "duration":-1, "path":"/root/a1.mp4", "type":"video" }, {

| --- |
| Выравнивание | по центру, справа, слева |
| Стиль | нормальный, жирный, курсив, подчёркивание, зачёркивание |

// Отображение даты и времени { "type": "play", "id": "Z9_Play_1572344489512", "libName": "datetime", "start": -1, "params": { "top": 0, "left": 0, "width": 500, "height": 50, "zIndex": 9, "screen_rotate": 0, "screen_mode": "landscape", "color": "rgba(0, 128, 0, 100%)", "bgcolor": "rgba(0, 0, 0, 20%)", "font_size": 30, "align": "center", "style": "bold" } } #End


>Если анимация отображается неправильно, вы можете использовать Photoshop для повторного сохранения.

// Показать анимацию { "id": "Z9_Play_1554437960000", "type": "play", "start": -1, "libName": "gif", "params": { "zIndex": 9, "path": "/root/aaa.gif", "top": 0, "left": 0, "height": 100, "width": 100, "screen_mode": "landscape", "screen_rotate": 0 } } #End

// Показать QR-код { "id": "Z9_Play_1558837960000", "type": "play", "start": -1, "libName": "qrcode", "params": { "zIndex": 9, "content": "http://www.danoonetwork.com", "top": 0, "left": 0, "height": 100, "width": 100, "screen_mode": "landscape", "screen_rotate": 0 } } #End

// Остановить все слои { "id": "Stop_1558837960000", "type": "stop", "start": -1, "params": { "all": true } } #End

// Остановить указанный слой { "id": "Stop_1558837960000", "type": "stop", "start": -1, "params": { "ids": [ "10", "11", "12" ] } } #End

// Переместить позицию { "type": "move", "params": { "zIndex": 10, "left": 100, "top": 100, "height": 500, "width": 500 } } #End


| Изменение (change) | Значение | Описание |
| --- | --- | --- |
| zIndex | 0–999 | Слой |
| newIndex | 0–999 | Слой |

>Когда целевой слой существует, исходный слой будет заменён на целевой слой.  
>Когда целевого слоя не существует, исходный слой изменится на целевой слой.

// Изменить слой { "type": "change", "params": { "zIndex": 10, "newIndex": 11 } } #End

// Сделать снимок экрана { "type": "snap", "params": { "path": "/dev/shm/snap.jpg" } } #End

// Запросить все слои { "type": "query", "params": { "all": true } } #End

Запрос всех слоёв (query) Описание
decoder Работает ли декодер

// Возвращаемый результат { "data": [ { "id": "PLAY_Z9_PIC_1591330423", "libName": "pic", "params": { "height": 600, "left": 100, "path": ":/welcome.jpg", "screen_mode": "portrait", "screen_rotate": 270, "top": 100, "width": 800, "zIndex": 9 } }, { "id": "PLAY_Z10_VIDEO_1591330410", "libName": "video", "params": { "height": 1080, "left": 0, "path": "/root/yiyezi.mp4", "screen_mode": "landscape", "screen_rotate": 180, "top": 0, "width": 1920, "zIndex": 10, "decoder": true } } ], "ok": true } #End

Информация о лицензии

Qt использует LGPL License https://www.qt.io/licensing/ и https://www.qt.io/features#js-6-3.
Вы можете использовать базовую библиотеку и некоторые дополнительные библиотеки Qt при условии соблюдения всех требований LGPLv3. LGPLv3 позволяет вам сохранять исходный код вашего приложения закрытым, если вы соблюдаете все требования LGPLv3. Эта программа соответствует требованиям LGPL для Qt Core.

LOG4QT использует APACHE LICENSE VERSION 2.0 https://www.apache.org/licenses/LICENSE-2.0.html.

SDL и SDL_ttf и SDL_image (libjpeg, libpng, zlib1) и SDL_net используют лицензию https://www.zlib.net/zlib_license.html, которая предоставляет любому лицу право использовать, копировать, изменять, объединять, публиковать, распространять, повторно лицензировать и продавать программное обеспечение и копии программного обеспечения.

jsoncpp использует MIT License. Лицензированный человек имеет право использовать, копировать, модифицировать, объединять, издавать, распространять, повторно лицензировать и продавать программу и её копии.

FFmpeg использует GNU Lesser General Public License (LGPL) License http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. FFmpeg License and Legal Considerations http://ffmpeg.org/legal.html.

Лицензия FFmpeg для Windows https://ffmpeg.zeranoe.com/builds/. FFmpeg — это ведущая мультимедийная среда для декодирования, кодирования, перекодирования, мультиплексирования, демультиплексирования, потоковой передачи, фильтрации и воспроизведения.

Для всех сборок требуется как минимум Windows 7 или Mac OS X 10.10. Ночные сборки git лицензированы по GPL версии 3.0, а релизные сборки — по GPL 3.0 и LGPL 3.0. Релизы LGPL версии 3.0 можно найти по ссылкам «Все сборки».

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/nljb-winxplay.git
git@api.gitlife.ru:oschina-mirror/nljb-winxplay.git
oschina-mirror
nljb-winxplay
nljb-winxplay
master