¿Cómo desvanecer el audio Y el video en un archivo * .mp4? Si pruebo el código de esta respuesta :
ffmpeg -i "c:/input.mp4" -filter:v 'fade=in:0:30,fade=out:227:30' -c:v libx264 -crf 22 -preset veryfast -c:a copy "c:/testsong.mp4"
Yo obtengo:
[AVFilterGraph @ 000001e0f41affc0] No such filter: fade=in:0:30,fade=out:227:30'
Error opening filters!
Salida completa:
125 kb/s (predeterminado) Metadatos: tiempo_creación: 2016-08-24T16:42:38.000000Z nombre_controlador: archivo multimedia ISO producido por xyz... Asignación de flujo: flujo #0:0 -> #0:0 (h264 (nativo ) -> h264 (libx264)) Transmisión #0:1 -> #0:1 (copiar) Presione [q] para detener, [?] para obtener ayuda [AVFilterGraph @ 0000000002d64580] No hay tal filtro: 'fade=in:0: 30,fade=out:227:30' ¡Error al reiniciar los filtros! No se pudo inyectar el marco en la red de filtro: Argumento no válido ¡Error al reiniciar los filtros! No se pudo inyectar el marco en la red de filtro: Argumento no válido ¡Error al reiniciar los filtros! No se pudo inyectar el marco en la red de filtro: Argumento no válido
¿Qué pasa aquí? ¡Gracias por adelantado!
En primer lugar, el comando que proporcionó no logrará el efecto deseado: el fade
filtro solo se aplica a una transmisión de video , además de que lo aplica específicamente a su transmisión de video de entrada con -filter:v
.
Para desvanecer tanto el audio como el video, necesitará ambos afade
y fade
filtros .
P.ej
ffmpeg -i input.mp4 -filter:v "fade=in:0:30, fade=out:1770:30" -filter:a "afade=in:0:44100, afade=out:2601900:44100" -c:v libx264 -c:a aac output.mp4
Este comando hace que aparezcan y desaparezcan los primeros y últimos 30 cuadros de video y 44100 muestras de audio, en un video de 1800 cuadros de longitud y 2646000 muestras de longitud (que, si su velocidad de fotogramas es de 30 fps y la frecuencia de muestreo de 44100 Hz, será la primera y la última). segundo de su clip de 60 segundos de duración).
Trabajar con cuadros y muestras puede ser muy poco práctico, por lo que para trabajar con el inicio y la duración en segundos, use los parámetros st
(inicio) yd
(duración) , así:
ffmpeg -i input.mp4 -filter:v "fade=in:st=0:d=1, fade=out:st=59:d=1" -filter:a "afade=in:st=0:d=1, afade=out:st=59:d=1" -c:v libx264 -c:a aac output.mp4
(aparece y desaparece el primer y el último segundo de un clip de los años 60)
Consulte la documentación de los filtros de atenuación y desvanecimiento para obtener más detalles sobre los parámetros.
Alternativamente, también puede usar un gráfico de filtro complejo como lo sugiere Manul Hüttinger, que puede ser útil si necesita aplicar más filtros a su clip:
ffmpeg -i input.mp4 -filter_complex \
"fade=in:st=0:d=1, fade=out:st=59:d=1; \
afade=in:st=0:d=1, afade=out:st=59:d=1" \
-c:v libx264 -c:a aac output.mp4
No estoy seguro de dónde viene tu error, pero deberías intentar lo siguiente:
'
) en Windows, debe usar comillas dobles ( "
) . Mirando la salida de la consola, este podría ser el origen de su error:
[AVFilterGraph @ 0000000002d64580] No such filter: fade=in:0:30,fade=out:227:30'
Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #0:0 Conversion failed
intentar-filter_complex "fade=t=in:st=0:d=30,fade=t=out:st=227:d=30"
Michael Liebmann
slhck