オープンソースのコマンドライン字幕コンバーター


回答:


26

FFmpeg(素晴らしいツール!)を試すことができます:

$ ffmpeg -i file.srt file.vtt

9

字幕を変換するために使用する非常にシンプルで効果的なoneliner:

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

ちょうど変更assし、srtニーズに応じて。


7

字幕perl swiss army knife(ページの最後までスクロールします)。

ここで、より多くのオプションを見つけることができます。

また、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.

実際、これは便利ですが、残念ながら3つの異なる形式しかサポートされていません。.srt、.sub、.smi。
ジョナス

MplayerとMencoderをチェックアウトしました。しかし、それが機能していませんでした。また、SRT、SMI、SUB、JACOのみをサポートしています。しかし、良い提案、ありがとう。
ジョナス

うまくいきます、ありがとう!ここで:pastebin.com/T6DM9xbqは私のコンバータはMPlayerを使用してフレームレート検出してこれに基づいている
ルカシュFrankowski

3

オープンソースプログラムのSubtitle Editにはコマンドラインコンバーターがあり、WindowsとLinuxの両方で使用できます。

構文SubtitleEdit /convert "pattern" "name-of-format-without-spaces"

例1SubtitleEdit /convert sub1.srt sami
結果:sub1.srtをsub1.subからSAMI形式に変換します

例2SubtitleEdit /convert *.srt adobeencore
結果:すべての.srtファイルをAdobe Encore形式に変換します

以下のためにLinuxのコマンドラインは少し長くする必要があります...

構文mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"

…しかし、スクリプトで簡単にラップできます。


GUIは動作しますが、コマンドラインから実行するとエラーが発生しました..GUIが動作するlibmono-winformsためにインストールする必要がありました(READMEに記載されています)... CLIが動作するために必要な追加の何かがあるかもしれません... AttachConsole...エラーが発生します。Ubuntu 10.04を使用
...-Peter.O

これはバージョン3.2.3で修正されたようです-少なくともUbuntuで
-Johanz

1
@ヨハンツ:ありがとう。バージョン3.2.3が機能します。それはa .assをSubRip(.srt)に変換しました...ただ一つ気付い\r\nたのは、ソース行末が\n...であっても(CRLF)行末を生成することですが、それはめったに問題ではなく、sedifで簡単に修正できますする必要があります。
Peter.O

+1は非常に優れたコンバーターであり、オープンソースアプリケーションです。また、cmdラインインターフェイスがあります。
-user10607

1

正確に変換したいものは何ですか?字幕形式の間にある場合は、話している形式によって異なります。ビットマップベースのものは、OCRがテキスト形式に変換する必要があり、通常、OCRの精度を確認するために常にユーザー入力が必要です

それがすべてテキスト形式である場合、JublerまたはAegisub役に立つかもしれません


シンプルなテキスト字幕。SRT、STL、SUB、PAC。行ったり来たり。
ジョナス

@johnas-私の答えはいくつかの可能性で更新されました
-Shevek

シェベックに感謝しますが、上記のどれもコマンドラインでは動作しませんでした。GUIを使用できれば完璧でしたが。
ジョナス

1

一部のプレーヤー(たとえば、Googleドライブビデオプレーヤー)は、以下から生成された.srtを好まないことがわかりました。

ffmpeg -i subtitles.ass <blah>.srt

または:

SubtitleEdit /convert subtitles.ass subrip

だが:

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

...私のためにトリックをしました。


0

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

1
ファイル名がbig.assassins.assured(および拡張子)の場合はどうなりますか?あなたのsed名前はそれになりbigassinsuredます。なしsedとこの欠陥なし:"${i%.ass}.srt"
カミル・マチオロウスキ

0
#!/bin/bash

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

forループでこのプログラムを使用してさらにファイルを変換する場合。


Ffmpegが異常終了した場合はどうなりますか?
174140

ffmpegはオープンソースのマルチメディアライブラリです。
マノジ・クマール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.