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-ссылка>

      Например:

      No Format
      listenrtsp://127.0.0.1:1554/live1.sdp

      где
      127.0.0.1 – IP-адрес Сервера;
      1554 – RTSP-порт, который должен быть не занят. Для проверки доступности порта можно использовать команду из пункта 1а;
      live1.sdp– RTSP-ссылка.


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

      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>Размер видеоизображения
    .
    • (пиксели)
      -muxdelay <int>Максимальная задержка демультиплексора-декодирования (секунды)
      -offset_x <int>Отступ​ по оси Х области захвата (пиксели). Значение по умолчанию 0
    .
    • -offset_y <int>Отступ​ по оси Y области захвата (пиксели). Значение по умолчанию 0
    .
    • После выполнения команды будет запущена трансляция экрана удаленного Клиента

    .

...

    • .

      Info
      titleПримечание.
      • Отступы​ по осям области захвата производятся от верхнего левого угла основного монитора.
      • Если дополнительный монитор расположен слева от основного монитора, необходимо использовать отрицательное значение offset_x, чтобы переместить область захвата на дополнительный монитор.
      • Если дополнительный монитор расположен над основным монитором, необходимо использовать отрицательное значение offset_y, чтобы переместить область захвата на дополнительный монитор.


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

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

  • При наличии на удаленном Клиенте нескольких экранов, для того чтобы транслировать их все, необходимо использовать команду вида:

    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-ссылка>"

    Дополнительно можно указать параметр -pix_fmt для выбора цветовой схемы, т.к некоторые видеокодеки могут работать некорректно:

    Code Block
    -pix_fmt yuv420p

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

    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 NVIDIA в FFmpeg.
    Для этого нужно выполнить команду следующего вида:

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

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

    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 пикселей не будут работать.