Open Source Kommandozeilen-Untertitelkonverter


Antworten:


26

Sie können FFmpeg (tolles Tool!) Ausprobieren:

$ ffmpeg -i file.srt file.vtt

9

sehr einfacher und effektiver oneliner mit dem ich untertitel konvertiere:

for i in *.ass ; do ffmpeg -i "$i" "$i.srt" ; done

ändern Sie einfach assund srtentsprechend Ihren Notwendigkeiten.


7

Untertitel perl swiss army knife (scrollen Sie zum Ende der Seite).

Hier finden Sie weitere Optionen.

Außerdem hat mplayer / mencoder einige dumpXXXsub-Optionen, die möglicherweise funktionieren. Ich habe das nie ausprobiert, aber als ich den Mann las, sollte es funktionieren. Beispiel:

-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.

Dies ist in der Tat praktisch, obwohl leider nur drei verschiedene Formate unterstützt werden. srt, smi.
Johnas

Ich habe den Mplayer und den Mencoder ausprobiert. Es hat aber nicht funktioniert. Und es werden nur SRT, SMI, SUB und JACO unterstützt. Ein guter Vorschlag, danke.
Johnas

Funktioniert gut, danke! Hier: pastebin.com/T6DM9xbq ist mein Konverter auf dieser Basis mit Frameratenerkennung mit mplayer
Lukasz Frankowski

3

Das Open-Source-Programm Subtitle Edit verfügt über einen Befehlszeilen-Konverter und ist sowohl für Windows als auch für Linux verfügbar.

Syntax :SubtitleEdit /convert "pattern" "name-of-format-without-spaces"

Beispiel 1 : SubtitleEdit /convert sub1.srt sami
Ergebnis : Konvertiert 1 srt in 1 s in das SAMI-Format

Beispiel 2 : SubtitleEdit /convert *.srt adobeencore
Ergebnis : Alle .srt-Dateien werden in das Adobe Encore-Format konvertiert

Für Linux muss die Kommandozeile etwas länger sein ...

Syntax :mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"

... könnte aber leicht in ein Skript eingebunden werden.


Die GUI funktioniert, aber ich habe einen Fehler , wenn von der Kommandozeile ausgeführt wird .. .Ich Für die Installation benötigte libmono-winformsfür den GUI zu arbeiten (wie in der Readme angegeben) ... Vielleicht gibt es etwas Extra , die für die CLI zur Arbeit benötigt wird , ... ich bekomme eine AttachConsole...Fehlermeldung. mit Ubuntu 10.04 ...
Peter.O

Dies scheint in Version
3.2.3

1
@Johanz: Danke. Version 3.2.3 funktioniert. Es hat a .assin SubRip (.srt) konvertiert ... Nur eines habe ich bemerkt: Es erzeugt \r\n(CRLF) Zeilenenden, auch wenn das Ende der Quellzeile ist \n... aber das wäre selten ein Problem und lässt sich leicht mit sedif beheben muss sein.
Peter.O

+1, da dies ein wirklich guter Konverter und eine Open-Source-Anwendung ist. Und es hat eine Cmd-Line-Schnittstelle.
user10607

1

Was genau möchten Sie konvertieren? Wenn es sich um Untertitelformate handelt, hängt es davon ab, von welchen Formaten Sie sprechen. Bei Bitmap-basierten Anwendungen muss die OCR in das Textformat konvertiert werden. In der Regel sind Benutzereingaben erforderlich, um die Genauigkeit der OCR zu bestätigen

Wenn es sich nur um Textformate handelt, können Jubler oder Aegisub von Nutzen sein


Einfache Textuntertitel. SRT, STL, SUB, PAC. Hin und her.
Johnas

@ Johns - meine Antwort mit ein paar Möglichkeiten aktualisiert
Shevek

Vielen Dank, Shevek, aber keine der oben genannten Funktionen war in der Befehlszeile verfügbar. Obwohl sie perfekt gewesen wären, wenn ich die GUI benutzen könnte.
Johnas

1

Ich habe festgestellt, dass einigen Playern (z. B. Google Drive-Videoplayer) die .srt-Datei nicht gefällt, die generiert wurde aus:

ffmpeg -i subtitles.ass <blah>.srt

oder:

SubtitleEdit /convert subtitles.ass subrip

aber:

ffmpeg -i subtitles.ass -codec:s text subtitles.srt

... hat den Trick für mich getan.


0

Benennen Sie den Dateinamen mit sed um

for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done

Wenn Sie die .srtDatei nach der Konvertierung löschen möchten , fügen Sie anschließend einfach einen rm-Befehl hinzu.

for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt"  &&  rm -f "$i"  ; done

1
Was ist, wenn der Dateiname big.assassins.assured(plus die Erweiterung) ist? Du sedwirst es nennen bigassinsured. Ohne sedund ohne diesen Fehler: "${i%.ass}.srt".
Kamil Maciorowski

0
#!/bin/bash

file="*.srt"                     # Find file
ffmpeg -i "$file" "${file%.*}.vtt"   # Convert file  
rm "$file"                         # Remove file .srt from your dir

Wenn Sie mehr Dateien konvertieren möchten, verwenden Sie dieses Programm in der for-Schleife.


Was ist, wenn Ffmpeg abbricht?
25.

ffmpeg ist eine Open-Source-Multimedia-Bibliothek.
Manoj Kumar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.