¿Es ffmpeg la solución para automatizar la creación de videos a partir de múltiples archivos?

Necesita ayuda para automatizar la unión de video y audio y podría necesitar alguna ayuda/dirección.

Digamos que tengo los siguientes activos: Video 1 Video 2 Video 3 Música 1

Y quiero crear algunas variaciones de los activos anteriores como:

Variación #1
Video 1 -> Video 3
<----Música 1----->

Variación #2
Video 3 -> Video 1
<----Música 1----->

Nota La música debe recortarse en función de la duración de los videos combinados.

  1. ¿Es posible asignar un formulario web a los activos enumerados anteriormente (ubicados en un servidor local) y hacer que el formulario web finalmente cree el orden del video y lo envíe al servidor local?

  2. Si es posible, ¿sería la opción correcta FFmpeg o Animoto API (u otra)?

  3. ¿Qué tipo de tiempo/recursos se necesitarían para construir algo como esto?

Respuestas (1)

Puede hacer esto ffmpegusando el filtro concat o el demuxer concat . Cuál usar depende de si sus entradas tienen o no los mismos parámetros. Si no lo hacen, es posible que deba realizar un filtrado adicional para que todo sea adecuado para concatenarse correctamente.

Ejemplo: filtro concat

Para entradas que varían en velocidad de cuadro, ancho y alto:

ffmpeg -i video0 -i video1 -i video2 -i music -filter_complex \
"[0:v]fps=25,scale=1280x720,setpts=PTS-STARTPTS[v0]; \
"[1:v]fps=25,scale=1280x720,setpts=PTS-STARTPTS[v1]; \
"[2:v]fps=25,scale=1280x720,setpts=PTS-STARTPTS[v2]; \
"[v0][v1][v2]concat=n=3:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -map 3:a -shortest output

Si emite mp4, considere agregar -movflags +faststartcomo una opción de salida si sus espectadores verán a través de una descarga progresiva.

Ejemplo: concat demultiplexor

Si todas sus entradas son similares, primero haga un archivo de lista llamado input.txt:

file "/path/to/video0"
file "/path/to/video1"
file "/path/to/video2"

Luego ejecuta ffmpeg:

ffmpeg -f concat -i input.txt -i music -shortest output

Agregue -codec copysi desea transmitir la copia en lugar de volver a codificar. Esto no es posible con el filtro concat porque el filtrado requiere volver a codificar.

Tus preguntas

  1. ¿Es posible asignar un formulario web a los activos enumerados anteriormente (ubicados en un servidor local) y hacer que el formulario web finalmente cree el orden del video y lo envíe al servidor local?

Sí. Siempre que su protocolo sea compatible con ffmpeg. Consulte ffmpeg -protocolspara obtener una lista compatible con su compilación.

  1. Si es posible, ¿sería la opción correcta FFmpeg o Animoto API (u otra)?

Es posible con ffmpeg, pero nunca he usado la API de Animoto, así que no puedo comentar al respecto.

  1. ¿Qué tipo de tiempo/recursos se necesitarían para construir algo como esto?

Eso no es realmente posible de responder. Proporcionó muy poca información y depende de la habilidad de quien lo esté construyendo.

Ver también