オープンソース、コマンドライン、字幕コンバータ-できればLinuxはありますか?
あなたはFFmpegを試すことができます(素晴らしいツール!):
$ ffmpeg -i file.srt file.vtt
字幕を変換するために使用する非常にシンプルで効果的なワンライナー:
for i in *.ass ; do ffmpeg -i "$i" "$i.srt" ; done
必要に応じて、ass
とsrt
を変更するだけです。
字幕Perlスイスアーミーナイフ (ページの最後までスクロールします)。
ここ より多くのオプションを見つけることができます。
また、 mplayer/mencoder には、動作する可能性のあるいくつかのdumpXXXsubオプションがあります。私はこれを試したことはありませんが、男を読んで、それはうまくいくはずです。例:
-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.
オープンソースプログラム Subtitle Edit にはコマンドラインコンバーターがあり、WindowsとLinuxの両方で使用できます。
構文:
SubtitleEdit /convert "pattern" "name-of-format-without-spaces"
例1:
SubtitleEdit /convert sub1.srt sami
Result:sub1.srtをsub1.subからSAMI形式に変換します例2:
SubtitleEdit /convert *.srt adobeencore
Result:すべての.srtファイルをAdobe Encore形式に変換します
Linuxの場合、コマンドラインは少し長くする必要があります…
構文:
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
…しかし、スクリプトで簡単にラップできます。
一部のプレーヤー(Googleドライブビデオプレーヤーなど)は、以下から生成された.srtが気に入らないことがわかりました。
ffmpeg -i subtitles.ass <blah>.srt
または:
SubtitleEdit /convert subtitles.ass subrip
だが:
ffmpeg -i subtitles.ass -codec:s text subtitles.srt
...私のためのトリックをしました。
sedを使用してファイル名を変更する
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done
変換後に.srt
ファイルを削除する場合は、後でrmコマンドを追加するだけです。
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" && rm -f "$i" ; done
#!/bin/bash
file="*.srt" # Find file
ffmpeg -i "$file" "${file%.*}.vtt" # Convert file
rm "$file" # Remove file .srt from your dir
Windowsバッチファイルでは、これを使用してフォルダー内のすべてのテキスト字幕ファイルをSRTに変換できます
for %%i in (*.vtt .ass .ssa) do ffmpeg -i "%%i" "%%~ni.srt"