В предыдущей заметке я рассказывал как организовать трансляцию рабочего стола по локальной сети только с помощью VLC. Такой способ имеет существенные недостатки в своей реализации. На экране с которого транслируем курсор начинает моргать, нагрузка на ЦП довольно высокая, так что этот метод подходит только как временный вариант.
Для того чтобы избавиться от этих недостатков необходимо использовать быстрый DirectShow фильтр. Он будет выполнять роль захвата экрана, а VLC только транслировать поток в сеть.
В качестве фильтра Directshow можно использовать Screen Capture Recorder и представлен этот рекордер для системы Windows. Для другой операционки придется искать подобную альтернативу.
На момент написания статьи на сайте была версия 0.12.8. Вот ее то и рассмотрим. Скачать и установить фильтр не составит труда, но напомню что для его функционирования необходима установленная в системе Java.
До того как мы перейдем к VLC необходимо настроить Screen Capture Recorder.
Все настройки показаны для простенького ноутбука с диагональю экрана 15.6 и разрешением экрана 1366х768.
В меную Пуска легко найти опцию конфигурирования рекордера. Надо выбрать опцию configure by specific screen capture numbers.
В диалогах задаем параметры захвата экрана как на скринах:
И количество кадров в секунду (fps). Этот параметр выбирается в зависимости от мощности компьютера и пропускной способности сети.
Остальные параметры можно оставить по умолчанию.
bat файл для запуска vlc теперь будет выглядеть таким образом:
@echo off cd c:\ cd Program Files (x86)\VideoLAN\VLC\ start vlc.exe --qt-start-minimized --qt-system-tray dshow:// :dshow-vdev=screen-capture-recorder :dshow-adev=none :dshow-size=1360x768 :live-caching=300 :dshow-aspect-ratio=16\:9 :v4l2-chroma=YUYV :sout=#transcode{vcodec=WMV2,vb=1000,fps=12,scale=auto,acodec=none}:http{mux=asf,dst=:8080/video.asf} :ttl=1 :sout-all --live-caching=1000 --sout-mux-caching=1000 exit
Ключи --qt-start-minimized --qt-system-tray заставят VLC запускаться в фоновом режиме и сворачиваться в трей.
dshow:// :dshow-vdev= установит в качестве источника Directshow фильтр.
:dshow-adev=none заставит транслировать без звука, если нужен звук в этой опции надо прописать параметры вашего устройства.
В качестве кодека на этот раз я выбрал WMV2 и контейнер asf. Это позволило снизить нагрузку на процессор и избежать некоторых ошибок которые были при использовании контейнера ts. Наличие ошибок можно проверить в режиме отладки VLC. Он их пишет в логи.
Для 32 битного VLC прикладываю bat файл в архиве. vlcdshow.zip
Поток должен быть доступен по адресу http://192.168.1.200:8080/video.asf
Где 8080 - это порт по которому ведется трансляция, video.asf - имя файла, 192.168.1.200 - Ip компьютера с которого ведется вещание - будет другой, обычно выдается DHCP сервером сети или задается вручную.
Рубрики
-
3D и графика ( 7 )
-
Веб разработка ( 13 )
-
Железо и периферия ( 8 )
-
Портфолио и резюме ( 3 )
-
Сервер на Debian Linux ( 20 )
-
Сисадмину на заметку ( 14 )
-
Тестовая лаборатория ( 10 )
Новые записи
25.03.23 Ошибка 0x00000709 при попытке установить сетевой USB принтер
05.10.19 Добавление сертификата в exim4
18.08.18 Утилиты диагностики системы Linux
02.10.16 Отключение systemd на Debian
Комментарии
- Всё отлично! Спасибо за гайд!
03.03.24 08:01 комментирует: Luidgi Vampa - Добрый день! Спасибо вам за ваши статьи! Подскажите пожалуйста. Как проверить ус...
17.01.24 01:47 комментирует: Олег - Спасибо, проделал на ноутбуке dv5-1040er, скорость реально выросла. Делал на w10...
10.10.23 15:58 комментирует: Евгений - у мене схожа проблема як була у вас... чому ви вирішили ввести 92500000??? дякую...
11.04.23 01:51 комментирует: Володимир
Комментарии
03.01.2017 03:52
16.11.2016 13:53
В VLC 2.2 будет выводиться та ошибка которую вы описали.
К тому же батник не универсальный и рекомендуется править его под свою конфигурацию экрана и тд.
Попробуйте использовать другой кодек и контейнер. Например MP4.
Использую такой способ трансляции в ВУЗе для того чтобы студенты могли видеть по сетке рабочий стол моего ноутбука. Примерная задержка в трансляции - 1 секунда. Ошибок нет.
16.11.2016 07:23
Ошибка вещания/перекодирования :
VLC не может открыть кодер WMV2 видео.
Ошибка вещания/перекодирования :
VLC не может открыть кодер WMV2 видео.
Что не так? PLS HELP!!!
01.08.2016 18:58
2. Для вебкамеры можно написать другой батник где надо указать :dshow-vdev= :dshow-adev= от вашей вебки.
Для трансляции видеоигры придется искать directshow с игровым режимом захвата.
Чтобы все одновременно передать на Tвич, скорее всего без видеомикшера не обойтись. Программного.
Я использую для этих целей Open Broadcaster Software. Он позволяет микшировать видео и аудиоконтент из разных источников в том числе добавлять оверлей с VLC и вебкамеры.
30.07.2016 13:53