Leichter Codec für das Streaming von 1080p mit 60 FPS in Echtzeit

0

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"von encodingAVB 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 dem rawEncoder 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.
user41209
quelle
@ user41209 Ich frage mich, warum GPU-Codierung hier keine Option ist. H.264 ist nicht so rechenintensiv, wenn Sie keine hohen Komprimierungsraten wünschen.
Slhck

Antworten:

0

Die Antwort ist VC2, das speziell für Ethernet und Streaming von 1080p 60FPS-Videos entwickelt wurde. von der Codec-Seite auf der ffmpeg-Website

SMPTE VC-2 (früher BBC Dirac Pro). Dieser Codec war in erster Linie für den professionellen Rundfunk gedacht. Da er jedoch yuv420, yuv422 und yuv444 mit 8 (begrenzter Bereich oder voller Bereich), 10 oder 12 Bit unterstützt, eignet er sich für andere Aufgaben, die einen geringen Overhead und eine geringe Komprimierung erfordern (wie Bildschirmaufzeichnung) ).

Zielvideobitrate Normalerweise ist das etwa 1: 6 der unkomprimierten Videobitrate (z. B. für 1920 x 1080, 50 fps, yuv422p10, das sind etwa 400 Mbit / s). Höhere Werte (nahe der unkomprimierten Bitrate) aktivieren den verlustfreien Komprimierungsmodus.

user41209
quelle
Danke für das Feedback, user41209. Q & A-Sites wie die der StackExchange-Sites eignen sich am besten für nicht meinungsbezogene, semipermanente Antworten. Ihre Frage ist komplex genug und bietet genügend Potenzial, um sich über Optionen zu streiten, sodass es sich wahrscheinlich lohnt, sich auf einer Forum-Site anstelle einer Q & A-Site anzumelden.
Christopher Hostage
1
@ user41209 Ich habe versucht, Ihnen beim Posten einer Frage von guter Qualität zu helfen, die in unsere thematischen Richtlinien passt (nicht nur eine Einkaufsfrage) und auch keine subjektive Frage ist, die wahrscheinlich geschlossen wird. Nachdem Ihre Frage von einem anderen Benutzer bearbeitet wurde, um sie in den Geltungsbereich zu bringen, war ich derjenige, der sie glücklich wieder geöffnet hat.
Mokubai
@ user41209 Es kann schwierig sein, die Community-Regeln zu kennen, wenn Sie gerade erst anfangen. Bitte nehmen Sie keine negative Absicht von Seiten der Moderatoren an - sie versuchen, Fragen zum Thema und lösbar zu halten. Wir möchten, dass sich die Fragen auf das eigentliche Problem konzentrieren (dh das Streamen von einem PC auf einen anderen) anstatt auf die angenommene Lösung (dh, Sie geben mir einen kompakten Codec, um dies zu tun).
Slhck
Bitte hören Sie auf, Ihren Posts irrelevante Kommentare hinzuzufügen. Wenn Sie etwas zu besprechen haben, besuchen Sie bitte Meta Super User .
Slhck