¿Hacer una película de timelapse corto de una película larga y aburrida?


2

Tengo un archivo .mp4 para convertirlo en una película timelapse.

¿Cómo puedo codificar cada nfotograma de la película de origen en un nuevo archivo de película, preferiblemente usando ffmpeg? Las soluciones que extraen un montón de imágenes fijas del original y luego vuelven a codificar no están bien, usarán demasiado espacio en el disco duro (pero las soluciones que solo usan imágenes temporales una por una y las canalizan están bien)

Encontré el siguiente filtro de video:

ffmpeg -i in.mp4 -vf select='not(mod(n\,25))' out.mp4

Pero parece necesitar ajustes, mi video de salida ahora tiene la misma duración pero con una velocidad de fotogramas muy lenta.


1
Si ni Slhck de Lordneckbeard lo hace primero, probablemente escribiré una respuesta más tarde hoy, pero mientras tanto, debería echar un vistazo a los filtros select y setpts , y las notas sobre las expresiones .
evilsoup


deberías escribir eso como respuesta;)
evilsoup

OK, lo haré ...
wim

Respuestas:


4

Con un filtro gráfico complejo, puede acelerar el video y el audio al mismo tiempo:

Factor de 2:

ffmpeg -i input.mkv -filter_complex '[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]' -map '[v]' -map '[a]' output.mkv

Factor de 4:

Con un filtro gráfico complejo, puede acelerar el video y el audio al mismo tiempo:

ffmpeg -i input.mkv -filter_complex '[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]' -map '[v]' -map '[a]' output.mkv

etc.


También puede usar algo como setpts=(1/30)*PTS(para acelerar por un factor de 30) si no quiere molestarse en calcular la fracción decimal usted mismo.
evilsoup

¡Oh gracias! ¿sabes cómo combinar el atempo en el caso general? creo que solo acepta valores en el rango 0.5-2.0, pero puede encadenarlos en serie como se muestra en mi segundo ejemplo ...
wim

no, desafortunadamente no sé cómo hacer eso. La documentación parece implicar que el asetptsfiltro debería ser utilizable de la misma manera que setpts, pero no puedo hacer que funcione ...
evilsoup

Bueno, supongo que si el factor es (1/30) para el video PTS, entonces debes encadenar atempo 5 veces con un valor de la quinta raíz de 30 :)
wim
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.