Estoy intentando concat varias webm
archivos, añadiendo brecha de blackframe entre archivos.
La mayoría de los archivos se procesaron bien, pero luego me encontré con un problema. En algún momento en la salida:
La secuencia de entrada # 1: 1 marco cambió de tamaño: 640x480 fmt: yuv420p a tamaño: 480x360 fmt: yuv420p fotograma = 8173 fps = 109 q = 0,0 tamaño = 29580kB tiempo = 00: 15: 44.88 bitrate = 256.5kbits / s velocidad = 12.6x
cuadro = 8173 fps = 108 q = 0.0 tamaño = 29580kB tiempo = 00: 15: 44.88 bitrate = 256.5kbits / s velocidad = 12.5x
cuadro = 8173 fps = 107 q = 0.0 tamaño = 29580kB tiempo = 00: 15: 44.88 bitrate = 256.5kbits / s velocidad = 12.4x
..y se repite durante horas hasta que mate ffmpeg. Registro completo https://pastebin.com/e8URCSec .
Comando es
/home/vagrant/bin/ffmpeg -y -i file1.webm
-i file2.webm -f lavfi
-i "color=c=black:s=640x480:r=25"
-f lavfi -i anullsrc
-filter_complex "[0:v]scale=640:480[scaled0]; [1:v]scale=640:480[scaled1];
[2]trim=duration=68.579[g0]; [3]atrim=duration=68.579[ga0];
[scaled0][0:a][g0][ga0][scaled1][1:a]concat=n=3:v=1:a=1"
-cpu-used -5 -deadline realtime -threads 4
output.webm 2> output.log
Si veo mensaje " marco cambiado de tamaño ", pero por eso he añadido scale
filtrar. Sin ese filtro hubo errores y ffmpeg se estrelló.
La versión Ffmpeg es estándar desde el repositorio de Ubuntu 16.04.
Por favor agregue un comentario si debo proporcionar archivos de entrada.
select='not(eq(n,N))'
Antes de la escala para el segundo video. N es el cuadro #, comenzando desde cero. Si es difícil de identificar, invierta el orden de los dos videos en el concat y vea dónde se atasca.Respuestas:
Bueno, creo que encontré una solución. Estoy bastante seguro de que el problema es que los archivos de origen tienen audio y video no sincronizados. No sé las razones, tenemos archivos del servidor de medios.
Pero hay una solución. Primero usamos
scale
Filtrar en cada archivo. Y solo después de eso usamosconcat
. Entonces ffmpeg funciona bien.Todavía tenemos audio / video sin sincronizar, pero eso no es un problema de ffmpeg.
fuente