Рейтинг 4.3 из 5. Голосов: 23

vlc

Возникла недавно необходимость организовать видеопрезентацию в учебном заведении. Проектор был, но в силу громоздкости конструкции, неудобного расположения экрана, такой способ не подошел. Как вариант - ЖК телевизор с большой диаганолью - подумаете вы. Но и здесь не получилось. В предыдущем кабинете был, а в классе с компьютерами нет.

Компромисс был найден. Я решил организовать трансляцию видеопотока со своего ноутбука в локальную сеть. 8 компьютеров клиентов смогли наслаждаться презентацией, причем с захватом компьютерной мыши.

Итак ближе к делу. В качестве сервера видеотрансляции был выбран мой ноутбук на не самом мощном процессоре P8600 и медиаплеер VLC. Продукт опенсурс и очень гибконастраиваемый.

Распишу пошагово настройки через интерфейс VLC.

Плеер может быть хоть на 32bit хоть на 64bit - на официальном сайте можно скачать хоть последнюю версию, хоть версии 2.0х, которая немного отличается от версии 2.1х, представленной в обзоре.

Итак, запускаем программу и заходим в Медиа - Передавать или жмем Ctrl+S

  • Далее выбираем режим захвата - экран
  • Частота кадров - в пределах 15-25 каров в секунду
  • Настраиваем кеширование в зависимости от мощности сети и сервера
  • Строка параметров - здесь надо разобраться подробнее в настройках

 Внешний вид мастера настроек

scr1

Строка параметров:
:screen-left=0 :screen-top=0 :screen-height=768 :screen-width=1360  :screen-fps=20.000000 :live-caching=300 :screen-follow-mouse :screen-mouse-image=cursor.png
:screen-left=0 :screen-top=0 - Координаты верхней левой точки экрана
:screen-height=768 :screen-width=1360 - Высота и ширина экрана ноутбука 1366х768px 

При трансляции ширину задаем именно 1360px !!! это значение задается экспериментально, при 1366 не будет захвата курсора мыши (проверено опытным путем)

:screen-fps=20.000000 :live-caching=300 - частота кадров 
и время кеширования видео для снижения нагрузки на сеть
:screen-follow-mouse :screen-mouse-image=cursor.png - опции для захвата курсора компьютерной мыши

Курсор с именем cursor.png необходимо положить в папку с вашим VLC или задать относительный путь с указанием буквы диска. Если этого не сделать - трансляция не пойдет и будет выведено сообщение об ошибке.

Выбираем формат сжатия для потока

Mpeg-2 дает сравнительно низкую нагрузку на процессор ноутбука, по сравнению с тем же H-264

scr5

:sout=#transcode{vcodec=mp2v,vb=800,fps=20,scale=0,acodec=none}:http{dst=:8080/video.ts, ttl=1} :sout-all :sout-keep

Ниже для удобства прикреплю готовый батник для запуска VLC и картинку курсора.

Извлеките vlcscr.bat  в удобное место для запуска и положите картинку курсора в папку vlc, например

c:\Program Files (x86)\VideoLAN\VLC\

Bat файл: zipvlcscr.zip

Курсор в виде точки: pngcursor.png

Текст bat файла:

@echo off
cd c:\
cd Program Files (x86)\VideoLAN\VLC\
start vlc.exe screen:// :screen-left=0 :screen-top=0 :screen-height=768 :screen-width=1360  :screen-fps=20.000000 :live-caching=300 :screen-follow-mouse :screen-mouse-image=cursor.png  :sout=#transcode{vcodec=mp2v,vb=800,fps=20,scale=0,acodec=none}:http{dst=:8080/video.ts, ttl=1} :sout-all :sout-keep
exit

Остается только проверить трансляцию. Запускаем vlc на любом компьютере в сети и пробуем Медиа - Открыть URL

В качестве адреса нужно указать ip или URL нашего ноутбука сервера, обычно если в сети маршрутизатор, то ip наш ноутбук получит от DHCP сервера.

Порт указываем в соотвествии с настройками трансляции, имя видеофайла также.

final

В связи с возникающими вопросами связанными с качеством и скоростью трансляции - появилось продолжение.

В продолжении я расскажу как использовать DirectShow фильтр в качестве драйвера захвата. При этом курсор и все элементы экрана остаются неизменными и убирается характерное моргание.

Просмотров: 52593 Печать Назад
 

Комментарии 

#16 belalugoci
11.11.2021 15:06
1) Медиа - Открыть устройство захвата
2) Режим "Экран", 1 к/с (ставил 10, 30, не влияло)
3) Внизу кнопка с надписью "Воспроизведение ", рядом стрелка вниз нарисована, нажать на стрелку и выбрать "Поток"
4) Источник "screen:\\" уже заполнен, жмём "Следующий"
5) Новое назначение выбрать "HTTP" и ОБЯЗАТЕЛЬНО!!! нажать "Добавить". Создаётся вкладка HTTP с заполненным портом "8080", вероятно его можно задать свой, я пока не трогал, в поле "Путь" укажите "\v.ts" без кавычек (зачем пишут аж длинное VIDEO.TS я не понимаю, наверное людям делать нечего набирать по 300 букв). Пробовал не указывать имя файла - не работает сразу. Жмём "Следующий"
6) перекодирование , играемся с кодеками, жмём "Следующий"
7) Жмём "Поток"
8) Настройка закрывается и у VLC в заголовке будет написано "Converting screen://"
9) ЗАПУСКАЕМ VLC (MPC-HC), "Открыть URL"/"Открыть файл", адрес "http://192.168.1.1:8080/v.ts". Адрес 192.168.1.1 у вас должен быть свой.
Цитировать
#15 belalugoci
30.10.2021 16:34
Почему не люблю подобные статьи - совершенно не ясно для кого она написана. Если для новичка, то тут только 50% информации, то есть запустить ничего не получится. А если для разбирающегося в вопросе, который эти 50% сам понимает как сделать - так ему и сам гайд нафик не нужен. Вот и получается - весь интернет забит бесполезными инструкциями.
Цитировать
#14 Дмитрий
17.08.2020 16:22
Для тех у кого подобная моей проблема вот мой код

@echo off
cd c:\
cd Program Files (x86)\VideoLAN\ VLC\
start vlc.exe screen:// :screen-left=0 :screen-top=0 :screen-height=768 :screen-width=1360 :screen-fps=20.000000 :live-caching=300 :sout=#transcode{vcod ec=mp2v,vb=1500,fps=20,scale=0,acodec=none}:udp{dst=239.224.0.1:1234} :sout-all :sout-keep
exit
Цитировать
#13 Дмитрий
17.08.2020 16:20
Спасибо от души! двое с половиной суток пытался решить проблему стрима экрана в udp из командной строки со свёрнутым интерфейсом. Спасибо реально помогло что ты выложил код.
Цитировать
#12 Zoindberg
23.08.2019 16:40
По http все работает. Да и ts контейнер в последних Vlc не пашет. Вырезали наверно.
Цитировать
#11 Михаил
12.08.2019 23:57
Странно, всё делается по инструкции, но из локальной сети ссылка типа rtsp://192.168.1.127:8554/video.ts не работает.

Подскажите, нужен ли Bat файл и с какой целью необходимо задавать имя файла для трансляции?
Цитировать
#10 TvMan
01.05.2019 14:51
Цитирую Кирилл:
Блин,всё делал точно также,но звука у трансляции нет,в чём проблема?

Так звук тоже захватить и закодить надо. Там допкоманды прописывать надо. А так только изображение.
Цитировать
#9 Кирилл
28.04.2019 23:04
Блин,всё делал точно также,но звука у трансляции нет,в чём проблема?
Цитировать
#8 Павел
04.03.2019 01:30
После всех настроек получаю: Этот источник не открывается:
VLC не может открыть MRL 'screen://'. Ищите более подробную информацию в лог-файле. У меня Ubuntu.
Цитировать
#7 Елена
09.01.2019 12:01
Спасибо за материал. Но мне нужно организовать трансляцию не на всю локальную сеть, а выборочно. Не подскажите подходящую программу?
Цитировать