1

Тема: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Для трансляции экрана компьютера нам понадобятся:

  • 1) ffmpeg

  • 2) Setup Screen Capturer Recorder (для возможности захватывать звук)

  • 3) Профиль транскодирования "Фильмы (основной) - FFMPEG" (скачивать отдельно не нужно, загружается вместе с прикреплённым подкастом)

Сделал передачу трансляции через реализацию подкаста, где будет единственная ссылка "PCScreen", которая начнёт транслировать изображение экрана компьютера на телевизор.

Что нужно сделать:

  • 1) Из архива ffmpeg-2.8.4-win32-static.7z распаковать файл ffmpeg.exe и поместить в папку "Transcoders", где установлен HMS ("C:\Program Files (x86)\Home Media Server\Transcoders\").

  • 2) Запустить установку "Setup Screen Capturer Recorder". Это установит в систему виртуальное устройство "virtual-audio-capturer" совместимое с directshow, нужное для захвата звука с помощью ffmpeg. Запускать саму программу и устанавливать java для этого не обязательно. Просто установить и всё.

  • 3) Загрузить прикреплённый подкаст "PCScreen" в HMS.

Всё. Можно пробовать на телевизоре зайти в раздел подкастов на HMS и запустить на воспроизведение ссылку PCScreen.

Метод и подкаст тестировался пока только на моём телевизоре и пока не знаю, будет ли так всё работать на других устройствах.
Возможно нужно переделать параметры транскодирования.

Недостатки:

  • 1) Самый главный - т.к. транскодирование в HMS буфферизируется, то отображение на телевизоре идёт с задержкой. Задержка порядка нескольких секунд.
    2) Курсор мыши на компьютере при работе вещании экрана моргает
    3) Курсор мыши на экране телевизора всегда в значке "занят"
    4) Качество отличается и не идеальное (но тут, возможно, нужно поиграть с параметрами в скрипте получения ссылки на поток Alt+4)

Как это работает:
Вообще, захват экрана и трансляция в поток идёт силами ffmpeg.exe. Для этого в параметрах указывается формат -f dshow, где можно указать совместимые с directshow устройства.

Для проверки работоспособности ffmpeg, можно выполнить следующую команду, там же где и расположен ffmpeg.exe:

ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" -vcodec mpeg2video -qscale:v 1 -pix_fmt yuv420p -threads 4 -acodec ac3 -ab 448000 -ar 48000 -ac 2 output.mp4

Или запустить рядом с ffmpeg прикреплённый bat файл capture.bat. По идее, после запуска должен начать запись экрана в файл output.mp4.

Если нам звук не нужен, то можно вообще обойтись без установки "Setup Screen Capturer Recorder" и указать такую команду:

ffmpeg -f dshow -i video="screen-capture-recorder" output.mp4

Или даже такую:

ffmpeg -f gdigrab -framerate 30 -i desktop output.mp4

Информация о screen capture с помощью ffmpeg тут и тут.

У кого не пошло или есть вопросы, сообщайте, задавайте.


В выложенном подкасте две ссылки: одна AudioAndVideo, другая VideoOnly.
AudioAndVideo - передаёт видео и звук. Необходима установленная "Setup Screen Capturer Recorder".
VideoOnly - передаёт только видео. Никаких дополнительных установленных программ ("Setup Screen Capturer Recorder") не нужно.

Подкаст AudioFromPC - это подкаст "Звук с компьютера" для раздела "Музыка" с единственной ссылкой Audio внутри.

Прикреплённые файлы сообщения

AudioFromPC.zip 3.06 kb, скачивалось 861 раз, начиная с 2016.03.16

capture.bat.zip 330 b, скачивалось 982 раза, начиная с 2016.01.11

PCScreen.zip 1.95 kb, скачивалось 1519 раз, начиная с 2016.01.12

Sony Bravia KDL-32CX523
Спасибо сказали: tim128, maslonax2

2

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

А почему бы просто не соединить компьютер с телевизором через hmdi и не надо ничего настраивать, я лично так смотрю

3

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Потому что у меня, например, чтобы так сделать нужен 7-8 метровый кабель HDMI... Очень удобно, правда?

4 (2016.01.14 12:56:30 отредактировано polosat1y)

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

jentosss пишет:

Потому что у меня, например, чтобы так сделать нужен 7-8 метровый кабель HDMI... Очень удобно, правда?

Кому как, это дело каждого, можно аккуратно провести...

5

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Что-то у меня не получилось...

+ открыть спойлер
C:\Program Files (x86)\Home Media Server\Transcoders>ffmpeg -f dshow -i video="s
creen-capture-recorder" -vcodec mpeg2video -qscale:v 1 -pix_fmt yuv420p -threads
 4 -acodec ac3 -ab 448000 -ar 48000 -ac 2 output.mp4
ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-l
ibilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --en
able-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --ena
ble-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
 --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enabl
e-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --ena
ble-decklink --enable-zlib
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[dshow @ 02c8e0c0] Could not enumerate video devices (or none found).
video=screen-capture-recorder: Input/output error
Sony Bravia KDL-32W705C, Sony Bravia KDL-55W808C

6

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

jentosss, polosat1y,
Если есть возможность подключить комп по HMDI, то это однозначно удобней. И вполне себе имеет право на жизнь.
Более того, можно взять это и подключить, если кому-то хочется.
Для эстетов - тоже есть.
Ставишь на него какой-нибудь Медиа-центр с DLNA поддержкой, покупаешь к нему пульт (или программируемый на несколько устройств). И никакой HMS не нужен.
Для любителей коллекционировать - NAS.
Вариантов много. Все хороши.

Только транслировать экран с ноута на телек по HDMI не удобно (если операционка и телек не поддерживает что-то типа Screen Mirroring).

Тут я озадачился именно передачей экрана именно по сети (DLNA). Но вот задержка не нравится.

Но пока идея сырая. Только попробовал.
Есть у меня мысли ещё, хочу попробовать ещё поэкспериментировать.

А вообще, тема эта была начата отсюда.

Sony Bravia KDL-32CX523

7

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

tim128 пишет:

Что-то у меня не получилось...

Что выводит команда

ffmpeg -list_devices true -f dshow -i dummy

?

"Setup Screen Capturer Recorder" устанавливали?

Sony Bravia KDL-32CX523

8

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Screen Capturer Recorder не устанавливал - мне без звука достаточно.
ffmpeg -list_devices true -f dshow -i dummy:

+ открыть спойлер

C:\Program Files (x86)\Home Media Server\Transcoders>ffmpeg -list_devices true -
f dshow -i dummy
ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-l
ibilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --en
able-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --ena
ble-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enabl
e-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --ena
ble-decklink --enable-zlib
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[dshow @ 0459e040] DirectShow video devices (some may be both video and audio de
vices)
[dshow @ 0459e040] Could not enumerate video devices (or none found).
[dshow @ 0459e040] DirectShow audio devices
[dshow @ 0459e040] Could not enumerate audio only devices (or none found).
dummy: Immediate exit requested

Sony Bravia KDL-32W705C, Sony Bravia KDL-55W808C

9

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Видимо, "screen-capture-recorder" тоже устанавливается только с "Setup Screen Capturer Recorder".
Если вам без звука и без установки Setup Screen Capturer Recorder, то тогда попробуйте использовать команду:

ffmpeg -f gdigrab -framerate 30 -i desktop output.mp4

Если пойдёт создание файла, то значит нужно заменить параметры в скрипте получения ссылки в подкасте.

Короче, в первом сообщении я обновил подкаст и сделал там две ссылки. Одна со звуком, которой нужен "Setup Screen Capturer Recorder", другая без - там используются другие параметры (gdigrab).

Sony Bravia KDL-32CX523

10

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Ок, заработало!

Sony Bravia KDL-32W705C, Sony Bravia KDL-55W808C

11

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Здравствуйте ,попробовал запустить этот подкаст но не чего не получилось.Мой телек (LG) пишет не допустимый файл.

12

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Извините а нельзя сделать тоже самое для профиля Фильм(Основной), а то мой телек походу не видит этот формат "Фильмы (основной) - FFMPEG".

13

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

Извините а нельзя сделать тоже самое для профиля Фильм(Основной), а то мой телек походу не видит этот формат "Фильмы (основной) - FFMPEG".

"Фильм (Основной)" использует транскодер hmsmpeg.exe, а он, в свою очередь, хоть и использует ffmpeg-1.dll, но не все параметры понимает. Версия ffmpeg собрана с поддержкой одних дополнений и без поддержки некоторых других.

Что у вас показывает тестовое транскодирование?

Sony Bravia KDL-32CX523

14 (2016.01.13 11:44:07 отредактировано serg5865702)

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Появляется окно как при транскодировании в низу написано Unknown input format:dshow.Для продолжения нажмите любую кнопку.Попытался перетянуть скриншот не получается.

15

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

Появляется окно как при транскодировании в низу написано Unknown input format:dshow.Для продолжения нажмите любую кнопку.Попытался перетянуть скриншот не получается.

Такая ошибка похожа на то, что у вас выставлен у подкаста профиль "Фильм (Основной)", а с ним данный подкаст работать точно не будет.
Работать будет только с профилем "Фильмы (основной) - FFMPEG".

Если с "Фильмы (основной) - FFMPEG" у вас тестовое идёт, но телек показывает "не допустимый файл", то нужно смотреть настройки устройства и выставить там правильный для него формат и кодеки, который ваш телевизор поддерживает.

+ Вот тут

https://hms.lostcut.net/img/help/DeviceSettings.png

Sony Bravia KDL-32CX523

16 (2016.01.13 13:14:16 отредактировано serg5865702)

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

А в ручную выставить данные можно?

17

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

А в ручную выставить данные можно?

Канеш.
В скрипте получения ссылки Alt+4, можно вообще заменить строку:

    sParams = '-f dshow ' + Trim(ReplaceStr(sParams, '"<INPUT FILE>"', 'video="screen-capture-recorder":audio="virtual-audio-capturer"'));

на что-то типа:

    sParams = '-f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" -vcodec wmv2 -acodec wmav2 -ab 448000 -ar 48000';

или

    sParams = '-f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" -vcodec mpeg4 -acodec mp3';

Не знаю, какие там форматы ваш телек поддерживает.

Sony Bravia KDL-32CX523

18

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Извините  а на пальцах объяснить нельзя , для особо одарённых а.

19

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

Извините  а на пальцах объяснить нельзя , для особо одарённых а.

Ок. Показываю на пальцах:
Встаём на подкаст, нажимаем Alt+4, заменяем строку:

    sParams = '-f dshow ' + Trim(ReplaceStr(sParams, '"<INPUT FILE>"', 'video="screen-capture-recorder":audio="virtual-audio-capturer"'));

на

    sParams = '-f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" -vcodec mpeg4 -acodec mp3';

Так понятней?

Sony Bravia KDL-32CX523

20

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

WendyH пишет:

jentosss, polosat1y,
Если есть возможность подключить комп по HMDI, то это однозначно удобней. И вполне себе имеет право на жизнь.

Конечно имеет, я уже более 5 лет пользуюсь, удобно смотреть фильмы онлайн и не онлайн, iptv, hms

21 (2016.01.19 19:17:58 отредактировано serg5865702)

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Добрый вечер решил попробовать добить эту программу , ну что-то не чего не получается.Заменил строчку как показано выше , стало выскакивать табличка (в тестовом транскодировании) не удаётся найти "С" program Files(x86) ну и так далее, помогите если возможно.Понимаю что с HMDI проще, но у меня  телик далеко.Пойдёт и без звука.

22

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

Добрый вечер решил попробовать добить эту программу , ну что-то не чего не получается.Заменил строчку как показано выше , стало выскакивать табличка (в тестовом транскодировании) не удаётся найти "С" program Files(x86) ну и так далее, помогите если возможно.Понимаю что с HMDI проще, но у меня  телик далеко.Пойдёт и без звука.

Что же, никак нельзя соскриншотить? Что же там за "и так далее", вот ведь интересно. А пока ответ такой: хз.

Sony Bravia KDL-32CX523

23

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702, просто прикрепите картинку как файл.
Справа внизу темы нажмите "Ответить" и под сообщением, где слово "Вложения" нажмите "Выберите файл" и выберите файл картинки, нажмите "Добавить файл". Напишите сообщение и потом "Отправить".

Sony Bravia KDL-32CX523

24

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Вот такая таблица.

Прикреплённые файлы сообщения

2016-01-19 22-18-24 Скриншот экрана.png 715.17 kb, скачивалось 393 раза, начиная с 2016.01.19

25

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Теперь всё ясно.
Посмотрите в первом сообщении темы. Там в первом пункте того что там понадобится есть ссылка на архив ffmpeg.
А в первом пункте того, что нужно сделать, сказано: распаковать файл ffmpeg.exe из этого архива в папку "Transcoders".

У вас профиль транскодирования не может запустить этот файл, потому как не может его там найти.

Sony Bravia KDL-32CX523

26

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Ну вообще то распакован,если я правильно распаковал.

Прикреплённые файлы сообщения

2016-01-20 08-14-59 Transcoders.png 113.15 kb, скачивалось 395 раз, начиная с 2016.01.20

27

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

Ну вообще то распакован,если я правильно распаковал.

Не правильно. У вас в папке "Trtanscoders" есть папка "ffmpeg-2.8.4-win32-static", а файла ffmpeg.exe, который нужен - нету.

Если честно, у меня нет слов. У вас на первом скриншоте по-русски написана ошибка, где и какой именно файл не найден.
А в первом сообщении тоже конкретно написано какой именно файл и куда положить.

Вот вы сами, имея эти все данные - не видите в чём причина и что нужно сделать? Если нет, то вот мне, честное слово, даже и объяснять не хочется. Ибо это будет повторением того, что уже и так сказано.

Sony Bravia KDL-32CX523

28

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

Честно я не могу понять.

Прикреплённые файлы сообщения

2016-01-20 09-23-21 ffmpeg-2.8.4-win32-static (5).7z - WinRAR.png 104.66 kb, скачивалось 413 раз, начиная с 2016.01.20

29

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

serg5865702 пишет:

Честно я не могу понять.

Ничем не могу помочь, если не понятны слова "Распаковать файл ffmpeg.exe в папку Transcoders". И если ошибка об отсутствии файла ffmpeg.exe в папке "Transcoders" не наводит о мысли, что он там должен быть.

Sony Bravia KDL-32CX523

30 (2016.01.20 09:42:39 отредактировано serg5865702)

Re: Трансляция рабочего стола компьютера на телевизор (12.01.2016)

А файла ffmpeg.exe, где  я же показал распакованную папку  "ffmpeg-2.8.4-win32-static".

Прикреплённые файлы сообщения

2016-01-20 09-23-21 ffmpeg-2.8.4-win32-static (5).7z - WinRAR.png 104.66 kb, скачивалось 416 раз, начиная с 2016.01.20