newsubtitles line não está funcionando no FFmpeg

3

Estou tentando executar a seguinte linha no FFmpeg que basicamente "re-formata" um arquivo MKV para MP4 sem fazer qualquer re-codificação e também embutir legendas SRT na saída MP4:

ffmpeg -i test.mkv -i test.srt -newsubtitle -acodec copy -vcodec copy test.mp4

Sem o bit "-i test.srt -nwesubtitle", parece funcionar bem; no entanto, com ele eu recebo a seguinte saída:

Seems stream 0 codec frame rate differs from container frame rate: 47.95 (5000000/104271) -> 23.98 (24000/1001)

Stream #0.0(eng): Video: h264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
Stream #0.1(eng): Subtitle: 0x0000
Metadata:
  title           : English
Stream #0.2(jpn): Audio: aac, 48000 Hz, stereo, s16
Metadata:
  title           : Japanese 2.0
Stream #0.3(eng): Audio: aac, 48000 Hz, stereo, s16
Metadata:
  title           : English 2.0
Stream #0.4(eng): Subtitle: 0x0000
Metadata:
  title           : English Songs & Signs
Stream #0.5: Attachment: 0x0000
Metadata:
  filename        : MyriadPro-Bold.ttf
Stream #0.6: Attachment: 0x0000
Metadata:
  filename        : MyriadPro-RegularHaruhi.ttf
Stream #0.7: Attachment: 0x0000
Metadata:
  filename        : ChaparralPro-BoldIt.ttf
Stream #0.8: Attachment: 0x0000
Metadata:
  filename        : ChaparralPro-SemiboldIt.ttf
Stream #0.9: Attachment: 0x0000
Metadata:
  filename        : epmgobld_ending.ttf
Stream #0.10: Attachment: 0x0000
Metadata:
  filename        : epminbld_opening.ttf
Stream #0.11: Attachment: 0x0000
Metadata:
  filename        : Folks-Bold.ttf
Stream #0.12: Attachment: 0x0000
Metadata:
  filename        : GosmickSansBold.ttf
Stream #0.13: Attachment: 0x0000
Metadata:
  filename        : WarnockPro-LightDisp.ttf
Stream #0.14: Attachment: 0x0000
Metadata:
  filename        : epmgobld_ending.ttf
Stream #0.15: Attachment: 0x0000
Metadata:
  filename        : GosmickSansBold.ttf
Stream #0.16: Attachment: 0x0000
Metadata:
  filename        : Marker SD 1.2.ttf
Stream #0.17: Attachment: 0x0000
Metadata:
  filename        : MyriadPro-Bold.ttf
Stream #0.18: Attachment: 0x0000
Metadata:
  filename        : MyriadPro-RegularHaruhi.ttf
Stream #0.19: Attachment: 0x0000
Metadata:
  filename        : MyriadPro-SemiCn.ttf
test.srt: Invalid data found when processing input

Eu tentei adicionar "-r pal", "-r ntsc" ou "-r 23.98" pensando que era problema de framerate sem alteração.

    
por godMode 11.06.2011 / 07:13

2 respostas

3

O FFmpeg estava chamando "test.srt: Dados inválidos encontrados ao processar a entrada" porque simplesmente não era possível manipular o arquivo SRT. Eu executei as opções -codecs e, com certeza, o codec "srt" não foi listado.

Para corrigir isso eu cumpri o ffmpeg da fonte, usando as opções de configuração para habilitar legendas.

Aparentemente, o FFmpeg que pode ser encontrado nos repositórios do Ubuntu está em conformidade com as legendas desativadas.

    
por 03.07.2011 / 21:08
1

As legendas SRT não são oficialmente suportadas em MP4, e muitos dos dispositivos que reproduzem MP4 não poderão reproduzir as legendas SRT contidas nelas. Ampla compatibilidade é o principal motivo para usar o MP4 em vez do MKV, então você deve ficar com a Matroska.

Para combinar vários arquivos em um único MKV, use mkvmerge de mkvtoolsnix :

mkvmerge -o output.mkv input.mkv input2.srt

Se você insistir em usar o MP4, MP4Box é a ferramenta equivalente (de gpac ):

MP4Box -out output.mp4 -add input.mkv -add input2.srt
    
por 18.12.2012 / 11:22

Tags