Я пытаюсь создать решение для потоковой передачи визуального содержимого приложения Windows (созданного в Unity 2017) клиентам браузера. Эти приложения обеспечивают высококачественный контент, который необходимо передавать в формате 1:1 с высоким качеством с минимально возможной задержкой. По сути, это очень похожий случай использования на потоковую игру, потому что помимо потоковой передачи установлен двунаправленный канал связи между клиентом и потоковым приложением, так что пользователь может взаимодействовать с приложением, запущенным на сервере.

Видео напрямую захватывается изнутри Unity и передается в виде необработанного видео в процесс FFMPEG, созданный ранее. FFMPEG теперь конвертирует данные из Unity в подходящий поток. Кроме того, я хотел бы использовать SDK NVIDIA Video Codec для ускорения процесса.

Является ли H.264/H.265 подходящим форматом для этого варианта использования? Если да, какой сервер можно использовать для передачи видеопотока, а какой - на стороне клиента (например, BroadwayJS https://github.com/mbebenita/Broadway)? Если нет, что бы вы предложили?

Примечание: я уже пытался реализовать решение с помощью JSMPEG (поэтому использовал mpeg-1/mpeg-ts, ffmpeg и пользовательский сервер), но у этой реализации есть несколько проблем, таких как высокая пропускная способность и высокая загрузка ЦП. Я надеюсь, что используя H.264/H.265 в сочетании с SDK NVIDIA Video Codec, я смогу, по крайней мере, снизить использование оборудования и пропускной способности.

На стороне клиента нельзя использовать Flash или Silverlight.

0