Copie varias pistas de subtítulos PGS con FFmpeg

Copie varias pistas de subtítulos PGS con FFmpeg

Estoy usando Debian 9. Tengo un archivo con varias pistas de audio y subtítulos en PGS. Me gustaría pasar el video a h265 y mantener todas las pistas de audio y subtítulos tal como están en un contenedor .mkv, ya que, según tengo entendido, mp4 no admite subtítulos basados ​​en imágenes.

El comando que uso es:

ffmpeg -i entrada.264.mkv -c:v libx265 -f matroska -map 0 salida.265.mkv

pero me sale este error en ffmpeg:

[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 9 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 10 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 11 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Only SUBTITLE_ASS type supported.
Subtitle encoding failed

Y, si quieres copiarlos uno a la vez, simplemente graba el primero.

Aquíson los datos del archivo en cuestión:

En resumen:

Resultado esperado: Recodificar un archivo de vídeo a h265 y copiar todo el audio y subtítulos sin modificarlos o grabarlos en el vídeo para poder elegir cuál usar.

Resultado obtenido: Error por falta de parámetros para los subtítulos.

¿Hay alguna manera de hacerlo directamente desde ffmpeg sin tener que extraer los subtítulos uno por uno, y luego agregarlos al video a través de algún programa como mkvmerge?

Respuesta1

Copia de secuencia(re-mux) todo menos el video:

ffmpeg -i entrada.264.mkv -map 0 -c copy -c:v libx265 salida.265.mkv

-map 0incluye todos los flujos desde la entrada hasta la salida en lugar de depender delcomportamiento de selección de flujo predeterminadoque solo incluye una secuencia por tipo de secuencia.

Respuesta2

Esto no es un error. Es un mensaje de advertencia. El -loglevel warningdevuelve el mensaje:

ffmpeg -i entrada.264.mkv -loglevel warning -c:v libx265 -f matroska -map 0 salida.265.mkv

Y el -loglevel errorlo suprime:

ffmpeg -i entrada.264.mkv -loglevel error -c:v libx265 -f matroska -map 0 salida.265.mkv

Probé todos los subtítulos de mi propio archivo mkv de salida a través deEditar subtítulosy están todos intactos. Creo que esta advertencia se muestra solo para advertirle si decide volver a codificar estos subtítulos más adelante.

información relacionada