FFMPEG para interpolación de cuadros en Twixtor

FFMPEG para interpolación de cuadros en Twixtor

¿Puede algún experto en FFMPEG decirme si FFMPEG puede realizar alguna interpolación de cuadros sofisticada similar al complemento Twixtor en After Effects? Si es así, ¿cuáles serían algunas configuraciones sugeridas para probar? Estoy intentando crear imágenes HD en cámara ultra lenta a partir de una fuente de 60 fps. es decir, convertir a 120 fps e interpolar los fotogramas.

Respuesta1

FFmpeg no puede hacer esto.

Habíaalgunas discusionessobre implementar una característica de este tipo hace un par de años, pero hasta ahora no han lanzado nada similar a la interpolación de cuadros en el proyecto.

Por supuesto, podrías utilizar una herramienta gratuita similar comocámara lentaVideoque también está alojadoen GitHubSi quieres echar un vistazo a la fuente.

Respuesta2

La biblioteca libavfilter tiene un filtro llamadointerpolar, que está disponible desde noviembre de 2016. Según la descripción del instalador, su finalidad es:

"Convierta el vídeo a la velocidad de fotogramas especificada mediante interpolación de movimiento".

Uso de ejemplo:

ffmpeg -i input.60fps.hevc -filter "minterpolate='fps=120'" output.120fps.hevc

No sé qué configuración utilizar para lograr el mejor resultado posible. Según mi experiencia, la configuración predeterminada proporciona una calidad aceptable de la interpolación de movimiento en sí. Pero ocasionalmente se introducen algunos artefactos visuales muy notables. No pude encontrar una combinación de configuraciones que los eliminara por completo.

El filtro está muy lento en este momento. Puede generar alrededor de 2 fotogramas interpolados en movimiento de vídeo de 1080p por segundo en una CPU x86 moderna y de alta gama. He notado que la interpolación utiliza solo un subproceso de CPU, lo que probablemente sea la razón principal de una velocidad tan lenta.

Para acelerar el filtro en una CPU multinúcleo, puede ser recomendable dividir el vídeo de entrada en varios fragmentos de igual longitud y aplicar la interpolación de movimiento a todos ellos en paralelo.

Respuesta3

Meses después de la actualización:

ffmpeg -i input.mp4 -movflags +faststart -filter_complex "[0:v]minterpolate='fps=60:mi_mode=mci:me_mode=bidir:mc_mode=obmc:me=ds:vsbmc=1'" -salida ultrarrápida preestablecida .mp4

Publicación original:

Puedo lograr tales efectos (aunque no perfectos), con mezclarfiltrar

ffmpeg -i fuente.mp4 -filtro:v tblend -r 120 resultado.mp4

información relacionada