Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. На Сервере:
    1. Открыть порт для получения данных с удаленного Клиента.

      Info
      titleПримечание.

      Открытый порт должен быть не занят. Для проверки доступности порта можно использовать следующую команду:

      No Format
      netstat -ano | findstr :<Порт>

      Рекомендуется задавать порты выше 10000.


    2. Добавить устройство 1 channel device и в поле IP-адрес задать адрес в формате:

      No Format
      listenrtsp://<IP-адрес Cервера>:<Порт>

      Info
      titleПримечание

      RTSP-ссылка задается опционально.

      No Format
      listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>



  2. На удаленном Клиенте:
    1. Скачать сборку открытых библиотек FFmpeg с официального сайта.
    2. Запустить командную строку и перейти в директорию с файлом ffmpeg.exe.
    3. Выполнить команду следующего формата:

      Code Block
      ffmpeg.exe -f gdigrab -video_size 640x480 -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

      где, 

      параметр Кодек может принимать значения mpeg2video, mpeg4, h264, hevc;
      параметры -video_size 640x480 и -muxdelay 0.1 являются не обязательным и могут быть убраны или изменены.

      При необходимости в команде могут быть заданы дополнительные параметры. 

      Поддерживаемые параметрыОписание
      -draw_mouse <int>Отрисовка курсора мыши. Возможные значения от 0 до 1, по умолчанию 1.
      -show_region <int>Отрисовка границ по линии захвата. Возможные значения от 0 до 1, по умолчанию 1.
      -framerate <video_rate>Значение частоты кадров.
      -video_size <image_size>Размер видеоизображения.
      -offset_x <int>Отступ​ по оси Х области захвата. Значение по умолчанию 0.
      -offset_y <int>Отступ​ по оси Y области захвата. Значение по умолчанию 0.

      После выполнения команды будет запущена трансляция экрана удаленного Клиента.

Дополнительные команды для трансляции экрана удаленного Клиента

На удаленном Клиенте можно выполнить дополнительные команды для трансляции экрана.

  • При наличии на удаленном клиенте нескольких экранов, для того чтобы транслировать их все, необходимо использовать команду вида:
Code Block
ffmpeg.exe -f gdigrab -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

где,
параметр -video_size отсутствует, тем самым используется всё видео пространство.

  • Также при наличии нескольких экранов на удаленном Клиенте их можно транслировать отдельно.


Например, чтобы транслировать только первый экран можно использовать команду:

Code Block
ffmpeg.exe -f gdigrab -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

Чтобы транслировать только второй экран можно использовать команду:

Code Block
ffmpeg.exe -f gdigrab -offset_x 1920 -offset_y 0 -video_size 1920x1080 -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

где,
параметр -offset_x 1920 выполняет отступ по оси Х вправо на 1920 пикселей, таким образом пропуская первый экран и используя второй.

Если на удаленном клиенте нужно транслировать третий экран, то значение параметра -offset_x будет -offset_x 3840, т.е отступ по оси Х вправо на 3840 пикселей, таким образом пропуская первый и второй экраны и используя третий.

Info
titleПримечание.

Значение параметра -offset_x зависит от разрешения экрана. Если разрешения экранов отличаются, то для трансляции отдельного экрана нужно учитывать его разрешение. 

  • Возможны комбинирования трансляции из нескольких определенных экранов. 

Например, для трансляции первого и второго экрана можно использовать команду:

Code Block
ffmpeg.exe -f gdigrab -offset_x 0 -offset_y 0 -video_size 3840x1080 -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

где,
значение параметра -video_size 3840x1080 означает сумму ширины первого и второго экранов.

Для трансляции второго и третьего экранов можно использовать команду:

Code Block
ffmpeg.exe -f gdigrab -offset_x 1920 -offset_y 0 -video_size 3840x1080 -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

где,
параметр -offset_x 1920 выполняет отступ по оси Х на ширину первого экрана;
значение параметра -video_size 3840x1080 означает сумму ширины второго и третьего экранов.

  • При использовании трёх и более экранов на удаленном Клиенте есть возможность использовать декодирования формата Nvidia в FFmpeg.

Для этого нужно выполнить команду следующего вида:

Code Block
ffmpeg.exe -f gdigrab -i desktop -c:v <Кодек> -f rtsp -muxdelay 0.1 "listenrtsp://<IP-адрес Cервера>:<Порт>/<RTSP-ссылка>"

где,
параметр Кодек может принимать значения h264_nvenc, hevc_nvenc.

Info
titleПримечание.

Для графических карт Intel нужно использовать кодеки h264_qsv и hevc_qsv, а для карт AMD − h264_amf и hevc_amf.

Максимальное разрешение экрана, c которым может работать NVENC h.264, составляет 4096x4096. Максимальное разрешение экрана, с которым может работать NVENC h.265, составляет до 8192x8192.

Например, при использовании NVENC h.264 три экрана с разрешением 1920x1080 не будут работать.