Konverter subtitle baris perintah sumber terbuka


Jawaban:


26

Anda dapat mencoba FFmpeg (alat hebat!):

$ ffmpeg -i file.srt file.vtt

9

oneliner yang sangat sederhana dan efektif yang saya gunakan untuk mengonversi subtitle:

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

Ubah saja assdan srtsesuai dengan kebutuhan Anda.


7

Teks pisau tentara swiss perl (gulir ke ujung halaman).

Di sini Anda dapat menemukan lebih banyak opsi.

Juga, mplayer / mencoder memiliki beberapa opsi dumpXXXsub, yang mungkin berfungsi. Saya tidak pernah mencoba ini, tetapi membaca pria itu, itu harus berhasil. Contoh:

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

Memang ini mudah, sayangnya meskipun hanya tiga format berbeda yang didukung; .srt, .sub, .smi.
Johnas

Saya memeriksa Mplayer dan Mencoder. Tidak membuatnya bekerja sekalipun. Dan itu hanya mendukung SRT, SMI, SUB dan JACO. Saran yang bagus, terima kasih.
Johnas

Bagus sekali, terima kasih! Di sini: pastebin.com/T6DM9xbq adalah konverter saya berdasarkan ini dengan deteksi framerate menggunakan mplayer
Lukasz Frankowski

3

Program open source Subtitle Edit memiliki konverter baris perintah dan tersedia untuk Windows dan Linux.

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

Contoh 1 : SubtitleEdit /convert sub1.srt sami
Hasil : Akan mengonversi sub1.srt ke sub1.sub ke format SAMI

Contoh 2 : SubtitleEdit /convert *.srt adobeencore
Hasil : Akan mengonversi semua file .srt ke format Adobe Encore

Untuk Linux , baris perintah harus sedikit lebih panjang ...

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

... tapi bisa dengan mudah dibungkus dengan naskah.


GUI berfungsi, tetapi saya mendapat kesalahan saat menjalankan dari baris perintah ... Saya perlu menginstal libmono-winformsagar GUI berfungsi (seperti yang dinyatakan dalam README) ... Mungkin ada sesuatu yang ekstra yang diperlukan agar CLI dapat berfungsi ... Saya mendapatkan AttachConsole...kesalahan. menggunakan Ubuntu 10,04 ...
Peter.O

Ini tampaknya diperbaiki dalam versi 3.2.3 - setidaknya di Ubuntu
Johanz

1
@Johanz: Terima kasih. Versi 3.2.3 berfungsi. Itu dikonversi menjadi .assSubRip (.srt) ... Hanya satu hal yang saya perhatikan: menghasilkan \r\nakhiran garis (CRLF), bahkan ketika akhir baris sumber adalah \n... tapi itu jarang menjadi masalah dan mudah diperbaiki sedjika perlu.
Peter.O

Memberi +1 karena ini adalah konverter yang sangat bagus dan aplikasi open source. Dan memiliki antarmuka garis cmd.
user10607

1

Apa yang sebenarnya ingin Anda konversi? Jika berada di antara format subtitle maka itu tergantung pada format yang Anda bicarakan. Yang berbasis bitmap akan membutuhkan OCR untuk dikonversi ke format teks dan umumnya selalu membutuhkan input pengguna untuk mengkonfirmasi keakuratan OCR

Jika semua format teks maka Jubler atau Aegisub dapat digunakan


Subtitle teks sederhana. SRT, STL, SUB, PAC. Bolak-balik.
Johnas

@johnas - jawaban saya diperbarui dengan beberapa kemungkinan
Shevek

Terima kasih Shevek, tetapi tidak satu pun di atas yang beroperasi command line. Padahal mereka akan sempurna jika saya bisa menggunakan GUI.
Johnas

1

Saya menemukan bahwa beberapa pemain (mis. Pemutar video Google Drive) tidak menyukai .srt yang dihasilkan dari:

ffmpeg -i subtitles.ass <blah>.srt

atau:

SubtitleEdit /convert subtitles.ass subrip

tapi:

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

... melakukan trik untukku.


0

ganti nama file menggunakan sed

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

jika Anda ingin menghapus .srtfile setelah konversi, tambahkan saja perintah rm sesudahnya.

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

1
Bagaimana jika nama file itu big.assassins.assured(ditambah ekstensi)? Anda sedakan menamainya bigassinsured. Tanpa seddan tanpa cacat ini: "${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

jika Anda ingin mengonversi lebih banyak file menggunakan program ini untuk loop.


Bagaimana jika Ffmpeg dibatalkan?
174140

ffmpeg adalah perpustakaan multimedia open source.
Manoj kumar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.