Respostas:
Legendas perl swiss army knife (role para o final da página).
Aqui você pode encontrar mais opções.
Além disso, o mplayer / mencoder possui algumas opções de dumpXXXsub, que podem funcionar. Eu nunca tentei isso, mas lendo o homem, deve funcionar. Exemplo:
-dumpmpsub (MPlayer only)
Convert the given subtitle (specified with the -sub option) to MPlayer's subtitle format, MPsub. Creates a dump.mpsub file in the current directory.
O programa de código aberto Subtitle Edit possui um conversor de linha de comando e está disponível para Windows e Linux.
Sintaxe :
SubtitleEdit /convert "pattern" "name-of-format-without-spaces"Exemplo 1 :
SubtitleEdit /convert sub1.srt sami
Resultado : converterá sub1.srt em sub1.sub no formato SAMIExemplo 2 :
SubtitleEdit /convert *.srt adobeencore
Resultado : converterá todos os arquivos .srt para o formato Adobe Encore
Para Linux, a linha de comando precisa ser um pouco mais longa…
Sintaxe :
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
... mas pode ser facilmente envolvido em um script.
libmono-winformsa GUI para funcionar (conforme declarado no README) ... Talvez exista algo extra necessário para a CLI funcionar ... Eu recebo um AttachConsole...erro. usando Ubuntu 10.04 ...
.asspara SubRip (.srt) ... Apenas uma coisa que eu não percebi: produz \r\nterminações de linha (CRLF), mesmo quando o final da linha de origem é \n... mas isso raramente seria um problema e é facilmente corrigido com sedif precisa ser.
O que você deseja converter exatamente? Se estiver entre os formatos de legenda, depende de quais formatos você está falando. Aqueles que são baseados em bitmap exigirão que o OCR seja convertido em formato de texto e geralmente sempre exijam entrada do usuário para confirmar a precisão do OCR
Se é todos os formatos de texto, em seguida, Jubler ou Aegisub pode ser de uso
renomeie o nome do arquivo usando sed
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done
se você deseja excluir o .srtarquivo após a conversão, basta adicionar um comando rm posteriormente.
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" && rm -f "$i" ; done
big.assassins.assured(mais a extensão)? Seu sednome será bigassinsured. Sem sede sem esta falha: "${i%.ass}.srt".
#!/bin/bash
file="*.srt" # Find file
ffmpeg -i "$file" "${file%.*}.vtt" # Convert file
rm "$file" # Remove file .srt from your dir