Problem angeben
Ich möchte meinen Desktop über 1 Gbit / s-Ethernet mit folgenden Anforderungen auf einen anderen Computer streamen:
- Auflösung: 1920 x 1080
- FPS: 60
- Eingabedaten: unverarbeitete 24-Bit-Echtfarbe (3Gbps)
- Max. Ausgabebitrate: 800 Mbit / s
- Latenz: <50 ms (Netzwerklatenz beträgt weniger als 1 ms)
- CPU: Verwenden Sie weniger als 20% des Intel Core2 Quad Q9300
- Hängt nicht von der spezifischen Hardware-Beschleunigung ab
Angenommen, ich spiele ein Spiel über den Stream (was ich nicht bin), so dass die Framerate und Latenz das kritischste Problem ist.
Frage
Ich suche nach einer Lösung, bei der ich die Rohvideodaten mit 10- bis 20-facher Geschwindigkeit in Echtzeit komprimieren kann. Die Bitrate interessiert mich nicht.
Getestete Software
- RDP : Verwendet weniger als 40 Mbit / s in höchster Qualität und es gibt keine Option, die Bildrate auf 60 FPS einzustellen.
- TightVNC : Ermöglicht die Angabe von Qualität und Kodierungsalgorithmus. Bei Verwendung
"raw tight"
vonencoding
AVB 80Mbps 60FPS als Parameter wurde auf einem 4GHz Intel Core i7-6700K eine gewisse Verzögerung erreicht, auf einem Computer der unteren Ebene trat jedoch eine gewisse Verzögerung auf. Mit demraw
Encoder ist die Verzögerung verschwunden, aber die erforderliche Bandbreite erreicht mehr als 3 Gbit / s, sodass die Geschwindigkeit begrenzt ist und einige Frames beschädigt werden - GamingAnywhere : Diese Software verwendet H264, um Rohdaten zu codieren und über das Netzwerk zu senden. Der Encoder verhindert jedoch, dass 60 FPS erreicht werden (die verwendete Bandbreite beträgt <60 Mbit / s).
Getestete Encoder
Getestet auf Rohdateneingabe - Einzelthread:
H264: Läuft mit 1,33x (1x Mittelwert 60FPS)
ffmpeg -i raw.avi -vcodec libx264 -crf 0 -preset ultrafast -threads 1 out.mp4
MJPEG: Läuft mit 0,33x
- PNG: PNG ist rechenintensiver als MJPEG, deshalb habe ich es nicht getestet.