Тема: Трансляция рабочего стола компьютера на телевизор (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 внутри.