Are there any open source, command line, subtitle converters - preferably for Linux?
You can try FFmpeg (great tool !) :
$ ffmpeg -i file.srt file.vtt
Subtitles perl swiss army knife (scroll to the end of the page).
Here you can find more options.
Also, mplayer/mencoder has some dumpXXXsub options, which might work. I never tried this, but reading the man, it should work. Example:
-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.
The open source program Subtitle Edit has a command line converter and is available for both Windows and Linux.
SubtitleEdit /convert "pattern" "name-of-format-without-spaces"
SubtitleEdit /convert sub1.srt sami
Result: Will convert sub1.srt to sub1.sub to SAMI format
SubtitleEdit /convert *.srt adobeencore
Result: Will convert all .srt files to Adobe Encore format
For Linux the command line needs to be slightly longer…
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
…but could easily be wrapped in a script.
What is it you want to convert exactly? If it is between subtitle formats then it depends on which formats you are talking about. Those which are bitmap based will require OCR to convert to text format and generally always require user input for confirming the accuracy of the OCR
rename the file name using sed
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done
if you want to delete the
.srt file after converting, just add a rm command afterwards.
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" && rm -f "$i" ; done