Eu tenho um arquivo .ass que quero migrar para um vídeo que requer fontes adicionais.
Parece não haver nenhuma opção para copiar os anexos de um arquivo para outro, então eu joguei todos eles usando
ffmpeg -dump_attachment:t "" -i input.mkv
Mas como eu os coloco no novo arquivo corretamente?
Eu tentei o seguinte:
ffmpeg -i input.mkv -c copy -attach "fontastique.ttf" -metadata:s: mimetype=application/x-truetype-font -attach "Franchise - Extra.ttf" -metadata:s: mimetype=application/x-truetype-font -attach "Painfresco-Italic.ttf" -metadata:s: mimetype=application/x-truetype-font -attach "Painfresco-Regular.ttf" -metadata:s: mimetype=application/x-truetype-font -attach "SETFIRETOTHERAIN.TTF" -metadata:s: mimetype=application/x-truetype-font -attach "Volter__28Goldfish.ttf" -metadata:s: mimetype=application/x-truetype-font output.mkv
as fontes parecem estar anexadas, mas todas as transmissões, incluindo vídeo / áudio / legendas, aparecerão com um tipo MIME conjunto das fontes.
Stream #0:1: Audio: aac, 44100 Hz, stereo, fltp (default) (forced)
Metadata:
MIMETYPE : application/x-truetype-font
Stream #0:2: Subtitle: ssa (default) (forced)
Metadata:
MIMETYPE : application/x-truetype-font
Codec 0x18000 is not in the full list.
Stream #0:3: Attachment: unknown_codec
Metadata:
filename : fontastique.ttf
mimetype : application/x-truetype-font
...etc...
As legendas não podem encontrar a fonte porque ela ainda aparece como fonte padrão do player, não das fontes anexadas.
As documentações do exemplo dizem
ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
mas eu não tenho ideia do que -metadata: s: 2 significa, eu pensei que ele diz para qual fluxo anexá-lo, mas usando -metadata:s:2
, sendo 2 o fluxo de legendas, falha com
Could not write header for output file #0 (incorrect codec parameters ?): Error number -22 occurred
Como copiar ou anexar várias fontes corretamente a um contêiner MKV para ser usado por um fluxo de legendas .ass?