ffmpeg codifica a legenda

6

Eu sei que talvez não seja o lugar certo para fazer essa pergunta, mas não consegui encontrar mais sites relacionados a Q / A do grupo do StackExchange, então aqui vai:

Eu preciso adicionar legenda a um filme, eu já tenho o formato de vídeo avi e o arquivo de legenda de formato srt e agora eu quero codificá-los em um arquivo. então o arquivo de saída deve ter 3 streams, vídeo, áudio e legenda. quando eu tento ffmpeg -i video.avi -i subtitle.srt combined.mkv ele entende o que eu quero e registra

stream #0.0 -> #0.0
stream #0.1 -> #0.1
stream #1.0 -> #0.2

mas gera erro Encoder (codec id 0) not found for output stream #0.2 . Eu tentei adicionar a opção -newsubtitle após combined.mkv , mas isso pareceu ser desnecessário porque gerou log assim:

stream #0.0 -> #0.0
stream #0.1 -> #0.1
stream #1.0 -> #0.2
stream #1.0 -> #0.3

alguém pode me ajudar o que devo fazer para introduzir o codificador de legendas para ffmpeg (eu também tentei o formato mp4 para fluxo de saída, mas o mesmo erro foi relatado)? e a propósito, alguém sabe uma maneira de manter a qualidade do vídeo original em uma gerada?

    
por Ali1S232 03.06.2011 / 23:09

2 respostas

4

A resposta, conforme determinada, recodificará (com perda) o áudio e o vídeo do arquivo de entrada, e selecionará apenas uma única faixa de áudio e vídeo (portanto, se você tiver vários idiomas, será S-O-L). A maneira correta de fazer isso em moderno ffmpeg (ou avconv para usuários do Ubuntu / Debian, a mesma sintaxe) é:

ffmpeg -i input.avi -i input.srt -map 0 -map 1 -c copy output.mkv

O MKVmerge, uma parte do mkvtoolsnix, também pode fazer isso perfeitamente

mkvmerge -o output.mkv input.avi subtitle.srt
    
por 18.12.2012 / 11:03
3

depois de alguns testes parece que eu tive que adicionar -scodec copy à minha linha de comando. Quero dizer, ffmpeg -i video.avi -i subtitle.srt -scodec copy combined.mkv adicionou legendas ao meu vídeo.

    
por 05.06.2011 / 01:48

Tags