Debería poder crear y editar videos usando solo la web en el navegador. Debería ser posible proporcionar una interfaz de usuario similar a Screenflow que le permita crear un video de salida que combine múltiples videos, imágenes y audio en un video que se puede cargar a servicios como YouTube.
Este post es realmente solo una declaración de intenciones. Voy a comenzar el largo proceso de averiguar qué está y qué no está disponible en la plataforma y ver qué tan lejos podemos llegar hoy.
Me encanta FFMPEG.js, es una buena herramienta compilada con asm.js` y me permite crear aplicaciones web JS que pueden editar videos rápidamente. FFMPEG.js también trabaja con trabajadores web para que pueda codificar videos sin bloquear el hilo principal.
También me encanta Comlink. Comlink me permite interactuar fácilmente con los trabajadores web al exponer funciones y clases sin tener que lidiar con una compleja máquina de estados postMessage.
Recientemente pude combinar los dos juntos.
Sam Thorogood en Dev.to escribe,
Why did I write this post? Emscripten is a wonderful tool, but it has a long history (for asm.js), and isn’t perfect. I think it errs too much on the side of “magic”, and many posts rave about how it’s so easy to EMASM or use binding-fu, but this all comes at a cost, and can introduce huge amounts of inadvertent overhead—think copying huge memory buffers around because we’re trying to make them immutable or easily exposed.
FFMPEG.js es un proyecto increíble y me ayudó a crear uno de mis últimos proyectos: Device Frame. Básicamente construye ffmpeg (con un buen conjunto de valores predeterminados para mantener el tamaño pequeño y lo más pequeño posible). Si la compilación predeterminada no es compatible con los filtros y codificadores que necesita, tendrá que compilarlo usted mismo.
Esto es más una nota para mí en el futuro, pero esto es lo que hice para que funcione.