Odpowiedzi:
Napisy perl szwajcarski scyzoryk (przewiń na koniec strony).
Tutaj możesz znaleźć więcej opcji.
Ponadto mplayer / mencoder ma kilka opcji dumpXXXsub, które mogą działać. Nigdy tego nie próbowałem, ale czytanie mężczyzny powinno działać. Przykład:
-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.
Program Open Source Edycja napisów ma konwerter wiersza poleceń i jest dostępny zarówno dla systemu Windows, jak i Linux.
Składnia :
SubtitleEdit /convert "pattern" "name-of-format-without-spaces"
Przykład 1 :
SubtitleEdit /convert sub1.srt sami
Wynik : Konwertuje sub1.srt do sub1.sub do formatu SAMIPrzykład 2 :
SubtitleEdit /convert *.srt adobeencore
Wynik : Konwertuje wszystkie pliki .srt do formatu Adobe Encore
W systemie Linux wiersz poleceń musi być nieco dłuższy…
Składnia :
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
… Ale można go łatwo zawinąć w skrypt.
libmono-winforms
aby GUI działało (jak podano w README) ... Może jest coś dodatkowego, co jest potrzebne do działania CLI ... dostaję AttachConsole...
błąd. używając Ubuntu 10.04 ...
.ass
w SubRip (.srt) ... Po prostu zauważyłem: produkuje \r\n
zakończenia linii (CRLF), nawet jeśli źródłem linii źródłowej jest \n
... ale rzadko jest to problem i można go łatwo naprawić, sed
jeśli musi być.
Co chcesz dokładnie przekonwertować? Jeśli jest pomiędzy formatami napisów, to zależy od tego, o jakim formacie mówisz. Te, które są oparte na bitmapach, wymagają OCR do konwersji do formatu tekstowego i generalnie zawsze wymagają danych wejściowych od użytkownika w celu potwierdzenia dokładności OCR
Jeśli wszystkie formaty tekstowe, to Jubler lub Aegisub mogą być przydatne
zmień nazwę pliku za pomocą sed
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done
jeśli chcesz usunąć .srt
plik po konwersji, po prostu dodaj polecenie rm.
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" && rm -f "$i" ; done
big.assassins.assured
(plus rozszerzenie)? Twoja sed
nazwa to bigassinsured
. Bez sed
i bez tej luki: "${i%.ass}.srt"
.
#!/bin/bash
file="*.srt" # Find file
ffmpeg -i "$file" "${file%.*}.vtt" # Convert file
rm "$file" # Remove file .srt from your dir