Tengo este archivo de video que en un momento presenta una sincronización de ~ 1 segundo. Así que traté de hacer que funcionara duplicando un segmento corto en ese punto, ya que está en silencio allí:
$ ffmpeg -i DFW.mp4.mkv -filter_complex '
[0:a] aselect=n=3:e=lt(t\,18*60+42.100)+gt(t\,18*60+41)*2 [as] [ae] [am];
[am] asplit [am1] [am2];
[as] asetpts=PTS-STARTPTS [as];
[am1] asetpts=PTS-STARTPTS [am1];
[am2] asetpts=PTS-STARTPTS [am2];
[ae] asetpts=PTS-STARTPTS [ae];
[as] [am1] [am2] [ae] concat=n=4:a=1:v=0 [a]' -map 0:v -map '[a]' -c:v copy DFW-1.mp4
En otras palabras, tengo
as
el inicio hasta las 18:41.000ae
el final de 18:42.100am
la sección central entre 18:41.000 y 18:42.100, que debe repetirse una vezLa segmentación funciona, la parte audible concatenada suena bien. Sin embargo, ae
resulta ser solo ~ 5 segundos cortos y ffmpeg
comienza a imprimir líneas de spam "Desbordamiento de cola de búfer, caída". El video completo dura 1h30 dejándome con mucho silencio hasta el final.
En otras palabras, el video y el audio están bien hasta alrededor de las 18:48.000 y la 1h11 restante del video no tiene audio.
¿Por qué está ffmpeg
haciendo eso y cómo puedo solucionarlo?
También traté de incluir un segmento de audio de silencio como plan B, pero fallé.
Suponiendo que no haya discontinuidades de marca de tiempo en el audio, un atrim simple y un segmento nulo deberían funcionar.
ffmpeg -i DFW.mp4.mkv -filter_complex '
[0:a]asplit[a][b];
[a]atrim=0:1122.1[pre];
[b]atrim=1122.1,asetpts=PTS-STARTPTS[post];
anullsrc,atrim=0:1.1[seg];
[pre][seg][post]concat=n=3:a=1:v=0[a]' -map 0:v -map '[a]' -c:v copy DFW-1.mp4
atrim
s.atrim
s.
gian
sjngm
ae
tiene una duración de ~5 segundos, lo cual es extraño.