Mi FFmpeg no reconoce correctamente los subtítulos WebVTT
Estoy teniendo problemas a la hora de procesar ficheros Matroska con subtítulos en formato WebVTT.
Veamos un ejemplo:
La utilidad Matroska mkvmerge -i reconoce las pistas correctamente:
Track ID 0: video (AVC/H.264/MPEG-4p10) Track ID 1: audio (E-AC-3) Track ID 2: audio (AC-3) Track ID 3: subtitles (SubRip/SRT) Track ID 4: subtitles (WebVTT)
En cambio la utilidad FFmpeg ffprobe tiene problemas para identificar el códec a utilizar con los subtítulos WebVTT:
Stream #0:4: Subtitle: none
Metadata:
title : Completos
BPS : 53
DURATION : 01:43:10.562000000
NUMBER_OF_FRAMES: 1471
NUMBER_OF_BYTES : 41590
Unsupported codec with id 0 for input stream 4
El none indica que no sabe qué hacer con esa pista.
Curiosamente mi instalación FFmpeg sí soporta el formato WebVTT:
jcea@jcea:~$ ffmpeg -codecs | grep -i webvtt ffmpeg version 6.1.2 Copyright (c) 2000-2024 the FFmpeg developers [...] DES... webvtt WebVTT subtitle
Vemos que mi FFmpeg sí tiene soporte de subtítulos WebVTT, tanto para codificar como para decodificar.
Investigando por qué FFmpeg 6.1 no reconoce las pistas WebVTT de mis ficheros Matroska, veo que se trata de un problema conocido:
- [FFmpeg-devel] [PATCH] Add matroska codec id S_TEXT/WEBVTT for WebVTT streams (I).
- [FFmpeg-devel] [PATCH] Add matroska codec id S_TEXT/WEBVTT for WebVTT streams (II).
La explicación sencilla es que hay dos formas de codificar subtítulos WebVTT y mi versión de FFmpeg solo soporta el formato antiguo, no el nuevo utilizado en los ficheros Matroska modernos.
Parece que lo más sencillo sería actualizar a FFmpeg 7, pero por diversos motivos no es algo que pueda hacer a corto plazo.
¿Qué opciones tengo?