Указание проблемы
Я хочу передать свой рабочий стол на другой компьютер через Ethernet 1 Гбит / с со следующими требованиями:
- Разрешение: 1920 х 1080
- FPS: 60
- Входные данные: исходный 24-битный цвет (3Gbps)
- Максимальный битрейт на выходе: 800 Мбит / с
- Задержка: <50 мс (задержка сети составляет менее 1 мс)
- Процессор: используйте менее 20% Intel Core2 Quad Q9300
- Не зависит от конкретного аппаратного ускорения
Предположим, что я играю в игру поверх потока (а я нет), поэтому частота кадров и задержка являются наиболее важной проблемой.
Вопрос
Я ищу решение, в котором я могу сжимать необработанные видеоданные со скоростью от 10х до 20х в реальном времени. Меня не волнует битрейт.
Протестированное программное обеспечение
- RDP: использует менее 40 Мбит / с в высочайшем качестве, и нет возможности установить частоту кадров 60FPS.
- TightVNC: позволяет указать качество и алгоритм кодирования. При использовании
"raw tight"
качестве параметраencoding
с AVB 80 Мбит / с 60FPS достигалась на 4 ГГц Intel Core i7-6700K, но на младшей машине возникла некоторая серьезная задержка. При использованииraw
кодера задержка исчезла, но требуемая полоса пропускания превысила 3 Гбит / с, поэтому частота кадров в секунду была ограничена, а некоторые кадры были разделены. - GamingAnywhere: это программное обеспечение использует H264 для кодирования необработанных данных и отправки их по сети, но кодер не позволяет им достигать 60FPS (используемая пропускная способность <60 Мбит / с)
Протестированные кодеры
Проверено на вводе необработанных данных - один поток:
H264: работает с 1,33x (1x означает 60FPS)
ffmpeg -i raw.avi -vcodec libx264 -crf 0 -preset ultrafast -threads 1 out.mp4
MJPEG: работает с 0,33x
- PNG: PNG сложнее в вычислительном отношении, чем MJPEG, поэтому я не проверял его.