Determinar automáticamente el desfase de audio en un fichero MKV (III)
Entradas anteriores sobre este tema:
- Cómo corregir la desincronización de audio en un fichero Matroska.
- Determinar automáticamente el desfase de audio en un fichero MKV.
- Sincronización de sonido cuando la tasa de refresco de vídeo es irregular.
- Resincronizar audio cuando el vídeo se congela un momento.
- Determinar automáticamente el desfase de audio en un fichero MKV (II).
Hoy me he encontrado con un caso nuevo: tasa de audio irregular:
$ ffmpeg -i FUENTE.mkv -af ashowinfo -map 0:2 -y -f alaw -frames:a 5 /dev/null [Parsed_ashowinfo_0 @ 48dde0] n:0 pts:0 pts_time:0 pos:22428 fmt:s16p channels:2 chlayout:stereo rate:48000 nb_samples:1152 checksum:A45225DC plane_checksums: [ B6F411EF 7CE013ED ] [Parsed_ashowinfo_0 @ 48dde0] n:1 pts:110592 pts_time:2.304 pos:94534 fmt:s16p channels:2 chlayout:stereo rate:48000 nb_samples:1152 checksum:7497E13F plane_checksums: [ 1D98739E 8C006DA1 ] [Parsed_ashowinfo_0 @ 48dde0] n:2 pts:111744 pts_time:2.328 pos:94918 fmt:s16p channels:2 chlayout:stereo rate:48000 nb_samples:1152 checksum:214BB177 plane_checksums: [ 63345BBA 03B155BD ] [Parsed_ashowinfo_0 @ 48dde0] n:3 pts:112896 pts_time:2.352 pos:96214 fmt:s16p channels:2 chlayout:stereo rate:48000 nb_samples:1152 checksum:9DE0FD2F plane_checksums: [ D6BB799A 1CFC8395 ] [Parsed_ashowinfo_0 @ 48dde0] n:4 pts:114048 pts_time:2.376 pos:96598 fmt:s16p channels:2 chlayout:stereo rate:48000 nb_samples:1152 checksum:0499F32E plane_checksums: [ D707739B 7D847F93 ] size= 11kB time=00:00:02.40 bitrate= 38.4kbits/s
Aquí vemos que el primer frame de audio está bien, pero el segundo se reproduce a los 2.304 segundos. Hay más de dos segundos de silencio sin audio en el archivo. Vemos también que hay un frame de audio cada 24 milisegundos. El ajuste de audio que hay que aplicar es, por tanto, de 2.280 milisegundos:
$ mkvmerge -o DESTINO.mkv -y 1:2280 -y 2:2280 FUENTE.mkv
No deja de sorprenderme la cantidad de cosas extrañas que uno se encuentra por ahí...