Primeiramente, você pode ver todos os formatos (containers) chamando ffmpeg -formats
. O fato de eles não mencionarem extensões é provavelmente porque uma extensão por si só é insignificante, e você pode substituir o formato de saída usando a opção -f
.
Você pode ver quais são as extensões comuns para um determinado (des) muxer. Por exemplo:
$ ffmpeg -v 1 -h demuxer=matroska
Demuxer matroska,webm [Matroska / WebM]:
Common extensions: mkv,mk3d,mka,mks
Os formatos de saída e suas extensões são registrados nos codificadores. Então, você encontraria isso para Matroska, ao olhar para o código fonte do ffmpeg:
AVOutputFormat ff_matroska_muxer = {
.name = "matroska",
.long_name = NULL_IF_CONFIG_SMALL("Matroska"),
.mime_type = "video/x-matroska",
.extensions = "mkv",
....
Os formatos de entrada geralmente não são analisados pela extensão, mas pelos dados reais contidos.
Veja também:
- Documentação dos formatos do FFmpeg
- Documentação do FFmpeg: Formatos, Codecs ou Recursos de Arquivos Suportados .
O problema é que apenas dois de todos os formatos ffmpeg podem manipular legendas de suporte a HDMV PGS:
- MPEG-TS
- MKV (Matroska)
Você não pode usar um contêiner SRT porque é um conceito diferente. As legendas SRT são baseadas em texto, enquanto as legendas HDMV PGS são bitmaps reais.
Então, isso deve funcionar se tudo o que você precisa fazer é armazenar as legendas em algum lugar:
ffmpeg -i input.mkv -c:s:0 copy -map 0:s:0 output.mks