VideoLAN - VLC media player. Воспроизведение видео на терминалах

В WTware встроен VideoLAN - VLC media player.

Включается строчкой в конфиге: application = vlc

Работает только с video=...(U). Никак нельзя запустить VLC, если video=...(F) или video=...(X). Если на вашей машине с 1024Мб памяти не запускается ни один драйвер видео из набора (U), пишите, будем чинить.

В WTware для Raspberry Pi VLC еще не сделан.

Самый простой пример

Чтобы просто запустить VLC и увидеть, что оно работает, напишите в конфигурационный файл три строки:

application = vlc
vlc_files = vlc.jpg
vlc_cmdline = /vlc_files/vlc.jpg --image-duration=-1

C таким конфигурационным файлом на экране появится оранжево-зеленая картинка с текстом "VLC for WTware test screen." Что означает каждая из строк конфигурационного файла:

application = vlc

Включает проигрыватель VLC вместо обычного RDP клиента.

vlc_files = vlc.jpg

Указывает терминалу скачать файл vlc.jpg из каталога VLC на TFTP или HTTP сервере (скорее всего, полный путь C:\ProgramData\WTware\VLC). Файл будет скачан в память терминала и доступен как /vlc_files/vlc.jpg

vlc_cmdline = /vlc_files/vlc.jpg --image-duration=-1

Указывает проигрывателю VLC открыть файл //vlc_files/vlc.jpg, а волшебое слово --image-duration=-1 указывает бесконечно долго показывать картинку.

VLC и виртуальные экраны

Проигрыватель VLC можно поместить на второй виртуальный экран. Подробно про виртуальные экраны написано в документации. Пример конфигурационного файла, в котором на первом виртуальном экране подключение к RDP серверу 192.168.1.1, а на втором проигрыватель VLC с тестовой картинкой. Переключаться между экранами клавишами Win-1..Win-2, Win-стрелки или через всплывающее меню внизу справа:

server=192.168.1.1
next screen
application = vlc
vlc_files = vlc.jpg
vlc_cmdline = /vlc_files/vlc.jpg --image-duration=-1

Видео из памяти терминала

Картинка это еще не видео. Не интересно. Можно записать видеофайл в каталог VLC и указать его имя вместо vlc.jpg в параметрах vlc_files= и vlc_cmdline=. Тогда проигрыватель VLC будет воспроизводить видео. Файлы, указаные в параметре vlc_files=, будут загружены в оперативную память терминала при загрузке. Не стоит указывать файлы размером в гигабайты: будет загружаться долго и оперативной памяти может не хватить. Файлы загружаются быстрее, если настроить загрузку по HTTP.

Для бесконечного повтора видео в параметре vlc_cmdline нужно убрать волшебное слово --image-duration=-1 и добавить другое волшебное слово --loop. Пример:

application = vlc
vlc_files = yourvideo.mov
vlc_cmdline = /vlc_files/yourvideo.mov --loop

Видео по сети

application = vlc
chrome_share = \\192.168.1.1\readonly, user vasja, password pivo
vlc_cmdline = /home/chromium/Downloads/BBB/big_buck_bunny_480p_h264.mov --loop

Параметр chrome_share= подключит к терминалу сетевую папку. Параметр был сделан для сохранения файлов из локального Chromium, поэтому на терминале сетевая папка всегда подключается в /home/chromium/Downloads/. Графический конфигуратор WTware умеет шифровать пароль.

Параметр vlc_cmdline= запустит на воспроизведение файл big_buck_bunny_480p_h264.mov из каталога BBB сетевой папки readonly сервера 192.168.1.1.

RTSP вещание, настройка источника видео

VLC умеет принимать вещание по протоколу RTSP. Этот протокол используют камеры видеонаблюдения, и WTware можно настроить принимать картинку с камер. Или же можно настроить вещание видеопотока в сеть с Linux-машины и показывать одинаковое, синхронное видео на нескольких терминалах с WTware.

В качестве источника RTSP вещания нужна именно Linux машина, с Windows получается плохо. Возьмите любой свежий Linux. Live USB в виртуальной машине вполне подойдет. Ниже будут скриншоты запуска вещания, снятые с Ubuntu Linux. На скриншотах входящий в дистрибутив Ubuntu VLC. Ничего сложного:







RTSP вещание, настройка терминала

Конфигурационный файл терминала, принимающего вещание RTSP:

application = vlc
vlc_cmdline = rtsp://10.1.1.32:8554/test

Вместо 10.1.1.32 надо указать IP машины с Linux, на которой запущено вещание. Так, как нарисовано на скриншотах выше. Порт 8554 и путь /test указаны на скриншотах. На экране терминала должно появиться видео. Можно запустить несколько терминалов с одинаковыми настройками, и все они будут покзывать одинаковое видео, которое вещается по RTSP с Linux машины.

Принимать вещание с камеры видеонаблюдения точно так же, порт и путь надо взять из настроек камеры.

Конфигурационный файл VLM

Сложную настройку проигрывателя VLC удобнее выполнять через специальный конфигурационный файл VLM. Сначала самый простой пример, VLM для картинки. Записываем этот текст в файл test1.txt в каталоге VLC:

new c1 broadcast enabled
setup c1 input /vlc_files/vlc.jpg
control c1 play

В конфигурационном файле WTware пишем:

application = vlc
vlc_files = test1.txt, vlc.jpg
vlc_cmdline = --vlm-conf=/vlc_files/test1.txt --image-duration=-1

На экране должна получиться картинка с текстом "VLC for WTware test screen."

Мозаика. Четыре вещания на экране

Более сложный пример настройки проигрывателя VLC с помощью конфигурационного файла VLM. Сначала надо запустить вещание видео в сеть на машине с Linux так, как выше было нарисовано на скриншотах. Затем записываем текст в файл test2.txt в каталоге VLC, заменяя 10.1.1.20 на IP вашей машины с линуксом:

new c1 broadcast enabled loop
setup c1 input rtsp://10.1.1.20:8554/test
setup c1 output #mosaic-bridge{id=1,width=300,height=224}
control c1 play

new c2 broadcast enabled loop
setup c2 input rtsp://10.1.1.20:8554/test
setup c2 output #mosaic-bridge{id=2,width=300,height=224}
control c2 play

new c3 broadcast enabled loop
setup c3 input rtsp://10.1.1.20:8554/test
setup c3 output #mosaic-bridge{id=3,width=300,height=224}
control c3 play

new c4 broadcast enabled loop
setup c4 input rtsp://10.1.1.20:8554/test
setup c4 output #mosaic-bridge{id=4,width=300,height=224}
control c4 play

В конфигурационный файл WTware пишем следующие строки. Обратите внимание: всё, что следует после vlc_cmdline= это одна длинная строка:

application = vlc
vlc_files = test2.txt, vlc.jpg
vlc_cmdline =  --sub-source=mosaic{width=640,height=480,xoffset=10,yoffset=10,rows=2,cols=2,keep-picture} --vlm-conf=/vlc_files/test2.txt /vlc_files/vlc.jpg --file-caching=2000 --image-duration=-1

Должна получиться такая картинка:


Четыре рыбы в четыре раза лучше одной рыбы! Можно указать разные источники видео, например с разных камер видеонаблюдения.

Про размеры. Мозаика работает так: сначала масштабируются видеопотоки, их размеры становятся равными указанным в width= и height= в конструкции #mosaic-bridge{}. Затем потоки накладываются на фоновую картинку. И после этого фоновая картинка с видеопотоками растягивается на весь экран терминала. Чтобы не запутаться, надо вместо нашей картинки vlc.jpg использовать фоновую картинку того же размера, что и физическое разрешение монитора на терминале, и в width= и height= внутри конструкции mosaic{} указывать размер этой картинки.

Промышленная эксплуатация

Два монитора 1920x1080 по девять камер видеонаблюдения с форума WTware:


Таймаут отключения VLC

По умолчанию WTware включает проигрыватель VLC только после того, как пользователь переключится на соответствующий виртуальный экран. И выключает, когда пользователь переключается на другой экран. Это позволяет не загружать процессор и сеть воспроизведением видео, когда VLC работает в фоне. Но при сетевом вещании видео картинка полностью прорисовывается через несколько секунд после запуска VLC. Неудобно, если переключать экраны приходится часто. Такая строка в конфигурационном файле WTware:

vlc_timeout = 30

указывает терминалу не выключать VLC 30 секунд после того, как пользователь переключится на другой экран, на котором может работать RDP клиент. Это позволит, например, быстро сделать запись в базе и, переключившись обратно на видеонаблюдение, сразу без задержек видеть все камеры. Возможные значения - от 0 (значение по умолчанию) до 300 (5 минут работы VLC в фоновом режиме). Можно запретить терминалу отключать проигрыватель VLC:

vlc_timeout = off


Появились комментарии, поправки к этой статье? Пожалуйста, напишите в форум!