FFmpeg concat estropea el último fotograma del primer segmento

FFmpeg concat estropea el último fotograma del primer segmento

El problema:
Rutinariamente necesito concatenar limpiamente dos archivos .MKV con ffmpeg. Alrededor del 10 al 20 % de las veces, los últimos 3 a 5 cuadros del primer segmento de video tienen problemas en varios reproductores de video (VLC y PotPlayer para pruebas). El efecto típico es que mientras se reproduce el vídeo, el tercer al quinto fotograma del primer segmento que se concatena se congelará y permanecerá en la pantalla durante los siguientes fotogramas, hasta el comienzo del segundo segmento que se concatena. El audio aún se reproduce correctamente detrás de la imagen. Curiosamente, si uso el control 'e' en VLC para avanzar cuadro por cuadro a través de la secuencia, todos los cuadros parecen estar allí. Ambos segmentos provienen de la misma fuente y tienen las mismas propiedades. El segmento fuente nonoTengo este problema por sí solo. Los segmentos de origen se codifican ellos mismos cuando se producen, por lo que no deberían tener ningún problema de fotogramas clave.

Lo que he probado:

  • Codificar solo el video al emitir el comando de concatenación (copiar audio y subtítulos)
  • Codificar el vídeo y el audio al emitir el comando de concatenación (copiar subtítulos)
  • Aumentar los valores de duración analizada y tamaño de sonda como sugieren las advertencias.
  • Mostrar solo el video aún produce el problema (sin audio, sin subtítulos)
  • He visto publicaciones sobre problemas muy parecidos a este, pero parece que no puedo encontrar la solución mágica.

Lo que estoy haciendo que produce este problema:
El comando que estoy emitiendo es

ffmpeg.exe -f concat -safe 0 -i "C:\Users\test\Downloads\ConcatListTEMP00000.txt" -c copy -map 0 "C:\Users\test\Downloads\TEST JOIN COPY.mkv"

El contenido del archivo de concatenación es

file 'C:\Users\test\Downloads\CutSegmentTEMP0001.mkv'
file 'C:\Users\test\Downloads\CutSegmentTEMP0002.mkv'

Aquí hay un enlace de Pastebin a la salida de la consola cuando se ejecuta el comando anterior: https://pastebin.com/mpBS6TZY

Respuesta1

El uso de filtros trim, atrim y concat en un gráfico de filtro parece haber resuelto el problema. Me ocuparé de los subtítulos por separado.

información relacionada