¿Cómo es posible que YouTube y Vimeo transcodifiquen tan rápido?

Por el momento que leo, YouTube y Vimeo confían en servidores alimentados por algunas bibliotecas modificadas, supongo que como libavcodec y herramientas como ffmpeg en una compilación personalizada seria.

Supongamos una transcodificación a h264, pero lo mismo podría aplicarse a otros códecs, creo que VP8 y VP9 funcionan de la misma manera.

Si subo un archivo de video de 1h en sus servidores, inmediatamente después de la carga tengo todas las versiones listas... prácticamente como 1 segundo después.

Pero, si los códecs no se escalan horizontalmente de una buena manera, a menos que desee cambiar el tiempo frente a la compresión (consulte h264), y estoy bastante seguro de que a estos sitios web les importa el tamaño de los videos...

Dado también que la velocidad de los subprocesos individuales está limitada por la frecuencia de la CPU y la frecuencia real no es de hasta 3,5 ghz en general, a menos que usen servidores overclockeados bajo nitrógeno líquido: D

¿Cómo se hace la transcodificación tan rápido?

Usan multiproceso con una combinación de configuraciones, comerciando con el tamaño del archivo inicial, compilaciones personalizadas y todo lo demás para tener los archivos listos para el usuario y luego continuar con una segunda transcodificación con un ajuste preestablecido lento que se intercambiará tan pronto como este archivo ¿estará listo? Comienzan a transcodificar tan pronto como reciben el flujo de archivos (también conocido como: ¿durante la carga?)

"prácticamente como 1 segundo después" -> esa no es mi experiencia. Es rápido pero no tan rápido para mí, y las versiones HD tardan un poco más. Consulte support.google.com/youtube/answer/71674?hl=en y greenlimepie.com/…

Respuestas (2)

Un método común es dividir y unir, donde el archivo se corta en pedazos y se envía a varios servidores para su transcodificación. De esa manera, puede transcodificar un archivo de cualquier longitud en un período de tiempo fijo.

Telestreams Episode Engine puede hacer esto, pero estoy seguro de que Google usa algo codificado a medida.

Gran artículo, @Mulvya. Todo Internet debería tener la editfunción de Stack Exchange , el texto allí necesita urgentemente una revisión :)

Podría imaginar que también usan transcodificación compatible con hardware. Una empresa como Google ciertamente tiene los recursos para hacer transcodificadores FPGA personalizados y luego la velocidad de transcodificación se vuelve increíble.

Esto también podría ser una opción, sí. Por ejemplo, supongo que los códecs v8 y v9 fueron diseñados para escalar de manera óptima con su hardware, pero con respecto al x264, creo que la mejor elección es cortar como un jefe, dar cada rebanada a un subproceso diferente y volver a unir las piezas al final. .
Un poco de información sobre las funciones internas de YouTube, aunque bastante anticuado: multimedia.cx/eggs/googles-youtube-uses-ffmpeg