¿Cómo configurar la posición inicial para los filtros ffmpeg?

¿Cómo configurar la posición inicial para los filtros ffmpeg?

¿Existe un método estándar para aplicar un filtro ffmpeg desde una posición inicial con nombre, o esto varía según los diferentes filtros?

Si aplico un desenfoque, por ejemplo, puedo desenfocar todo el clip fácilmente, pero si quisiera desenfocar a partir de 5 segundos, ¿cómo lo lograría (sin recortar y concatinar nuevamente)?

Respuesta1

El método más sencillo es utilizar un filtro que tengasoporte de línea de tiempo(la enableopción).

Vea la lista de filtros con ffmpeg -filtersy busque el Tque está al lado del nombre. Ejemplo:

Filters:
  T.. = Timeline support
  .S. = Slice threading
  ..C = Command support
  A = Audio input/output
  V = Video input/output
  N = Dynamic number and/or type of input/output
  | = Source or sink filter
[...]
 TSC avgblur           V->V       Apply Average Blur filter.
 T.. boxblur           V->V       Blur the input.
 T.C dblur             V->V       Apply Directional Blur filter.
 TSC gblur             V->V       Apply Gaussian Blur filter.
 T.. sab               V->V       Apply shape adaptive blur.
 T.. smartblur         V->V       Blur the input video without impacting the outlines.
 TS. unsharp           V->V       Sharpen or blur the input video.
 TSC yaepblur          V->V       Yet another edge preserving blur filter.

Entonces todos estos filtros de desenfoque lo admiten.

Comando de ejemplo para difuminar desde la marca de tiempo 5 hasta el final:

ffmpeg -i input.mp4 -vf "boxblur=enable='gt(t,5)'" -c:a copy output.mp4

Verlista de funciones adicionales.

Si un filtro no admite una línea de tiempo, se puede utilizar una solución alternativarecortaryajustesfiltros para seleccionar el tiempo del video a filtrar, luegocubriroconcatfiltros para colocarlo. Debería haber varios ejemplos en este sitio.

información relacionada