Newsmeldung von slashCAM:
Das Komprimieren von Video in hocheffiziente Formate wie H.264 oder H.265 ist extrem rechenaufwändig - günstigerweise verfügen moderne Grafikkarten jedoch über spezielle,...
Hier geht es zur Newsmeldung auf den slashCAM Magazin-Seiten:
NVIDIA spendiert seinen GPUs heimlich noch mehr parallele Videoencodings
Antwort von Frank Glencairn:
Das ist ja schön, nur leider bin ich selten in der Situation 5 Videos gleichzeitig encoden zu müssen.
Antwort von MrMeeseeks:
Frank "Der Nabel der Welt" Glencairn.
Antwort von Frank Glencairn:
Jetzt mal ganz ehrlich - der einzige Weg sowas zu nutzen ist, z.B. 5 Instanzen von Handbrake oder ähnlichem gleichzeitig am laufen zu haben.
Abgesehen davon, daß die sich dann gegenseitig auf die Füße treten, welches Szenario bei dem man das sinnvoll nutzen kann schwebt dir denn vor?
Antwort von MK:
Oder gleich unlimitiert:
https://github.com/keylase/nvidia-patch/tree/master/win
;-)
Antwort von klusterdegenerierung:
"Frank Glencairn" hat geschrieben:
Das ist ja schön, nur leider bin ich selten in der Situation 5 Videos gleichzeitig encoden zu müssen.
Wenn Du erstmal so viele professionelle Aufträge wie Keksi gleichzeitig abarbeiten mußt, weißt Du den Benefit zu schätzen. Hüstel...
Antwort von TheBubble:
"Frank Glencairn" hat geschrieben:
welches Szenario bei dem man das sinnvoll nutzen kann schwebt dir denn vor?
Ein Stream, aber in unterschiedlichen Formaten und Bitraten, könnte das ausnutzen. Oder auch mehrere parallele Streams. Also ich habe bestimmt auch nichts dagegen, wenn alle De- und Encoder freigeschaltet werden.
Antwort von cantsin:
Nur mal so 'ne Idee - falls die Nvidia-GPUs jetzt 5 Streams parallel encodieren und das ganze ohne Performanceverlust bzw. mit derselben Geschwindigkeit wie beim Encodieren eines Einzelvideos geht, wäre es dann nicht möglich, einen einzigen Render-/Transcoding-Job (von Programmen wie Media Encoder, Handbrake etc.) in fünf Segmente einzuteilen, diese durch die GPU parallel encodieren zu lassen und die resultierenden 5 Streams anschließend zusammenfügen, so dass man effektiv fünfmal schneller rausrendert?
Antwort von prime:
Problem wird dann das verlustfreie zusammenstückeln dieser 5 einzelnen Streams. Ich weiß nicht wie gut das für H264/5 streams funktioniert.
Antwort von cantsin:
prime hat geschrieben:
Problem wird dann das verlustfreie zusammenstückeln dieser 5 einzelnen Streams. Ich weiß nicht wie gut das für H264/5 streams funktioniert.
Muss eigentlich gehen, ffmpeg kann das bereits:
ffmpeg -i 'concat:file_1.ts|file_2.ts' -c copy file_3.mp4
Antwort von Frank Glencairn:
cantsin hat geschrieben:
Nur mal so 'ne Idee - falls die Nvidia-GPUs jetzt 5 Streams parallel encodieren und das ganze ohne Performanceverlust bzw. mit derselben Geschwindigkeit wie beim Encodieren eines Einzelvideos geht, wäre es dann nicht möglich, einen einzigen Render-/Transcoding-Job (von Programmen wie Media Encoder, Handbrake etc.) in fünf Segmente einzuteilen, diese durch die GPU parallel encodieren zu lassen und die resultierenden 5 Streams anschließend zusammenfügen, so dass man effektiv fünfmal schneller rausrendert?
Das geht doch jetzt schon sowieso Ratz-Fatz mit 120 FPS rum. Ich schätze mal da verplemperst du mehr Zeit mit 5 x auseinanderfummeln, und 5 x zusammenkleben .
Antwort von cantsin:
"Frank Glencairn" hat geschrieben:
cantsin hat geschrieben:
Nur mal so 'ne Idee - falls die Nvidia-GPUs jetzt 5 Streams parallel encodieren und das ganze ohne Performanceverlust bzw. mit derselben Geschwindigkeit wie beim Encodieren eines Einzelvideos geht, wäre es dann nicht möglich, einen einzigen Render-/Transcoding-Job (von Programmen wie Media Encoder, Handbrake etc.) in fünf Segmente einzuteilen, diese durch die GPU parallel encodieren zu lassen und die resultierenden 5 Streams anschließend zusammenfügen, so dass man effektiv fünfmal schneller rausrendert?
Das geht doch jetzt schon sowieso Ratz-Fatz mit 120 FPS rum. Ich schätze mal da verplemperst du mehr Zeit mit 5 x auseinanderfummeln, und 5 x zusammenkleben .
ffmpeg macht das Zusammenkleben in weniger als einer Sekunde, weil da praktisch nichts berechnet werden muss. Also, wenn Du Deine 120fps dann auf 600fps steigern kannst - nicht verkehrt. Vor allem in Situationen, wo kürzester Turnaround angesagt ist (wie z.B., selbsterlebtes Praxisbeispiel: Interview auf einer Wahlkampfveranstaltung, das nicht gestreamt wird, sondern mit zwei Kameras klassisch aufgenommen, direkt danach vor Ort schnell geschnitten und dann sofort auf social media gesetzt).
Antwort von Otako77:
Ersteinmal vielen Dank für den Beitrag.
Wie bereits ein User oben geschrieben hat, gibt es einen Nvidia Patch, um die Grenzen aufzuheben. Somit sind auch mit normalen Grafikkarten mehr als 5 Streams möglich.
Zu den Vermutungen der User hier, wozu man 5 Streams oder sogar 20 oder möglicherweise auch 100 braucht ist ganz einfach: Streaming-Server. Ich selbst betreibe einen jellyfin Server mit der GTX 1650. Die 1650 verbraucht im Idle extrem wenig Strom und unter Vollast nur 75 Watt (ohne externe Stromversorgung). Die Graka schafft es ohne Mühe etwa 5 4K Streams auf Full-HD 10 Mbit herunter zu berechnen. Auf meinem Streaming-Server sind manchmal bis zu 8-9 Leute gleichzeitig am streamen und die Graka muss schon arbeiten. Gut, dass der Nvidia-Patch jetzt auch die 5 Streams-Grenze aufgehoben hat. Nvidia sieht das nicht gerne, weil es für solche zwecke spezielle Server-Karten (Graka ohne Anschluss) gibt. Siehe Nvidia-Tesla Karten.
Antwort von Frank Glencairn:
cantsin hat geschrieben:
ffmpeg macht das Zusammenkleben in weniger als einer Sekunde, weil da praktisch nichts berechnet werden muss. Also, wenn Du Deine 120fps dann auf 600fps steigern kannst - nicht verkehrt. Vor allem in Situationen, wo kürzester Turnaround angesagt ist (wie z.B., selbsterlebtes Praxisbeispiel: Interview auf einer Wahlkampfveranstaltung, das nicht gestreamt wird, sondern mit zwei Kameras klassisch aufgenommen, direkt danach vor Ort schnell geschnitten und dann sofort auf social media gesetzt).
Ich weiß ned.
Zunächst mal mußt du dein geschnittenes Material ja erst mal in fünf Clips unterteilen und die dann einzeln in raus rechnen.
Normal wärst du jetzt schon fertig.
In deinem Workflow mußt du dann aber erst mal 5 Instanzen des Encoders starten und die Clips einzeln füttern und nochmal durchrechnen.
Dann die 5 Clips mit ffmpeg wieder zusammen kleben.
Ich kann mir ehrlich gesagt nicht vorstellen, daß so ein Workflow irgend ne Zeitersparnis bringt - dafür treibt er allerdings die Anfälligkeit für mögliche Fehler nach oben.