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-winforms
a 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 ...
.ass
para SubRip (.srt) ... Apenas uma coisa que eu não percebi: produz \r\n
terminações de linha (CRLF), mesmo quando o final da linha de origem é \n
... mas isso raramente seria um problema e é facilmente corrigido com sed
if 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 .srt
arquivo 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 sed
nome será bigassinsured
. Sem sed
e 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