Für den Teil, den ich lese, verlassen sich YouTube und Vimeo auf Server, die von einigen modifizierten Bibliotheken betrieben werden, wie ich denke, wie libavcodec und Tools wie ffmpeg in einem ernsthaften benutzerdefinierten Build.
Nehmen wir an, eine Transcodierung nach h264, aber das Gleiche könnte auf andere Codecs angewendet werden, ich denke, VP8 und VP9 funktionieren auf die gleiche Weise.
Wenn ich eine 1-stündige Videodatei auf ihre Server hochlade, habe ich direkt nach dem Hochladen alle Versionen bereit ... praktisch 1 Sekunde danach.
Aber wenn Codecs horizontal nicht gut skalieren, es sei denn, Sie möchten Zeit gegen Komprimierung tauschen (siehe h264), und ich bin mir ziemlich sicher, dass sich diese Websites um die Größe der Videos kümmern.
Angesichts der Tatsache, dass die Geschwindigkeit einzelner Threads durch die CPU-Frequenz begrenzt ist und die tatsächliche Frequenz im Allgemeinen nicht bis zu 3,5 GHz beträgt, es sei denn, sie verwenden übertaktete Server unter flüssigem Stickstoff: D
Wie geht die Transkodierung so schnell?
Sie verwenden immer noch Multithread mit einer Mischung aus Einstellungen, Handel mit anfänglicher Dateigröße, benutzerdefinierten Builds und allem anderen, um nur die Dateien für den Benutzer sofort bereit zu haben, und fahren dann mit einer zweiten Transcodierung mit einer langsamen Voreinstellung fort, die ausgetauscht wird, sobald diese Datei wird bereit sein? Sie beginnen mit der Transcodierung, sobald sie den Dateistream erhalten (auch bekannt als: während des Uploads?)
Eine gängige Methode ist Split-and-Stitch, bei der die Datei in Stücke geschnitten und zur Transcodierung an mehrere Server gesendet wird. Auf diese Weise können Sie eine Datei beliebiger Länge in einer festgelegten Zeit transcodieren.
Telestreams Episode Engine kann dies tun, aber ich bin sicher, dass Google etwas benutzerdefiniertes Codieren verwendet.
edit
Funktion von Stack Exchange haben, der Text dort drüben muss dringend überarbeitet werden :)Ich könnte mir vorstellen, dass sie auch hardwareunterstütztes Transcoding verwenden. Ein Unternehmen wie Google hat sicherlich die Ressourcen, um benutzerdefinierte FPGA-Transcoder herzustellen, und dann wird die Transcodierungsgeschwindigkeit blitzschnell.
Gyan